time="2025-05-07T16:10:57Z" 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-authorization-1 Creating Container integration-test-federation-1 Creating Container integration-test-experiment-1 Creating Container integration-test-gateway-1 Creating Container integration-test-gateway-1 Created Container integration-test-device-1 Created Container integration-test-federation-1 Created Container integration-test-authentication-1 Created Container integration-test-experiment-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"} federation-1 | {"level":"info","message":"Federation Service started successfully"} authorization-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 | {"addrs":["localhost:3011"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","subsystem":"opa","time":"2025-05-07T16:11:55Z"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} device-1 | {"level":"info","message":"Device Service started successfully"} authorization-1 | {"client_addr":"127.0.0.1:45944","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2025-05-07T16:11:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45944","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.249819,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:11:55Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1746634315.665809} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1746634315.6658843} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1746634315.6659024} 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":1746634315.6659212} 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":1746634315.6659408} 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":1746634315.6659832,"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":1746634315.6665196} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1746634315.6676157} 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:37856","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2025-05-07T16:11:55.686910320Z","id":"01JTNR95X6GP3X76BKFYX6P461","name":"crosslab","updated_at":"2025-05-07T16:11:55.686910320Z"},"request_id":"1167ed19-c5a7-4871-9228-0546d7022bee","subsystem":"openfga","timestamp":1746634315.6871328} 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:37856","raw_request":{"schema_version":"1.1","store_id":"01JTNR95X6GP3X76BKFYX6P461","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01JTNR95ZXYV2T2J8N6V60JV68"},"request_id":"8abd12af-07aa-4e58-8433-711f92513f52","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634315.7735033} authorization-1 | {"client_addr":"127.0.0.1:45944","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2025-05-07T16:11:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45944","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.238692,"resp_status":204,"subsystem":"opa","time":"2025-05-07T16:11:55Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v1.4.2/opa_linux_amd64","latest_version":"1.4.2","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v1.4.2","subsystem":"opa","time":"2025-05-07T16:11:55Z"} gateway-1 | {"time_local":"07/May/2025:16:12:05 +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.010","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"555220e25d98e0362ef26507053ff5bc"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 31ms","method":"HEAD","requestID":"555220e25d98e0362ef26507053ff5bc","responseTime":31,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"07/May/2025:16:12:05 +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.011","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"74ae496342cb371d77c2b76563ce9c6a"} device-1 | {"level":"info","message":"HEAD /device/status 200 7ms","method":"HEAD","requestID":"04943f70-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"07/May/2025:16:12:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /authorization/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.008","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"7fd4290a6457f30a8288a5b65a467bc2"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 5ms","method":"HEAD","requestID":"7fd4290a6457f30a8288a5b65a467bc2","responseTime":5,"status":200,"url":"/authorization/status"} gateway-1 | {"time_local":"07/May/2025:16:12:05 +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.011","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"0491c9e29e769a6ad6bf3e0023519460"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 7ms","method":"HEAD","requestID":"049c2eb0-2b5e-11f0-8637-dfcd58dd38b6","responseTime":7,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"07/May/2025:16:12:05 +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.035","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"11d0b7e55a4c80b8c8aa182603ddac73"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 31ms","method":"HEAD","requestID":"049ec6c0-2b5e-11f0-94f9-6f6440eb0e17","responseTime":31,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"07/May/2025:16:12:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.200","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a0f244dc54ffe41a6269b5d704f043c3"} authentication-1 | {"level":"info","message":"POST /login 201 188ms","method":"POST","requestID":"a0f244dc54ffe41a6269b5d704f043c3","responseTime":188,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzM30.DeToQondDwHMMC9uHWhDpVBpQhu82WbLVApF4xJUGU4","level":"info","message":"auth send jwt","requestID":"42edf0157e4ec065168bd1fe67a3fa9c"} authentication-1 | {"level":"info","message":"GET /auth 200 60ms","method":"GET","requestID":"42edf0157e4ec065168bd1fe67a3fa9c","responseTime":60,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"42edf0157e4ec065168bd1fe67a3fa9c"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:13Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.203209,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"42edf0157e4ec065168bd1fe67a3fa9c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634333,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzM30.DeToQondDwHMMC9uHWhDpVBpQhu82WbLVApF4xJUGU4"} authorization-1 | {"level":"info","message":"POST /authorize 200 46ms","method":"POST","requestID":"42edf0157e4ec065168bd1fe67a3fa9c","responseTime":46,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"52e2e6b8-e5d5-4753-95e4-72aca42016b6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.0623107} authorization-1 | {"level":"info","message":"POST /relations/query 200 8ms","method":"POST","requestID":"42edf0157e4ec065168bd1fe67a3fa9c","responseTime":8,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"279e8b97-bfe5-4aa9-9899-93d0fee13248","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.0994701} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","method":"POST","requestID":"42edf0157e4ec065168bd1fe67a3fa9c","responseTime":32,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"9f5b58d5-906a-4ff4-8a3e-27ccb4e3211a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.2975159} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1f50c0f2-15d3-4f43-b04b-4099e568b5a8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.3006217} authorization-1 | {"level":"info","message":"POST /relations/update 200 203ms","method":"POST","requestID":"42edf0157e4ec065168bd1fe67a3fa9c","responseTime":203,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.297497912Z"}]},"request_id":"e34475c7-7090-40af-87bb-3cd0bca053f9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.3074248} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"42edf0157e4ec065168bd1fe67a3fa9c","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"42edf0157e4ec065168bd1fe67a3fa9c"} gateway-1 | {"time_local":"07/May/2025:16:12:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.678","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"42edf0157e4ec065168bd1fe67a3fa9c"} device-1 | {"level":"info","message":"POST /devices? 201 579ms","method":"POST","requestID":"42edf0157e4ec065168bd1fe67a3fa9c","responseTime":579,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzNH0.QsT9rEzju10mhJUa1co9zzgTY63p47IqeZSgfTrWvEo","level":"info","message":"auth send jwt","requestID":"c2ecfdee8a16d3d54057efca6cc9f318"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c2ecfdee8a16d3d54057efca6cc9f318","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c2ecfdee8a16d3d54057efca6cc9f318"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:14Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.951647,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c2ecfdee8a16d3d54057efca6cc9f318","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634334,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzNH0.QsT9rEzju10mhJUa1co9zzgTY63p47IqeZSgfTrWvEo"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"c2ecfdee8a16d3d54057efca6cc9f318","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"27841ef3-acbd-4e2e-9eaf-3aaa9bef7480","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.5394974} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"c2ecfdee8a16d3d54057efca6cc9f318","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2828834f-a056-41e2-9079-7cfeebc3696e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.5522852} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"c2ecfdee8a16d3d54057efca6cc9f318","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"3618812a-202d-4f58-9a58-6803c27db582","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.7382622} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6734454-593e-4366-9fdc-3aae0af071a9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.7385476} authorization-1 | {"level":"info","message":"POST /relations/update 200 189ms","method":"POST","requestID":"c2ecfdee8a16d3d54057efca6cc9f318","responseTime":189,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.738242945Z"}]},"request_id":"f7377d7f-d9af-4b66-a9a6-cdf2305e870d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634334.7712116} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"c2ecfdee8a16d3d54057efca6cc9f318","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c2ecfdee8a16d3d54057efca6cc9f318"} gateway-1 | {"time_local":"07/May/2025:16:12:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.421","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2ecfdee8a16d3d54057efca6cc9f318"} device-1 | {"level":"info","message":"POST /devices? 201 390ms","method":"POST","requestID":"c2ecfdee8a16d3d54057efca6cc9f318","responseTime":390,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5946d3167e826217f1156786ef9d218d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"OPTIONS /devices/14fa1e24-6a54-494d-acdb-29879262c934/websocket 200 1ms","method":"OPTIONS","requestID":"5946d3167e826217f1156786ef9d218d","responseTime":1,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934/websocket"} gateway-1 | {"time_local":"07/May/2025:16:12:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/14fa1e24-6a54-494d-acdb-29879262c934/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","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":"5946d3167e826217f1156786ef9d218d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5946d3167e826217f1156786ef9d218d","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5b0f540469800a335a17972ed79d1b9d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5b0f540469800a335a17972ed79d1b9d","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","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":"5b0f540469800a335a17972ed79d1b9d"} device-1 | {"level":"info","message":"OPTIONS /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/websocket 200 1ms","method":"OPTIONS","requestID":"5b0f540469800a335a17972ed79d1b9d","responseTime":1,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg","level":"info","message":"auth send jwt","requestID":"9020965b9a1194f7f8f1f07813cbb4eb"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"9020965b9a1194f7f8f1f07813cbb4eb","responseTime":9,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg","level":"info","message":"auth send jwt","requestID":"70424f2e96ed20426793fd1800a065c2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9020965b9a1194f7f8f1f07813cbb4eb"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"70424f2e96ed20426793fd1800a065c2","responseTime":9,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"70424f2e96ed20426793fd1800a065c2"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.928061,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9020965b9a1194f7f8f1f07813cbb4eb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"9020965b9a1194f7f8f1f07813cbb4eb","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.787123,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"70424f2e96ed20426793fd1800a065c2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"70424f2e96ed20426793fd1800a065c2","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"70424f2e96ed20426793fd1800a065c2"} gateway-1 | {"time_local":"07/May/2025:16:12:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.064","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"70424f2e96ed20426793fd1800a065c2"} device-1 | {"level":"info","message":"POST /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/websocket 200 53ms","method":"POST","requestID":"70424f2e96ed20426793fd1800a065c2","responseTime":53,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9020965b9a1194f7f8f1f07813cbb4eb"} gateway-1 | {"time_local":"07/May/2025:16:12:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/14fa1e24-6a54-494d-acdb-29879262c934/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.151","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9020965b9a1194f7f8f1f07813cbb4eb"} device-1 | {"level":"info","message":"POST /devices/14fa1e24-6a54-494d-acdb-29879262c934/websocket 200 140ms","method":"POST","requestID":"9020965b9a1194f7f8f1f07813cbb4eb","responseTime":140,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg","level":"info","message":"auth send jwt","requestID":"0240637d4ee548f0feec5fb35911f5a3"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0240637d4ee548f0feec5fb35911f5a3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0240637d4ee548f0feec5fb35911f5a3"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.77453,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0240637d4ee548f0feec5fb35911f5a3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0240637d4ee548f0feec5fb35911f5a3","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.297497912Z"}]},"request_id":"312cdd24-803b-428b-b756-a54cba8bbb6f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634338.7609935} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0240637d4ee548f0feec5fb35911f5a3","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0240637d4ee548f0feec5fb35911f5a3"} gateway-1 | {"time_local":"07/May/2025:16:12:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/14fa1e24-6a54-494d-acdb-29879262c934? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0240637d4ee548f0feec5fb35911f5a3"} device-1 | {"level":"info","message":"GET /devices/14fa1e24-6a54-494d-acdb-29879262c934? 200 45ms","method":"GET","requestID":"0240637d4ee548f0feec5fb35911f5a3","responseTime":45,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg","level":"info","message":"auth send jwt","requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.869525,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.738242945Z"}]},"request_id":"1771bcc2-1f38-4e29-98c8-908da5a83162","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634338.812371} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027"} gateway-1 | {"time_local":"07/May/2025:16:12:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934? 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":"f4ff0aa42b0f13c65e0e3cefd1ed7027"} device-1 | {"level":"info","message":"GET /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934? 200 14ms","method":"GET","requestID":"f4ff0aa42b0f13c65e0e3cefd1ed7027","responseTime":14,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg","level":"info","message":"auth send jwt","requestID":"d64391da039e2c76dee8308686fec90d"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"d64391da039e2c76dee8308686fec90d","responseTime":28,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"d64391da039e2c76dee8308686fec90d"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.919643,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d64391da039e2c76dee8308686fec90d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"d64391da039e2c76dee8308686fec90d","responseTime":7,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Attempting to run experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Attempting to book experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully booked experiment","requestID":"d64391da039e2c76dee8308686fec90d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0cd8f270-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0cd94090-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.687489,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0cd8f270-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"0cd8f270-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.268868,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0cd94090-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"0cd94090-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.297497912Z"}]},"request_id":"673fb33c-d412-4c7b-be41-444279c95045","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.1095726} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"0cd8f270-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.738242945Z"}]},"request_id":"ef85c9b9-bd43-4fdc-93b6-85f4fcd7a11e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.1110933} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"0cd94090-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0cd8f270-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/14fa1e24-6a54-494d-acdb-29879262c934? 200 46ms","method":"GET","requestID":"0cd8f270-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0cd94090-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934? 200 45ms","method":"GET","requestID":"0cd94090-2b5e-11f0-8e1f-5304d0938eae","responseTime":45,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Setting up experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully locked booking for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Attempting to update booking for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully updated booking for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully set up experiment","requestID":"d64391da039e2c76dee8308686fec90d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0cf88860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0cf8d680-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully running experiment","requestID":"d64391da039e2c76dee8308686fec90d"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0cf924a0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.901861,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.989542,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0cf8d680-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"0cf8d680-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0cf88860-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 37ms","method":"POST","requestID":"0cf88860-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3cc81c64-5843-410b-bf22-b69aa821b7dd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.34569} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.297497912Z"}]},"request_id":"2277c51f-ed98-49fd-a5ed-d824dcc97a1f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.3465123} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.009042,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0cf924a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","rebac_allow":false,"scope_allow":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":"0cf924a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"0cf88860-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.738242945Z"}]},"request_id":"48d6e54d-089a-4a7c-b1b4-cf8393a61f9a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.3480182} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"0cf8d680-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0cf924a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling 200 77ms","method":"POST","requestID":"0cf924a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":77,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0cf88860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/14fa1e24-6a54-494d-acdb-29879262c934? 200 82ms","method":"GET","requestID":"0cf88860-2b5e-11f0-8e1f-5304d0938eae","responseTime":82,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0cf8d680-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934? 200 81ms","method":"GET","requestID":"0cf8d680-2b5e-11f0-8e1f-5304d0938eae","responseTime":81,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d0580b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F27faa18e-bd0d-4ae3-841c-6aa2efb6ca91#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"51ee022e-683f-4f4b-bcd6-616444d6bf80","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.3876767} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"475c259c-6c65-4397-8b11-fa8d00336935","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.3880374} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d064400-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 58ms","method":"POST","requestID":"d64391da039e2c76dee8308686fec90d","responseTime":58,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e913de6a-cebf-4dd2-8ec1-26e4275ad45d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.3946161} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.99744,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d0580b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d0580b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f924876-38d1-4c39-bb45-6b0e92d94a66","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.3978007} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.840043,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d064400-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d064400-2b5e-11f0-8e1f-5304d0938eae","responseTime":31,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"d64391da039e2c76dee8308686fec90d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d0580b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling 200 41ms","method":"POST","requestID":"0d0580b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":41,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d064400-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling 200 38ms","method":"POST","requestID":"0d064400-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling"} gateway-1 | {"time_local":"07/May/2025:16:12:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.610","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"level":"info","message":"POST /experiments? 201 573ms","method":"POST","requestID":"d64391da039e2c76dee8308686fec90d","responseTime":573,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d0d9700-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOX0.NX7tsylRwTZzlpW9ZEFsaPXQvsZAMqo7mkt6L2bD13s","level":"info","message":"auth send jwt","requestID":"c9c2e06a0d75d13b49aab85e27956de8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c9c2e06a0d75d13b49aab85e27956de8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c9c2e06a0d75d13b49aab85e27956de8"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da3bb330-05af-45c4-9846-e5452a668064","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.4455001} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.588898,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.841109,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d0d9700-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d0d9700-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c9c2e06a0d75d13b49aab85e27956de8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634339,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOX0.NX7tsylRwTZzlpW9ZEFsaPXQvsZAMqo7mkt6L2bD13s"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"c9c2e06a0d75d13b49aab85e27956de8","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d0d9700-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling 200 40ms","method":"POST","requestID":"0d0d9700-2b5e-11f0-8e1f-5304d0938eae","responseTime":40,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.297497912Z"}]},"request_id":"c156fdaf-b738-44da-b6f1-285940e0a4dc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.4810061} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Building connection plan","requestID":"d64391da039e2c76dee8308686fec90d"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"1be7a1d8-af30-42a2-b094-ab34c6772270"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"6778eccf-4726-4d22-ab82-1919ec05e75b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"aa3eeed5-406d-4f1f-8c6a-3f2b2785b754"}]},"level":"info","message":"Built pairwise service configurations","requestID":"d64391da039e2c76dee8308686fec90d"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"c9c2e06a0d75d13b49aab85e27956de8","responseTime":4,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"d64391da039e2c76dee8308686fec90d"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c9c2e06a0d75d13b49aab85e27956de8"} gateway-1 | {"time_local":"07/May/2025:16:12:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/14fa1e24-6a54-494d-acdb-29879262c934? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c9c2e06a0d75d13b49aab85e27956de8"} device-1 | {"level":"info","message":"GET /devices/14fa1e24-6a54-494d-acdb-29879262c934? 200 45ms","method":"GET","requestID":"c9c2e06a0d75d13b49aab85e27956de8","responseTime":45,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934?"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOX0.NX7tsylRwTZzlpW9ZEFsaPXQvsZAMqo7mkt6L2bD13s","level":"info","message":"auth send jwt","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":25.132361,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634338,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOH0.D4P9SPb7LPHkjSwqbrpfmHL9SZfGn-OK_e5BwPawDbg"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.567317,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cfde3df3ba5f4600b4756da4eb64b2b7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634339,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOX0.NX7tsylRwTZzlpW9ZEFsaPXQvsZAMqo7mkt6L2bD13s"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:14.738242945Z"}]},"request_id":"299ff6aa-0207-4066-a486-74c7a5ca008d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.529011} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7"} gateway-1 | {"time_local":"07/May/2025:16:12:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7"} device-1 | {"level":"info","message":"GET /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934? 200 42ms","method":"GET","requestID":"cfde3df3ba5f4600b4756da4eb64b2b7","responseTime":42,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c8b307bf-126f-409b-b534-0cd61a13b2e4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.5768392} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"022013c8-293e-4c1f-ba22-aa5b1bdd9ca3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.5771646} authorization-1 | {"level":"info","message":"POST /relations/update 200 48ms","method":"POST","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":48,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5'","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5'","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 104ms","method":"POST","requestID":"0d155f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":104,"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":"0d155f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","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/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","device":"14fa1e24-6a54-494d-acdb-29879262c934","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/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"d64391da039e2c76dee8308686fec90d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d31c0d0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"23c67113-1afb-4c9f-a688-3c7c6b64beea","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.6829355} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.531422,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d31c0d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d31c0d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d31c0d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling 200 11ms","method":"POST","requestID":"0d31c0d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d33e3b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8547d1d4-eeb3-421c-a6c6-ecde0e508f7d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.7209103} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.139945,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} device-1 | {"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d33e3b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d33e3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"device":"14fa1e24-6a54-494d-acdb-29879262c934","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"14fa1e24-6a54-494d-acdb-29879262c934","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d33e3b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling 200 39ms","method":"POST","requestID":"0d33e3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 1072806787355963324 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:9Ieo\r\na=ice-pwd:cUrsliqUlshjTg8G6RUJPFBG\r\na=ice-options:trickle\r\na=fingerprint:sha-256 2B:93:BE:F7:30:95:E4:BC:FB:28:9D:DA:E9:B1:6F:F5:3D:5A:7C:E2:89:45:45:21:E5:6E:4C:DF:75:0D:7E:C9\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"14fa1e24-6a54-494d-acdb-29879262c934","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 3805434118377676117 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:3CMd\r\na=ice-pwd:h7vk+w5WJHFfRHx5ks99cYxv\r\na=ice-options:trickle\r\na=fingerprint:sha-256 1D:C5:49:21:06:6B:0C:95:4E:55:B2:92:19:0C:4D:C4:66:7F:51:6E:58:1C:37:01:08:BE:4A:E9:0F:FB:01:F9\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:217284809 1 udp 2113937151 ff971494-cd1b-41b7-8a74-9a5dda4d4da9.local 55885 typ host generation 0 ufrag 3CMd network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","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/4450f684-242b-4c4c-9ab6-d5ce55d2e934'"} device-1 | {"content":{"candidate":"candidate:3254548468 1 udp 2113937151 661fb298-1297-4ea7-9b05-780e27548ee8.local 33683 typ host generation 0 ufrag 9Ieo network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"14fa1e24-6a54-494d-acdb-29879262c934","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"14fa1e24-6a54-494d-acdb-29879262c934","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","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/e9be2094-f4d2-4858-bdb1-67fafaf72fe5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e9be2094-f4d2-4858-bdb1-67fafaf72fe5","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"14fa1e24-6a54-494d-acdb-29879262c934","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"14fa1e24-6a54-494d-acdb-29879262c934","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f0d3d2807d8ad5718d6bb66498e13bcd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f0d3d2807d8ad5718d6bb66498e13bcd","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5"}}},"level":"info","message":"received a callback","requestID":"f0d3d2807d8ad5718d6bb66498e13bcd"} device-1 | {"data":{"peerconnection":"e9be2094-f4d2-4858-bdb1-67fafaf72fe5","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 12ms","method":"POST","requestID":"f0d3d2807d8ad5718d6bb66498e13bcd","responseTime":12,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch","requestID":"f0d3d2807d8ad5718d6bb66498e13bcd"} device-1 | {"data":{"peerconnection":"e9be2094-f4d2-4858-bdb1-67fafaf72fe5","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/e9be2094-f4d2-4858-bdb1-67fafaf72fe5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e9be2094-f4d2-4858-bdb1-67fafaf72fe5","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eeccf4588296ec4ba17ba0cecc1a6b21","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eeccf4588296ec4ba17ba0cecc1a6b21","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/4450f684-242b-4c4c-9ab6-d5ce55d2e934"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5"}}},"level":"info","message":"received a callback","requestID":"eeccf4588296ec4ba17ba0cecc1a6b21"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"0d579850-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOX0.NX7tsylRwTZzlpW9ZEFsaPXQvsZAMqo7mkt6L2bD13s","level":"info","message":"auth send jwt","requestID":"69b968e9740b22d1db54649a59da1f71"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"69b968e9740b22d1db54649a59da1f71","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","requestID":"69b968e9740b22d1db54649a59da1f71"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe9be2094-f4d2-4858-bdb1-67fafaf72fe5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a608c511-bc3e-4b95-8c91-7eb07c97682e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634339.9547746} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.487279,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d579850-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","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 30ms","method":"POST","requestID":"0d579850-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"0d579850-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:19Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.708743,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:19Z"} device-1 | {"level":"info","message":"GET /peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5 200 35ms","method":"GET","requestID":"0d579850-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"69b968e9740b22d1db54649a59da1f71","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634339,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDMzOX0.NX7tsylRwTZzlpW9ZEFsaPXQvsZAMqo7mkt6L2bD13s"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"69b968e9740b22d1db54649a59da1f71","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","requestID":"69b968e9740b22d1db54649a59da1f71"} gateway-1 | {"time_local":"07/May/2025:16:12:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91 HTTP/1.1","status": "200","body_bytes_sent":"878","request_time":"0.080","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"69b968e9740b22d1db54649a59da1f71"} experiment-1 | {"level":"info","message":"GET /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91 200 50ms","method":"GET","requestID":"69b968e9740b22d1db54649a59da1f71","responseTime":50,"status":200,"url":"/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"eeccf4588296ec4ba17ba0cecc1a6b21","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"eeccf4588296ec4ba17ba0cecc1a6b21"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d6b6e70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ec42484-eb69-41f9-a945-f6b518591777","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.0598857} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.476121,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d6b6e70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d6b6e70-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d6b6e70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling 200 10ms","method":"POST","requestID":"0d6b6e70-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d6d6a40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9f0de010-4b14-49f5-99b0-0425e7a4b434","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.0726743} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.581712,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d6d6a40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d6d6a40-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d6d6a40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling 200 34ms","method":"POST","requestID":"0d6d6a40-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4","level":"info","message":"auth send jwt","requestID":"37c4fdbe096b91c9175824c906236b4d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"37c4fdbe096b91c9175824c906236b4d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","requestID":"37c4fdbe096b91c9175824c906236b4d"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.746866,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"37c4fdbe096b91c9175824c906236b4d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634340,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"37c4fdbe096b91c9175824c906236b4d","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","requestID":"37c4fdbe096b91c9175824c906236b4d"} gateway-1 | {"time_local":"07/May/2025:16:12:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"37c4fdbe096b91c9175824c906236b4d"} experiment-1 | {"level":"info","message":"GET /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91 200 36ms","method":"GET","requestID":"37c4fdbe096b91c9175824c906236b4d","responseTime":36,"status":200,"url":"/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4","level":"info","message":"auth send jwt","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.690948,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"57c4d926c9de3cc7c7d57f70dd8e770a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634340,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Attempting to finish experiment","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"0d7c8570-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.84737,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d7c8570-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634340,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"0d7c8570-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","device":"4450f684-242b-4c4c-9ab6-d5ce55d2e934","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5","device":"14fa1e24-6a54-494d-acdb-29879262c934","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/e9be2094-f4d2-4858-bdb1-67fafaf72fe5' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e9be2094-f4d2-4858-bdb1-67fafaf72fe5","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6f0bd4a54b4beff77c0a8e4b16585488","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6f0bd4a54b4beff77c0a8e4b16585488","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/4450f684-242b-4c4c-9ab6-d5ce55d2e934"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5"}}},"level":"info","message":"received a callback","requestID":"6f0bd4a54b4beff77c0a8e4b16585488"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2be82b7dc74e67d3307a40d31d9d27fb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2be82b7dc74e67d3307a40d31d9d27fb","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/4450f684-242b-4c4c-9ab6-d5ce55d2e934"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5"}}},"level":"info","message":"received a callback","requestID":"2be82b7dc74e67d3307a40d31d9d27fb"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe9be2094-f4d2-4858-bdb1-67fafaf72fe5': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe9be2094-f4d2-4858-bdb1-67fafaf72fe5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"64ecfc47-a3ad-458e-b284-0589da2e2054","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.2459517} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2bdec5fd-ee2c-4e58-9076-2c1bbdc40c7b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.246306} authorization-1 | {"level":"info","message":"POST /relations/update 200 44ms","method":"POST","requestID":"0d7c8570-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"e9be2094-f4d2-4858-bdb1-67fafaf72fe5","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"0d7c8570-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5 204 124ms","method":"DELETE","requestID":"0d7c8570-2b5e-11f0-8e1f-5304d0938eae","responseTime":124,"status":204,"url":"/peerconnections/e9be2094-f4d2-4858-bdb1-67fafaf72fe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"},"level":"info","message":"Successfully finished experiment","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d92cc90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4450f684-242b-4c4c-9ab6-d5ce55d2e934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7f84e7ec-4f38-40bb-bfe8-a8b9f525b012","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.3420322} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.716205,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d92cc90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d92cc90-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d92cc90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling 200 34ms","method":"POST","requestID":"0d92cc90-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0d984ad0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F14fa1e24-6a54-494d-acdb-29879262c934","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"751576ca-2ae8-43bf-9727-1155ee8ca6c4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.3540196} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.333757,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0d984ad0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/14fa1e24-6a54-494d-acdb-29879262c934","object_type":"device","rebac_allow":false,"scope_allow":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":"0d984ad0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0d984ad0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling 200 10ms","method":"POST","requestID":"0d984ad0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/14fa1e24-6a54-494d-acdb-29879262c934/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F27faa18e-bd0d-4ae3-841c-6aa2efb6ca91': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"14ff215d-4645-4d5d-9e71-ba69a8c53199","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.358841} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b158f5fe-8812-4aed-9df7-10cceb9e3593","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.3592312} authorization-1 | {"level":"info","message":"POST /relations/update 200 76ms","method":"POST","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a","responseTime":76,"status":200,"url":"/relations/update"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a"} gateway-1 | {"time_local":"07/May/2025:16:12:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.331","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a"} experiment-1 | {"level":"info","message":"DELETE /experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91 204 329ms","method":"DELETE","requestID":"57c4d926c9de3cc7c7d57f70dd8e770a","responseTime":329,"status":204,"url":"/experiments/27faa18e-bd0d-4ae3-841c-6aa2efb6ca91"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4","level":"info","message":"auth send jwt","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12: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.276","http_referrer":"","http_user_agent":"node-fetch","requestID":"6f0bd4a54b4beff77c0a8e4b16585488"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 248ms","method":"POST","requestID":"6f0bd4a54b4beff77c0a8e4b16585488","responseTime":248,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 247ms","method":"POST","requestID":"2be82b7dc74e67d3307a40d31d9d27fb","responseTime":247,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.275","http_referrer":"","http_user_agent":"node-fetch","requestID":"2be82b7dc74e67d3307a40d31d9d27fb"} gateway-1 | {"time_local":"07/May/2025:16:12:20 +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.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":"a3cf732b4c96d0a5c9bb941be534cee8"} device-1 | {"level":"info","message":"postDevices called","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596"} gateway-1 | {"time_local":"07/May/2025:16:12:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2338","request_time":"1.822","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"de163ed53f39fc4988b211a6a40c8be0"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.004699,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634340,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","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/14fa1e24-6a54-494d-acdb-29879262c934' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4450f684-242b-4c4c-9ab6-d5ce55d2e934' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6fe0d044-3a6e-4fea-80c1-8e2b2b4c607f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.5401976} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c022591-6252-4922-8959-43d56c2307b8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.5464637} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d1196d2b-d201-4a34-a4c2-3de3db774eef","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.55641} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0bf0d02-b103-4bec-9768-160cdf0173f2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.5564992} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.556399582Z"}]},"request_id":"44fbe6e6-9b05-41bb-a074-6a28f307e5c6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.585778} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596"} gateway-1 | {"time_local":"07/May/2025:16:12: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.103","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"40b0aa1fc0e7b397c1ef8d4f7e160596","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4","level":"info","message":"auth send jwt","requestID":"c0151f4808f4e158f9754624cbe680b4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c0151f4808f4e158f9754624cbe680b4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c0151f4808f4e158f9754624cbe680b4"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.01696,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c0151f4808f4e158f9754624cbe680b4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634340,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0MH0.UQCvZj5NMN0Agxi4sHJD7jB3pMcbQT1vVZL27L78Zr4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c0151f4808f4e158f9754624cbe680b4","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"12cfee84-054d-48eb-8afd-d798629fa216","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.7390583} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c0151f4808f4e158f9754624cbe680b4","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f921423e-4950-407e-83f1-3b6cec81d4f3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.7441196} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"c0151f4808f4e158f9754624cbe680b4","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c839f25d-a257-41f8-aa2a-13ab78279c15","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.8672404} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e280a176-1169-4c02-86af-2d30cf8532a3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.867418} authorization-1 | {"level":"info","message":"POST /relations/update 200 126ms","method":"POST","requestID":"c0151f4808f4e158f9754624cbe680b4","responseTime":126,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.867230208Z"}]},"request_id":"5c3b38a0-6b8c-4854-ae0a-43d91d75845a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634340.8720734} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c0151f4808f4e158f9754624cbe680b4","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c0151f4808f4e158f9754624cbe680b4"} gateway-1 | {"time_local":"07/May/2025:16:12: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.284","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0151f4808f4e158f9754624cbe680b4"} device-1 | {"level":"info","message":"POST /devices? 201 280ms","method":"POST","requestID":"c0151f4808f4e158f9754624cbe680b4","responseTime":280,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Mn0.5Y3MD9XEzQ1OIAfZIoijtZBfcoHQaKgLj6CkV0Bn_tk","level":"info","message":"auth send jwt","requestID":"5bf7a61c9a6f3eea34e079445ace5425"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5bf7a61c9a6f3eea34e079445ace5425","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"5bf7a61c9a6f3eea34e079445ace5425"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:22Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.999635,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5bf7a61c9a6f3eea34e079445ace5425","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634342,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Mn0.5Y3MD9XEzQ1OIAfZIoijtZBfcoHQaKgLj6CkV0Bn_tk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5bf7a61c9a6f3eea34e079445ace5425","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.867230208Z"}]},"request_id":"288203c3-074e-4f38-91fb-699586eb5e1b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634342.187808} authorization-1 | {"level":"info","message":"POST /relations/query 200 25ms","method":"POST","requestID":"5bf7a61c9a6f3eea34e079445ace5425","responseTime":25,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"416520ba-5daf-40b5-9601-a73f1ef75db4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634342.214912} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"5bf7a61c9a6f3eea34e079445ace5425","responseTime":5,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.867230208Z"}]},"request_id":"b913df2e-50da-4338-adc6-a286947b810b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634342.2717636} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"5bf7a61c9a6f3eea34e079445ace5425","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"5bf7a61c9a6f3eea34e079445ace5425"} device-1 | {"level":"info","message":"PATCH /devices/f9f22848-049f-4d6f-8585-ca423246e425 200 107ms","method":"PATCH","requestID":"5bf7a61c9a6f3eea34e079445ace5425","responseTime":107,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425"} gateway-1 | {"time_local":"07/May/2025:16:12:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f9f22848-049f-4d6f-8585-ca423246e425 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.136","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"5bf7a61c9a6f3eea34e079445ace5425"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Mn0.5Y3MD9XEzQ1OIAfZIoijtZBfcoHQaKgLj6CkV0Bn_tk","level":"info","message":"auth send jwt","requestID":"fb1f64336f8d5080646562360a0c7631"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fb1f64336f8d5080646562360a0c7631","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"fb1f64336f8d5080646562360a0c7631"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:22Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.839357,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"fb1f64336f8d5080646562360a0c7631","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634342,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Mn0.5Y3MD9XEzQ1OIAfZIoijtZBfcoHQaKgLj6CkV0Bn_tk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"fb1f64336f8d5080646562360a0c7631","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"fb1f64336f8d5080646562360a0c7631"} gateway-1 | {"time_local":"07/May/2025:16:12:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f9f22848-049f-4d6f-8585-ca423246e425/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.057","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"fb1f64336f8d5080646562360a0c7631"} device-1 | {"level":"info","message":"POST /devices/f9f22848-049f-4d6f-8585-ca423246e425/websocket 200 52ms","method":"POST","requestID":"fb1f64336f8d5080646562360a0c7631","responseTime":52,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a2cb8e6fae12805158ba558990362efe","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a2cb8e6fae12805158ba558990362efe","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/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":"a2cb8e6fae12805158ba558990362efe"} device-1 | {"level":"info","message":"OPTIONS /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/websocket 200 0ms","method":"OPTIONS","requestID":"a2cb8e6fae12805158ba558990362efe","responseTime":0,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg","level":"info","message":"auth send jwt","requestID":"e8162b78f493fe48bde71da23a187ccd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e8162b78f493fe48bde71da23a187ccd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"e8162b78f493fe48bde71da23a187ccd"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743282,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e8162b78f493fe48bde71da23a187ccd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e8162b78f493fe48bde71da23a187ccd","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"e8162b78f493fe48bde71da23a187ccd"} gateway-1 | {"time_local":"07/May/2025:16:12:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/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":"e8162b78f493fe48bde71da23a187ccd"} device-1 | {"level":"info","message":"POST /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/websocket 200 47ms","method":"POST","requestID":"e8162b78f493fe48bde71da23a187ccd","responseTime":47,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg","level":"info","message":"auth send jwt","requestID":"8768edc7cda382c376c0cffbdb6137a9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8768edc7cda382c376c0cffbdb6137a9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8768edc7cda382c376c0cffbdb6137a9"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.709991,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8768edc7cda382c376c0cffbdb6137a9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8768edc7cda382c376c0cffbdb6137a9","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.556399582Z"}]},"request_id":"e258045c-854d-4c2e-828e-691d1a899a3a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.331717} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8768edc7cda382c376c0cffbdb6137a9","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8768edc7cda382c376c0cffbdb6137a9"} gateway-1 | {"time_local":"07/May/2025:16:12:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553? 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":"8768edc7cda382c376c0cffbdb6137a9"} device-1 | {"level":"info","message":"GET /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553? 200 13ms","method":"GET","requestID":"8768edc7cda382c376c0cffbdb6137a9","responseTime":13,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg","level":"info","message":"auth send jwt","requestID":"2270b0b058f6aae5978974c4370308a9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2270b0b058f6aae5978974c4370308a9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2270b0b058f6aae5978974c4370308a9"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654514,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2270b0b058f6aae5978974c4370308a9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2270b0b058f6aae5978974c4370308a9","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.867230208Z"}]},"request_id":"2baee253-052e-4ac8-934c-9e801b4a4aff","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.374411} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2270b0b058f6aae5978974c4370308a9","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2270b0b058f6aae5978974c4370308a9"} gateway-1 | {"time_local":"07/May/2025:16:12:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f9f22848-049f-4d6f-8585-ca423246e425? 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":"2270b0b058f6aae5978974c4370308a9"} device-1 | {"level":"info","message":"GET /devices/f9f22848-049f-4d6f-8585-ca423246e425? 200 15ms","method":"GET","requestID":"2270b0b058f6aae5978974c4370308a9","responseTime":15,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg","level":"info","message":"auth send jwt","requestID":"bf7785f514d764cca9d130a4a15582c0"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"bf7785f514d764cca9d130a4a15582c0","responseTime":27,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"bf7785f514d764cca9d130a4a15582c0"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.706978,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bf7785f514d764cca9d130a4a15582c0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bf7785f514d764cca9d130a4a15582c0","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Attempting to run experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Attempting to book experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully booked experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0f7a0320-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0f7a2a30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.705861,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f7a0320-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0f7a0320-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.803986,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f7a2a30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"0f7a2a30-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.556399582Z"}]},"request_id":"8efdea87-3e1e-4096-a106-4fbd5feb77f3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.5182056} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0f7a0320-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.867230208Z"}]},"request_id":"e2f97d16-7a28-42db-9cb8-dd96c89ba30d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.5193212} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0f7a2a30-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0f7a0320-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553? 200 21ms","method":"GET","requestID":"0f7a0320-2b5e-11f0-8e1f-5304d0938eae","responseTime":21,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0f7a2a30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/f9f22848-049f-4d6f-8585-ca423246e425? 200 21ms","method":"GET","requestID":"0f7a2a30-2b5e-11f0-8e1f-5304d0938eae","responseTime":21,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Setting up experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully locked booking for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Attempting to update booking for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully updated booking for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully set up experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0f8bdd70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0f8fd510-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0f902330-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.016965,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully running experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f8bdd70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0f8bdd70-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.054253,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f8fd510-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"0f8fd510-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.577653,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06ed5b86-a0e2-40b3-922a-fbec7004edaa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.6590028} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f902330-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","rebac_allow":false,"scope_allow":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":"0f902330-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0f902330-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling 200 13ms","method":"POST","requestID":"0f902330-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.867230208Z"}]},"request_id":"6dbf6269-2020-4374-9927-ac83bbf0f2f9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.664459} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0f8fd510-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.556399582Z"}]},"request_id":"43ebf511-1cc3-4bbf-ab24-0b031732b566","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.6671448} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0f92bb40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"0f8bdd70-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0f8fd510-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/f9f22848-049f-4d6f-8585-ca423246e425? 200 23ms","method":"GET","requestID":"0f8fd510-2b5e-11f0-8e1f-5304d0938eae","responseTime":23,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb73148a-cf15-4bb5-bf09-43949ed02628#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb73148a-cf15-4bb5-bf09-43949ed02628","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"0f34ba49-bba2-420a-a941-08cde07fb954","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.6703727} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0f8bdd70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} device-1 | {"level":"info","message":"GET /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553? 200 76ms","method":"GET","requestID":"0f8bdd70-2b5e-11f0-8e1f-5304d0938eae","responseTime":76,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2b42c71-60e8-4337-968c-5942adeecf59","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.6991732} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.032213,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f92bb40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","rebac_allow":false,"scope_allow":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":"0f92bb40-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b1a1c68-2873-4879-9415-573e437864e7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.703021} authorization-1 | {"level":"info","message":"POST /relations/update 200 46ms","method":"POST","requestID":"bf7785f514d764cca9d130a4a15582c0","responseTime":46,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0f986090-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0f92bb40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling 200 39ms","method":"POST","requestID":"0f92bb40-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"084a8357-72fc-4c66-819b-06107448c95d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.709859} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.632883,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f986090-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","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/cb73148a-cf15-4bb5-bf09-43949ed02628","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"bf7785f514d764cca9d130a4a15582c0"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"0f986090-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:12:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.330","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"level":"info","message":"POST /experiments? 201 300ms","method":"POST","requestID":"bf7785f514d764cca9d130a4a15582c0","responseTime":300,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0f986090-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling 200 9ms","method":"POST","requestID":"0f986090-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0f9a3550-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg","level":"info","message":"auth send jwt","requestID":"435050443b6f42fed931cb7fae0d8387"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"435050443b6f42fed931cb7fae0d8387","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"435050443b6f42fed931cb7fae0d8387"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.73563,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"435050443b6f42fed931cb7fae0d8387","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"435050443b6f42fed931cb7fae0d8387","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fc602ecc-b30b-4bf7-93f4-b0d30aab63b2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.7218006} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.447485,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f9a3550-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","rebac_allow":false,"scope_allow":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":"0f9a3550-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0f9a3550-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.556399582Z"}]},"request_id":"74de0a5b-8587-40d1-b470-1f93d2e8b116","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.7503667} device-1 | {"level":"info","message":"POST /devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling 200 34ms","method":"POST","requestID":"0f9a3550-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"435050443b6f42fed931cb7fae0d8387","responseTime":27,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Building connection plan","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"b9157700-1d6d-4bec-b2c8-5e57a70a5ab2"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"73b3bc5f-dd11-4d1c-a460-37876149ded8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d8139faf-07b7-487f-b084-a7054afb0c1a"}]},"level":"info","message":"Built pairwise service configurations","requestID":"bf7785f514d764cca9d130a4a15582c0"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"bf7785f514d764cca9d130a4a15582c0"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"435050443b6f42fed931cb7fae0d8387"} gateway-1 | {"time_local":"07/May/2025:16:12:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553? 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":"435050443b6f42fed931cb7fae0d8387"} device-1 | {"level":"info","message":"GET /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553? 200 38ms","method":"GET","requestID":"435050443b6f42fed931cb7fae0d8387","responseTime":38,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553?"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.702175,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg","level":"info","message":"auth send jwt","requestID":"337ef1fbbd549b88d89dd73bfaccc265"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"337ef1fbbd549b88d89dd73bfaccc265","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"337ef1fbbd549b88d89dd73bfaccc265"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.742528,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"337ef1fbbd549b88d89dd73bfaccc265","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634343,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0M30.Ph9NLoF0FMNwCofbELCQFiNEMEdkhuECOu6OHs_qpNg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"337ef1fbbd549b88d89dd73bfaccc265","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:20.867230208Z"}]},"request_id":"fa0f37b3-c4ba-4c97-8e98-cfcd4ab94254","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.7939055} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"a51c9261-7107-4330-b7e5-cb446039f5a6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.7957609} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a935d405-95be-4473-beeb-b37835f77754","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.796095} authorization-1 | {"level":"info","message":"POST /relations/query 200 31ms","method":"POST","requestID":"337ef1fbbd549b88d89dd73bfaccc265","responseTime":31,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"337ef1fbbd549b88d89dd73bfaccc265"} gateway-1 | {"time_local":"07/May/2025:16:12:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f9f22848-049f-4d6f-8585-ca423246e425? 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":"337ef1fbbd549b88d89dd73bfaccc265"} device-1 | {"level":"info","message":"GET /devices/f9f22848-049f-4d6f-8585-ca423246e425? 200 40ms","method":"GET","requestID":"337ef1fbbd549b88d89dd73bfaccc265","responseTime":40,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892'","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892'","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 92ms","method":"POST","requestID":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":92,"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":"0f9fdaa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892","device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","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/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"bf7785f514d764cca9d130a4a15582c0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0fb621c0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d14830a3-d63c-4c79-836e-cf3a5e955c88","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.9046543} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.20013,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0fb621c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","rebac_allow":false,"scope_allow":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":"0fb621c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0fb621c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling 200 8ms","method":"POST","requestID":"0fb621c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0fb7a860-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9664e756-e4fb-4189-b167-a7c09d89f156","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634343.9147875} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.413247,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0fb7a860-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","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":"0fb7a860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling 200 30ms","method":"POST","requestID":"0fb7a860-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0fb7a860-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9d6ea30b-1933-408c-8a9e-5809ac440892","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 5508317100185880384 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:V/ie\r\na=ice-pwd:BVPh00RRnQGGxy2ZitZWOCaO\r\na=ice-options:trickle\r\na=fingerprint:sha-256 31:19:FB:8D:EB:D8:4C:1E:36:91:B1:88:14:93:4C:DC:F5:A8:CA:8A:9C:05:66:8C:B1:9F:7A:1C:DF:66:27:7A\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3352977517 1 udp 2113937151 8aff7898-f313-4705-a2e9-491737be0b75.local 38698 typ host generation 0 ufrag V/ie network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","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/5b51c50e-18ec-481f-a1fa-9bb7dc313553'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d6ea30b-1933-408c-8a9e-5809ac440892","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"fbfc19a0fe63ff4648ca8581fe0bd5f0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"fbfc19a0fe63ff4648ca8581fe0bd5f0","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892"}}},"level":"info","message":"received a callback","requestID":"fbfc19a0fe63ff4648ca8581fe0bd5f0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"fbfc19a0fe63ff4648ca8581fe0bd5f0","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"fbfc19a0fe63ff4648ca8581fe0bd5f0"} device-1 | {"data":{"peerconnection":"9d6ea30b-1933-408c-8a9e-5809ac440892","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9d6ea30b-1933-408c-8a9e-5809ac440892","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","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/9d6ea30b-1933-408c-8a9e-5809ac440892' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d6ea30b-1933-408c-8a9e-5809ac440892","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b0efa4ad3c896bbd97d9432fc767976c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b0efa4ad3c896bbd97d9432fc767976c","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/5b51c50e-18ec-481f-a1fa-9bb7dc313553"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892"}}},"level":"info","message":"received a callback","requestID":"b0efa4ad3c896bbd97d9432fc767976c"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"10fa3a80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d6ea30b-1933-408c-8a9e-5809ac440892","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4f99a68f-2b19-44ec-8937-9c442cf2e35e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.0526526} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.209045,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"10fa3a80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892","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":"10fa3a80-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"10fa3a80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892 200 33ms","method":"GET","requestID":"10fa3a80-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"b0efa4ad3c896bbd97d9432fc767976c","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"b0efa4ad3c896bbd97d9432fc767976c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"11016670-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"12fd477e-488c-450a-ac5d-f4aa8b65d007","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.0999684} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.232931,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"11016670-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","rebac_allow":false,"scope_allow":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":"11016670-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"11016670-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling 200 33ms","method":"POST","requestID":"11016670-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1106bda0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM","level":"info","message":"auth send jwt","requestID":"1dc577511a1b354b76f985f0e6e71fed"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1dc577511a1b354b76f985f0e6e71fed","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","requestID":"1dc577511a1b354b76f985f0e6e71fed"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"448c81d2-0636-47ca-a67a-30ea5a81f847","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.1118515} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.094694,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1106bda0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","rebac_allow":false,"scope_allow":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":"1106bda0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.082773,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1dc577511a1b354b76f985f0e6e71fed","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634346,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1dc577511a1b354b76f985f0e6e71fed","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1106bda0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling 200 12ms","method":"POST","requestID":"1106bda0-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","requestID":"1dc577511a1b354b76f985f0e6e71fed"} gateway-1 | {"time_local":"07/May/2025:16:12:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1dc577511a1b354b76f985f0e6e71fed"} experiment-1 | {"level":"info","message":"GET /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628 200 39ms","method":"GET","requestID":"1dc577511a1b354b76f985f0e6e71fed","responseTime":39,"status":200,"url":"/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM","level":"info","message":"auth send jwt","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.661661,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634346,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Attempting to finish experiment","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"110f9740-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.708225,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"110f9740-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634346,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"110f9740-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892","device":"5b51c50e-18ec-481f-a1fa-9bb7dc313553","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f9f22848-049f-4d6f-8585-ca423246e425","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/9d6ea30b-1933-408c-8a9e-5809ac440892' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d6ea30b-1933-408c-8a9e-5809ac440892","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d6ea30b-1933-408c-8a9e-5809ac440892': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d6ea30b-1933-408c-8a9e-5809ac440892","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"e72814a6-8fbb-4101-bdbe-e8a922889b0f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.20384} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"64f1d127-a412-4d18-a1cd-915725f3da88","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.2041001} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"13ab0546a73100ce9329ebb3d41913eb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"13ab0546a73100ce9329ebb3d41913eb","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"110f9740-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"62c76bda5daa7d19da8904ec2475532d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"62c76bda5daa7d19da8904ec2475532d","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/5b51c50e-18ec-481f-a1fa-9bb7dc313553"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892"}}},"level":"info","message":"received a callback","requestID":"13ab0546a73100ce9329ebb3d41913eb"} 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/5b51c50e-18ec-481f-a1fa-9bb7dc313553"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892"}}},"level":"info","message":"received a callback","requestID":"62c76bda5daa7d19da8904ec2475532d"} device-1 | {"data":{"peerconnection":"9d6ea30b-1933-408c-8a9e-5809ac440892","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"110f9740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892 204 90ms","method":"DELETE","requestID":"110f9740-2b5e-11f0-8e1f-5304d0938eae","responseTime":90,"status":204,"url":"/peerconnections/9d6ea30b-1933-408c-8a9e-5809ac440892"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"},"level":"info","message":"Successfully finished experiment","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"11239470-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5b51c50e-18ec-481f-a1fa-9bb7dc313553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d32a574-3581-4c71-95ad-93a6e744a70d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.299439} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.401249,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"11239470-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553","object_type":"device","rebac_allow":false,"scope_allow":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":"11239470-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"11239470-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling 200 8ms","method":"POST","requestID":"11239470-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"11251b10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb73148a-cf15-4bb5-bf09-43949ed02628': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb73148a-cf15-4bb5-bf09-43949ed02628","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"d6b732b3-baad-4a5d-a9d4-8f478c5cb88e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.3069522} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6447f97-7d7a-4031-b2ab-d1ee27990ce9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.3071866} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff9f22848-049f-4d6f-8585-ca423246e425","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"08a75ad5-6479-4853-b4e9-216c1d4560c3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.309741} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.301927,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"11251b10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425","object_type":"device","rebac_allow":false,"scope_allow":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":"11251b10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"11251b10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling 200 33ms","method":"POST","requestID":"11251b10-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/f9f22848-049f-4d6f-8585-ca423246e425/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d"} gateway-1 | {"time_local":"07/May/2025:16:12:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.258","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d"} experiment-1 | {"level":"info","message":"DELETE /experiments/cb73148a-cf15-4bb5-bf09-43949ed02628 204 255ms","method":"DELETE","requestID":"9949575a7b5bfeb4dc65a7660d4a2d7d","responseTime":255,"status":204,"url":"/experiments/cb73148a-cf15-4bb5-bf09-43949ed02628"} gateway-1 | {"time_local":"07/May/2025:16:12:26 +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.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"14e711803d675f47f5e439c55f0f4726"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 204ms","method":"POST","requestID":"13ab0546a73100ce9329ebb3d41913eb","responseTime":204,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.209","http_referrer":"","http_user_agent":"node-fetch","requestID":"13ab0546a73100ce9329ebb3d41913eb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 229ms","method":"POST","requestID":"62c76bda5daa7d19da8904ec2475532d","responseTime":229,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.233","http_referrer":"","http_user_agent":"node-fetch","requestID":"62c76bda5daa7d19da8904ec2475532d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM","level":"info","message":"auth send jwt","requestID":"523009d4469bef2ac36ebd0a9026aea8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"523009d4469bef2ac36ebd0a9026aea8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"523009d4469bef2ac36ebd0a9026aea8"} gateway-1 | {"time_local":"07/May/2025:16:12:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2548","request_time":"3.162","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eb9fd11410f5e3e8d4f6463eaaa6281c"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.983824,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"523009d4469bef2ac36ebd0a9026aea8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634346,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"523009d4469bef2ac36ebd0a9026aea8","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/f9f22848-049f-4d6f-8585-ca423246e425' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5b51c50e-18ec-481f-a1fa-9bb7dc313553' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a35d1678-26a5-4661-afd7-e60d5f9eaaf5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.4915385} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"523009d4469bef2ac36ebd0a9026aea8","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"05cdc493-3f5d-4635-9054-9ab411ee82aa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.4968479} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"523009d4469bef2ac36ebd0a9026aea8","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"f38dcee3-f1cd-4865-a535-64b6890538b3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.5314035} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a88f9aca-2dba-490a-89c3-186c9dd747c8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.531627} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"523009d4469bef2ac36ebd0a9026aea8","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.531388751Z"}]},"request_id":"28b9f323-5a0c-4a5c-b0a9-eb5810e6c48b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.537384} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"523009d4469bef2ac36ebd0a9026aea8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"523009d4469bef2ac36ebd0a9026aea8"} gateway-1 | {"time_local":"07/May/2025:16:12: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.128","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"523009d4469bef2ac36ebd0a9026aea8"} device-1 | {"level":"info","message":"POST /devices? 201 98ms","method":"POST","requestID":"523009d4469bef2ac36ebd0a9026aea8","responseTime":98,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM","level":"info","message":"auth send jwt","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.708316,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634346,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0Nn0.-Ju2718fN9ugJImu52-p19CK0fU5tCvqznMNkwGH_iM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f10f22cc-8ac4-4bc3-af2e-c9f8bc1ba150","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.5872524} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c806e573-f70a-4d60-9899-531ed4a2651c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.5924811} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"b8a85f92-b21e-407b-b295-3af7203d5b0a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.6299381} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd14cee8-c0c8-4282-bdcc-53dce9f856ae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.6301804} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","responseTime":41,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.629922818Z"}]},"request_id":"4798a2d9-1f79-49a2-acaa-ebcbee438fac","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634346.6360068} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d"} gateway-1 | {"time_local":"07/May/2025:16:12: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.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"efa8b1e4bba547b1bf1139d5b4bf0e2d","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0N30.toOH6WvZxosG3iIJEBJzUyzVHl1q3jge0cFzIZcMAz0","level":"info","message":"auth send jwt","requestID":"112fbbc479bc41d7811120130630ef69"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"112fbbc479bc41d7811120130630ef69","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"112fbbc479bc41d7811120130630ef69"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:27Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655588,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"112fbbc479bc41d7811120130630ef69","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634347,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0N30.toOH6WvZxosG3iIJEBJzUyzVHl1q3jge0cFzIZcMAz0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"112fbbc479bc41d7811120130630ef69","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.531388751Z"}]},"request_id":"77a1350f-2bcf-4833-a9f4-0e68be7244a7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634347.6050818} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"112fbbc479bc41d7811120130630ef69","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5ee7e33f-1cc3-4f7c-98d7-7be434a2bd2e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634347.6101484} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"112fbbc479bc41d7811120130630ef69","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.531388751Z"}]},"request_id":"f1acd71c-f95d-4597-ac7d-f96e1b4986fd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634347.6455138} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"112fbbc479bc41d7811120130630ef69","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"112fbbc479bc41d7811120130630ef69"} gateway-1 | {"time_local":"07/May/2025:16:12:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.057","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"112fbbc479bc41d7811120130630ef69"} device-1 | {"level":"info","message":"PATCH /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba 200 53ms","method":"PATCH","requestID":"112fbbc479bc41d7811120130630ef69","responseTime":53,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0N30.toOH6WvZxosG3iIJEBJzUyzVHl1q3jge0cFzIZcMAz0","level":"info","message":"auth send jwt","requestID":"50b7f8980562b667dc795f9b5c51e5b1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"50b7f8980562b667dc795f9b5c51e5b1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"50b7f8980562b667dc795f9b5c51e5b1"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:27Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.752692,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50b7f8980562b667dc795f9b5c51e5b1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634347,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0N30.toOH6WvZxosG3iIJEBJzUyzVHl1q3jge0cFzIZcMAz0"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"50b7f8980562b667dc795f9b5c51e5b1","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"50b7f8980562b667dc795f9b5c51e5b1"} gateway-1 | {"time_local":"07/May/2025:16:12:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/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.18","requestID":"50b7f8980562b667dc795f9b5c51e5b1"} device-1 | {"level":"info","message":"POST /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/websocket 200 39ms","method":"POST","requestID":"50b7f8980562b667dc795f9b5c51e5b1","responseTime":39,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0726b0b7dd0164367a432ac3baa55639","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0726b0b7dd0164367a432ac3baa55639","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/02defeb5-928a-4e01-9212-dde7c489feec/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":"0726b0b7dd0164367a432ac3baa55639"} device-1 | {"level":"info","message":"OPTIONS /devices/02defeb5-928a-4e01-9212-dde7c489feec/websocket 200 1ms","method":"OPTIONS","requestID":"0726b0b7dd0164367a432ac3baa55639","responseTime":1,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OH0.5jx7CStpUlpVh6U5QyYzvo6KEpv9az_99ztM4sKXuKA","level":"info","message":"auth send jwt","requestID":"31d4449ca74fd9efa042abe9a889f5e1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"31d4449ca74fd9efa042abe9a889f5e1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"31d4449ca74fd9efa042abe9a889f5e1"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:28Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.827983,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"31d4449ca74fd9efa042abe9a889f5e1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634348,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OH0.5jx7CStpUlpVh6U5QyYzvo6KEpv9az_99ztM4sKXuKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"31d4449ca74fd9efa042abe9a889f5e1","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"31d4449ca74fd9efa042abe9a889f5e1"} gateway-1 | {"time_local":"07/May/2025:16:12:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/02defeb5-928a-4e01-9212-dde7c489feec/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.050","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"31d4449ca74fd9efa042abe9a889f5e1"} device-1 | {"level":"info","message":"POST /devices/02defeb5-928a-4e01-9212-dde7c489feec/websocket 200 46ms","method":"POST","requestID":"31d4449ca74fd9efa042abe9a889f5e1","responseTime":46,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60","level":"info","message":"auth send jwt","requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.664416,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.531388751Z"}]},"request_id":"af5694e2-cfec-4266-ad6b-51f56656b64b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.0846276} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8"} gateway-1 | {"time_local":"07/May/2025:16:12:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba? 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":"6a7d68e3a650fb5d8bd16d48f43a21c8"} device-1 | {"level":"info","message":"GET /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba? 200 11ms","method":"GET","requestID":"6a7d68e3a650fb5d8bd16d48f43a21c8","responseTime":11,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60","level":"info","message":"auth send jwt","requestID":"cd844f754e3ef1441dce51dbfd59b77a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cd844f754e3ef1441dce51dbfd59b77a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cd844f754e3ef1441dce51dbfd59b77a"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.683362,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cd844f754e3ef1441dce51dbfd59b77a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"cd844f754e3ef1441dce51dbfd59b77a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.629922818Z"}]},"request_id":"634a635b-6239-41bb-86f1-db6a7cd70027","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.1247158} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cd844f754e3ef1441dce51dbfd59b77a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cd844f754e3ef1441dce51dbfd59b77a"} gateway-1 | {"time_local":"07/May/2025:16:12:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/02defeb5-928a-4e01-9212-dde7c489feec? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cd844f754e3ef1441dce51dbfd59b77a"} device-1 | {"level":"info","message":"GET /devices/02defeb5-928a-4e01-9212-dde7c489feec? 200 35ms","method":"GET","requestID":"cd844f754e3ef1441dce51dbfd59b77a","responseTime":35,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60","level":"info","message":"auth send jwt","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fc0b1987de9aac6cf612f9df843edb5b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.690834,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"fc0b1987de9aac6cf612f9df843edb5b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"fc0b1987de9aac6cf612f9df843edb5b","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Attempting to run experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Attempting to book experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully booked experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"12dd7970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"12ddc790-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.763721,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"12dd7970-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"12dd7970-2b5e-11f0-8e1f-5304d0938eae","responseTime":25,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.401443,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"12ddc790-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"12ddc790-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.531388751Z"}]},"request_id":"69c2afa4-a2c4-486a-87c0-5c814da305c8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.2240567} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"12dd7970-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.629922818Z"}]},"request_id":"582a93fa-75e8-4f89-83d0-6da6fbd1e472","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.2249298} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"12ddc790-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"12dd7970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba? 200 38ms","method":"GET","requestID":"12dd7970-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"12ddc790-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/02defeb5-928a-4e01-9212-dde7c489feec? 200 36ms","method":"GET","requestID":"12ddc790-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Setting up experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully locked booking for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Attempting to update booking for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully updated booking for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully set up experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"12f239f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"12f26100-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"12f2d630-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.750073,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"12f239f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully running experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"12f239f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.969345,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"12f26100-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"12f26100-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.43609,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1fa3a0b0-3078-482f-b95e-cffcb575b53b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.337216} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"12f2d630-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","rebac_allow":false,"scope_allow":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":"12f2d630-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.629922818Z"}]},"request_id":"2e0caba7-cc4e-460d-a29b-76ccec7bdc82","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.3655097} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"12f26100-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.531388751Z"}]},"request_id":"ffcaf0bd-2a42-4566-80e9-3ebdd1cb882f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.3693404} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"12f239f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"12f2d630-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling 200 43ms","method":"POST","requestID":"12f2d630-2b5e-11f0-8e1f-5304d0938eae","responseTime":43,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"12fa0220-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"12f26100-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/02defeb5-928a-4e01-9212-dde7c489feec? 200 53ms","method":"GET","requestID":"12f26100-2b5e-11f0-8e1f-5304d0938eae","responseTime":53,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"12f239f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba? 200 56ms","method":"GET","requestID":"12f239f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":56,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F788e39f4-86ba-4875-b953-6d59105e8766#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F788e39f4-86ba-4875-b953-6d59105e8766","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d46b20ac-ba04-4ec8-ab9e-a3320cd970fa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.3825939} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"12d5ffbc-3485-4d63-8343-6312a71fc93a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.382931} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"12febd10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 76ms","method":"POST","requestID":"fc0b1987de9aac6cf612f9df843edb5b","responseTime":76,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.072372,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f1db902c-d0b6-43d9-a573-888a75aa3cea","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.4099553} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"12fa0220-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","rebac_allow":false,"scope_allow":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":"12fa0220-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67db3752-f5fb-43c9-b17c-9feb03f71063","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.415814} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.052992,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"12febd10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","rebac_allow":false,"scope_allow":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":"12febd10-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /experiments? 201 285ms","method":"POST","requestID":"fc0b1987de9aac6cf612f9df843edb5b","responseTime":285,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"07/May/2025:16:12:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.289","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"12fa0220-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling 200 43ms","method":"POST","requestID":"12fa0220-2b5e-11f0-8e1f-5304d0938eae","responseTime":43,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"12febd10-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60","level":"info","message":"auth send jwt","requestID":"0ef60161345911c307b1369aa9d3fc50"} device-1 | {"level":"info","message":"POST /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling 200 15ms","method":"POST","requestID":"12febd10-2b5e-11f0-8e1f-5304d0938eae","responseTime":15,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0ef60161345911c307b1369aa9d3fc50","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0ef60161345911c307b1369aa9d3fc50"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"13017c30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.688945,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0ef60161345911c307b1369aa9d3fc50","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0ef60161345911c307b1369aa9d3fc50","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b24edd38-6cdb-4e85-8476-f2aabea17c37","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.4313588} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.882207,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"13017c30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","rebac_allow":false,"scope_allow":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":"13017c30-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"13017c30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.531388751Z"}]},"request_id":"b1841889-4625-479f-8dba-fd8ec36ecc39","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.4604921} device-1 | {"level":"info","message":"POST /devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling 200 33ms","method":"POST","requestID":"13017c30-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Building connection plan","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"d72ae536-c0e8-405f-8fe2-42dbd14883db"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"8c24ed7c-6475-44b6-8a3d-7f6e24ab4ca1"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ee40b05c-d1ff-4837-9f03-0d9b37b29d75"}]},"level":"info","message":"Built pairwise service configurations","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0ef60161345911c307b1369aa9d3fc50","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0ef60161345911c307b1369aa9d3fc50"} gateway-1 | {"time_local":"07/May/2025:16:12:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ef60161345911c307b1369aa9d3fc50"} device-1 | {"level":"info","message":"GET /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba? 200 42ms","method":"GET","requestID":"0ef60161345911c307b1369aa9d3fc50","responseTime":42,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba?"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.772374,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60","level":"info","message":"auth send jwt","requestID":"7f0b002475b657f0fc9f095fb4879c0d"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7f0b002475b657f0fc9f095fb4879c0d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7f0b002475b657f0fc9f095fb4879c0d"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.815747,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"7f0b002475b657f0fc9f095fb4879c0d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634349,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM0OX0.v2EzUbr5JF4SE4v2n8siDDUTwtUnnGkVkKB9JCDDk60"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7f0b002475b657f0fc9f095fb4879c0d","responseTime":3,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f2e1e8d5-30db-43d0-9eca-a467cdff7286","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.4780042} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"03a81c49-81b7-4c29-8fc3-19b869cd6497","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.4782577} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:26.629922818Z"}]},"request_id":"9607a1c2-f1fa-4a1a-a850-ec627409b0c5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.481744} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7f0b002475b657f0fc9f095fb4879c0d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56'","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56'","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 55ms","method":"POST","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae","responseTime":55,"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":"7f0b002475b657f0fc9f095fb4879c0d"} gateway-1 | {"time_local":"07/May/2025:16:12:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/02defeb5-928a-4e01-9212-dde7c489feec? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7f0b002475b657f0fc9f095fb4879c0d"} device-1 | {"level":"info","message":"GET /devices/02defeb5-928a-4e01-9212-dde7c489feec? 200 45ms","method":"GET","requestID":"7f0b002475b657f0fc9f095fb4879c0d","responseTime":45,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"13072180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56","device":"02defeb5-928a-4e01-9212-dde7c489feec","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} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"fc0b1987de9aac6cf612f9df843edb5b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1317c350-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a687036-534f-4dba-b63f-c5cbe476a7b4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.5772133} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.280599,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1317c350-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","rebac_allow":false,"scope_allow":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":"1317c350-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1317c350-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling 200 32ms","method":"POST","requestID":"1317c350-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"131cf370-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ce5d23c3-0124-4d90-9599-594542403ecd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634349.6124053} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.732447,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"131cf370-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","rebac_allow":false,"scope_allow":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":"131cf370-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"device":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"131cf370-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling 200 12ms","method":"POST","requestID":"131cf370-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 1366991944020686683 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:j9vU\r\na=ice-pwd:VJKSzykEaFQ2y75CGz3MsWI3\r\na=ice-options:trickle\r\na=fingerprint:sha-256 49:F5:BF:17:F8:B9:BB:9E:E5:3A:70:EB:3F:7A:EC:5F:2D:6B:5C:2E:38:AA:34:3D:A2:69:69:D0:EE:FB:F8:D1\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec'"} device-1 | {"device":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"101ab93b-d734-4485-b209-b9fd1e330f56","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/101ab93b-d734-4485-b209-b9fd1e330f56' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"101ab93b-d734-4485-b209-b9fd1e330f56","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"52e329560bc37dc1bd978ca9fef31f29","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"52e329560bc37dc1bd978ca9fef31f29","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/cfde7f3e-d80b-46cc-a38e-fad872839aba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56"}}},"level":"info","message":"received a callback","requestID":"52e329560bc37dc1bd978ca9fef31f29"} device-1 | {"content":{"candidate":"candidate:2490647815 1 udp 2113937151 8fceafaa-9e5d-43fc-8074-f9369737d66e.local 53090 typ host generation 0 ufrag j9vU network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"52e329560bc37dc1bd978ca9fef31f29","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"52e329560bc37dc1bd978ca9fef31f29"} device-1 | {"data":{"peerconnection":"101ab93b-d734-4485-b209-b9fd1e330f56","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"101ab93b-d734-4485-b209-b9fd1e330f56","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/101ab93b-d734-4485-b209-b9fd1e330f56' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"101ab93b-d734-4485-b209-b9fd1e330f56","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"922822be8de2e25fd4c57c3b86f9ca3f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"922822be8de2e25fd4c57c3b86f9ca3f","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/cfde7f3e-d80b-46cc-a38e-fad872839aba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56"}}},"level":"info","message":"received a callback","requestID":"922822be8de2e25fd4c57c3b86f9ca3f"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"145ee950-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F101ab93b-d734-4485-b209-b9fd1e330f56","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b6ff1c4f-523a-4e46-b520-bdd716fa80c1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.7233014} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.049733,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"145ee950-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56","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":"145ee950-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"145ee950-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56 200 11ms","method":"GET","requestID":"145ee950-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 79ms","method":"POST","requestID":"922822be8de2e25fd4c57c3b86f9ca3f","responseTime":79,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.081","http_referrer":"","http_user_agent":"node-fetch","requestID":"922822be8de2e25fd4c57c3b86f9ca3f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"14668a70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"340aedb8-fc2a-4a80-af92-618851b4a152","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.7713954} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.273364,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"14668a70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","rebac_allow":false,"scope_allow":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":"14668a70-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"14668a70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling 200 8ms","method":"POST","requestID":"14668a70-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"14683820-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1MX0.YaWBe4gGEt2StWqlcjpHo_mmcngURUmkijRaD05PsME","level":"info","message":"auth send jwt","requestID":"e2e1df75d208f2f068869b0b7f96a142"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e2e1df75d208f2f068869b0b7f96a142","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/788e39f4-86ba-4875-b953-6d59105e8766","requestID":"e2e1df75d208f2f068869b0b7f96a142"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d49d5b81-3eb7-4a78-9bfd-c00f233d2530","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.7827463} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.407455,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"14683820-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","rebac_allow":false,"scope_allow":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":"14683820-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.707953,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e2e1df75d208f2f068869b0b7f96a142","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634351,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1MX0.YaWBe4gGEt2StWqlcjpHo_mmcngURUmkijRaD05PsME"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e2e1df75d208f2f068869b0b7f96a142","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"14683820-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling 200 9ms","method":"POST","requestID":"14683820-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/788e39f4-86ba-4875-b953-6d59105e8766","requestID":"e2e1df75d208f2f068869b0b7f96a142"} gateway-1 | {"time_local":"07/May/2025:16:12:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/788e39f4-86ba-4875-b953-6d59105e8766 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2e1df75d208f2f068869b0b7f96a142"} experiment-1 | {"level":"info","message":"GET /experiments/788e39f4-86ba-4875-b953-6d59105e8766 200 36ms","method":"GET","requestID":"e2e1df75d208f2f068869b0b7f96a142","responseTime":36,"status":200,"url":"/experiments/788e39f4-86ba-4875-b953-6d59105e8766"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1MX0.YaWBe4gGEt2StWqlcjpHo_mmcngURUmkijRaD05PsME","level":"info","message":"auth send jwt","requestID":"733dbe8cba256216f2105898b70bf4ff"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"733dbe8cba256216f2105898b70bf4ff","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/788e39f4-86ba-4875-b953-6d59105e8766","requestID":"733dbe8cba256216f2105898b70bf4ff"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.702838,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"733dbe8cba256216f2105898b70bf4ff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634351,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1MX0.YaWBe4gGEt2StWqlcjpHo_mmcngURUmkijRaD05PsME"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"733dbe8cba256216f2105898b70bf4ff","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Attempting to finish experiment","requestID":"733dbe8cba256216f2105898b70bf4ff"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"14707580-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.61762,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"14707580-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634351,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1MX0.YaWBe4gGEt2StWqlcjpHo_mmcngURUmkijRaD05PsME"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"14707580-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56","device":"02defeb5-928a-4e01-9212-dde7c489feec","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"cfde7f3e-d80b-46cc-a38e-fad872839aba","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/101ab93b-d734-4485-b209-b9fd1e330f56' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"101ab93b-d734-4485-b209-b9fd1e330f56","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"663484ea6cf9adf4d74ea454d2ef7e7c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F101ab93b-d734-4485-b209-b9fd1e330f56': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F101ab93b-d734-4485-b209-b9fd1e330f56","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"01ea345c-e239-4525-9487-a58963dec49c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.8743393} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"663484ea6cf9adf4d74ea454d2ef7e7c","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf302871-c10a-41c3-9646-dd94a9668eb2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.8747194} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8618f6e98b03220e253711adb9af3afb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/cfde7f3e-d80b-46cc-a38e-fad872839aba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56"}}},"level":"info","message":"received a callback","requestID":"663484ea6cf9adf4d74ea454d2ef7e7c"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8618f6e98b03220e253711adb9af3afb","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"14707580-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"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/cfde7f3e-d80b-46cc-a38e-fad872839aba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56"}}},"level":"info","message":"received a callback","requestID":"8618f6e98b03220e253711adb9af3afb"} device-1 | {"data":{"peerconnection":"101ab93b-d734-4485-b209-b9fd1e330f56","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"14707580-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56 204 87ms","method":"DELETE","requestID":"14707580-2b5e-11f0-8e1f-5304d0938eae","responseTime":87,"status":204,"url":"/peerconnections/101ab93b-d734-4485-b209-b9fd1e330f56"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/788e39f4-86ba-4875-b953-6d59105e8766"},"level":"info","message":"Successfully finished experiment","requestID":"733dbe8cba256216f2105898b70bf4ff"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1483af60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfde7f3e-d80b-46cc-a38e-fad872839aba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"425383af-962e-487a-bdd3-d0e74aeb13dd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.962685} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.486092,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1483af60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba","object_type":"device","rebac_allow":false,"scope_allow":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":"1483af60-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1483af60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling 200 9ms","method":"POST","requestID":"1483af60-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"14855d10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F788e39f4-86ba-4875-b953-6d59105e8766': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F788e39f4-86ba-4875-b953-6d59105e8766","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"daa9d629-583b-427d-8589-cd8d617bf14b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.970637} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e0e446db-866f-46bd-a91c-72b49d12b64a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.970858} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"733dbe8cba256216f2105898b70bf4ff","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F02defeb5-928a-4e01-9212-dde7c489feec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b07645fd-bfb1-4650-9ee7-86dbdf024c67","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634351.973588} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.535508,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"14855d10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/02defeb5-928a-4e01-9212-dde7c489feec","object_type":"device","rebac_allow":false,"scope_allow":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":"14855d10-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"14855d10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling 200 34ms","method":"POST","requestID":"14855d10-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/02defeb5-928a-4e01-9212-dde7c489feec/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/788e39f4-86ba-4875-b953-6d59105e8766","requestID":"733dbe8cba256216f2105898b70bf4ff"} gateway-1 | {"time_local":"07/May/2025:16:12:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/788e39f4-86ba-4875-b953-6d59105e8766 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.254","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"733dbe8cba256216f2105898b70bf4ff"} experiment-1 | {"level":"info","message":"DELETE /experiments/788e39f4-86ba-4875-b953-6d59105e8766 204 254ms","method":"DELETE","requestID":"733dbe8cba256216f2105898b70bf4ff","responseTime":254,"status":204,"url":"/experiments/788e39f4-86ba-4875-b953-6d59105e8766"} gateway-1 | {"time_local":"07/May/2025:16:12:32 +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.383","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"ead61b7d7997067ae3f738c3086ebd8c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 228ms","method":"POST","requestID":"663484ea6cf9adf4d74ea454d2ef7e7c","responseTime":228,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.231","http_referrer":"","http_user_agent":"node-fetch","requestID":"663484ea6cf9adf4d74ea454d2ef7e7c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 227ms","method":"POST","requestID":"8618f6e98b03220e253711adb9af3afb","responseTime":227,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.232","http_referrer":"","http_user_agent":"node-fetch","requestID":"8618f6e98b03220e253711adb9af3afb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Mn0.0LONrYLVLDttTUxCbSPVE0s7j7TSTcSKzqIb7SGuvnI","level":"info","message":"auth send jwt","requestID":"de9a051a2bf762be7df1b2e5e9968b86"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"de9a051a2bf762be7df1b2e5e9968b86","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"de9a051a2bf762be7df1b2e5e9968b86"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:32Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cfde7f3e-d80b-46cc-a38e-fad872839aba' closed"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.986872,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:32Z"} gateway-1 | {"time_local":"07/May/2025:16:12:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2543","request_time":"3.073","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"11e7b40a21bddd3555976e28a2806f53"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"de9a051a2bf762be7df1b2e5e9968b86","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634352,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Mn0.0LONrYLVLDttTUxCbSPVE0s7j7TSTcSKzqIb7SGuvnI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"de9a051a2bf762be7df1b2e5e9968b86","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/02defeb5-928a-4e01-9212-dde7c489feec' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"495f4a11-b8ab-4aba-8343-96434d30a386","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.1499078} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"de9a051a2bf762be7df1b2e5e9968b86","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd633496-7d72-4699-af98-70f99d3379ee","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.1552935} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"de9a051a2bf762be7df1b2e5e9968b86","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"a8e3903b-bdec-47e7-a9ac-d9db0d5bd676","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.165131} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cb02a4a6-eedf-47f6-b220-3670cd35c326","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.1652982} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"de9a051a2bf762be7df1b2e5e9968b86","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.165115833Z"}]},"request_id":"b12f0f71-e4d4-421f-829b-d2fbb092538c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.194326} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"de9a051a2bf762be7df1b2e5e9968b86","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"de9a051a2bf762be7df1b2e5e9968b86"} gateway-1 | {"time_local":"07/May/2025:16:12:32 +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":"de9a051a2bf762be7df1b2e5e9968b86"} device-1 | {"level":"info","message":"POST /devices? 201 88ms","method":"POST","requestID":"de9a051a2bf762be7df1b2e5e9968b86","responseTime":88,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Mn0.0LONrYLVLDttTUxCbSPVE0s7j7TSTcSKzqIb7SGuvnI","level":"info","message":"auth send jwt","requestID":"a73e581af5756e11ca99600a727e6512"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a73e581af5756e11ca99600a727e6512","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a73e581af5756e11ca99600a727e6512"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:32Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.707172,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a73e581af5756e11ca99600a727e6512","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634352,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Mn0.0LONrYLVLDttTUxCbSPVE0s7j7TSTcSKzqIb7SGuvnI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a73e581af5756e11ca99600a727e6512","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"53ceb97b-64c3-44a8-b3ab-5cb08b7bc36a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.2543514} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a73e581af5756e11ca99600a727e6512","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c6e8134d-8457-4d1d-a0d3-82efbd59971c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.2592576} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"a73e581af5756e11ca99600a727e6512","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"12e72bbd-fdf9-4fa6-a3ac-0f73494c2223","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.2977057} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9755d3f0-7ac2-4f5e-99a8-e9c06b2ff4b8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.2978942} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"a73e581af5756e11ca99600a727e6512","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.297693473Z"}]},"request_id":"d2a49085-2b4f-49ce-adc2-dd53e6a10464","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634352.3032343} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a73e581af5756e11ca99600a727e6512","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a73e581af5756e11ca99600a727e6512"} gateway-1 | {"time_local":"07/May/2025:16:12:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.108","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a73e581af5756e11ca99600a727e6512"} device-1 | {"level":"info","message":"POST /devices? 201 104ms","method":"POST","requestID":"a73e581af5756e11ca99600a727e6512","responseTime":104,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"a3b5a23bd9388082fd375bf801569657"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a3b5a23bd9388082fd375bf801569657","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"a3b5a23bd9388082fd375bf801569657"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.839089,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a3b5a23bd9388082fd375bf801569657","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"a3b5a23bd9388082fd375bf801569657","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.165115833Z"}]},"request_id":"80f69782-3c15-4bb3-9372-cfe3ae562927","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.2550364} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a3b5a23bd9388082fd375bf801569657","responseTime":3,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"a4898228029183e693519ba8d8fb908f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a4898228029183e693519ba8d8fb908f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"a4898228029183e693519ba8d8fb908f"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"70358235-cb80-439a-9004-df2b4cc3c4e3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.2607656} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"a3b5a23bd9388082fd375bf801569657","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.06867,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a4898228029183e693519ba8d8fb908f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a4898228029183e693519ba8d8fb908f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.165115833Z"}]},"request_id":"dbd479db-50ed-43db-98f9-cd7b01214a5a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.3074043} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"a3b5a23bd9388082fd375bf801569657","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.297693473Z"}]},"request_id":"575664b6-f843-4d85-897f-8e1db5c18554","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.3094492} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"a3b5a23bd9388082fd375bf801569657"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.094","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"a3b5a23bd9388082fd375bf801569657"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"a4898228029183e693519ba8d8fb908f","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"PATCH /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db 200 90ms","method":"PATCH","requestID":"a3b5a23bd9388082fd375bf801569657","responseTime":90,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"6a88bbee4a9b970e40429c41a6311926"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6a88bbee4a9b970e40429c41a6311926","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6a88bbee4a9b970e40429c41a6311926"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf614251-ee40-4860-931a-1318afa591e8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.3164585} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"a4898228029183e693519ba8d8fb908f","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.773172,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6a88bbee4a9b970e40429c41a6311926","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6a88bbee4a9b970e40429c41a6311926","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.297693473Z"}]},"request_id":"15cf4662-936d-4468-ba21-fecb7f2e8b07","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.3489866} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"a4898228029183e693519ba8d8fb908f","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"a4898228029183e693519ba8d8fb908f"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.097","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"a4898228029183e693519ba8d8fb908f"} device-1 | {"level":"info","message":"PATCH /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f 200 91ms","method":"PATCH","requestID":"a4898228029183e693519ba8d8fb908f","responseTime":91,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"6d9a02b53d251027bf9f7eb010aac18e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6d9a02b53d251027bf9f7eb010aac18e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6d9a02b53d251027bf9f7eb010aac18e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6a88bbee4a9b970e40429c41a6311926"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"6a88bbee4a9b970e40429c41a6311926"} device-1 | {"level":"info","message":"POST /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/websocket 200 40ms","method":"POST","requestID":"6a88bbee4a9b970e40429c41a6311926","responseTime":40,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/websocket"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.895643,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6d9a02b53d251027bf9f7eb010aac18e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6d9a02b53d251027bf9f7eb010aac18e","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6d9a02b53d251027bf9f7eb010aac18e"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/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.18","requestID":"6d9a02b53d251027bf9f7eb010aac18e"} device-1 | {"level":"info","message":"POST /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/websocket 200 44ms","method":"POST","requestID":"6d9a02b53d251027bf9f7eb010aac18e","responseTime":44,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"99dd9a316a40471ab9650089096aa552"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"99dd9a316a40471ab9650089096aa552","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"99dd9a316a40471ab9650089096aa552"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.876997,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"99dd9a316a40471ab9650089096aa552","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"99dd9a316a40471ab9650089096aa552","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.165115833Z"}]},"request_id":"04dc43d3-4758-4d8f-8271-9b6431605328","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.4477055} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"99dd9a316a40471ab9650089096aa552","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"99dd9a316a40471ab9650089096aa552"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db? 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":"99dd9a316a40471ab9650089096aa552"} device-1 | {"level":"info","message":"GET /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db? 200 35ms","method":"GET","requestID":"99dd9a316a40471ab9650089096aa552","responseTime":35,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"30960c01d77e9287bb145254c1d876c2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"30960c01d77e9287bb145254c1d876c2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30960c01d77e9287bb145254c1d876c2"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.751874,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"30960c01d77e9287bb145254c1d876c2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"30960c01d77e9287bb145254c1d876c2","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.297693473Z"}]},"request_id":"afe0ce38-4233-44f9-8371-e05908faa9b2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.4640453} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f? 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":"30960c01d77e9287bb145254c1d876c2"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"30960c01d77e9287bb145254c1d876c2","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30960c01d77e9287bb145254c1d876c2"} device-1 | {"level":"info","message":"GET /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f? 200 11ms","method":"GET","requestID":"30960c01d77e9287bb145254c1d876c2","responseTime":11,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3df9e75b624f4faaef40562af4c9a1c7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.846509,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3df9e75b624f4faaef40562af4c9a1c7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3df9e75b624f4faaef40562af4c9a1c7","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Attempting to run experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Attempting to book experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully booked experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1577ac50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1577fa70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.618395,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1577ac50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1577ac50-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658896,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1577fa70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1577fa70-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.165115833Z"}]},"request_id":"9a4c5185-28e0-46a2-9ab6-a93a05294f77","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.5902233} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"1577ac50-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.297693473Z"}]},"request_id":"8210f495-fd09-49a3-96e7-78abd6382a15","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.5915077} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"1577fa70-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1577ac50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db? 200 39ms","method":"GET","requestID":"1577ac50-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1577fa70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f? 200 39ms","method":"GET","requestID":"1577fa70-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Setting up experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully locked booking for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Attempting to update booking for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully updated booking for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully set up experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"158c93e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"158cbaf0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"158d0910-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully running experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.966814,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"158c93e0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"158c93e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.752795,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"158cbaf0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"158cbaf0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.979266,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8262380e-310a-42ba-8712-1cd233ed96d9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.703285} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"158d0910-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","rebac_allow":false,"scope_allow":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":"158d0910-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.297693473Z"}]},"request_id":"908154c5-4b93-42cf-9a79-cf0d225f9590","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.7073984} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"158d0910-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling 200 11ms","method":"POST","requestID":"158d0910-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"158cbaf0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.165115833Z"}]},"request_id":"63a63768-e7d5-4421-a5bf-1c04a61ea5ec","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.708174} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"158c93e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"15934aa0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d37504d-2fff-452b-a342-821ec7c13c32#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d37504d-2fff-452b-a342-821ec7c13c32","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c0996f9f-9d85-4a7f-86f6-8379fc7ba166","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.739743} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"135605a8-e134-4fa8-ba0f-d9cafde769cc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.7399495} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"158cbaf0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f? 200 47ms","method":"GET","requestID":"158cbaf0-2b5e-11f0-8e1f-5304d0938eae","responseTime":47,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"158c93e0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"3df9e75b624f4faaef40562af4c9a1c7","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} device-1 | {"level":"info","message":"GET /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db? 200 49ms","method":"GET","requestID":"158c93e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":49,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"142b7b6f-6e20-45cf-9f1c-e4055ae8e8c5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.7448254} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.06675,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"15934aa0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","rebac_allow":false,"scope_allow":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":"15934aa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"15934aa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling 200 11ms","method":"POST","requestID":"15934aa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"15951f60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"43ff0df9-28a2-4bde-824a-f080d83a5d38","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.779017} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.855487,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"15951f60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","rebac_allow":false,"scope_allow":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":"15951f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /experiments? 201 284ms","method":"POST","requestID":"3df9e75b624f4faaef40562af4c9a1c7","responseTime":284,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"15951f60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling 200 35ms","method":"POST","requestID":"15951f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.291","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"159b12d0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"3d7e77dec6495b8138992d8065534435"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3d7e77dec6495b8138992d8065534435","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3d7e77dec6495b8138992d8065534435"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.965731,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3d7e77dec6495b8138992d8065534435","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"3d7e77dec6495b8138992d8065534435","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":7.723378,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"266e4a21-6bcd-47d9-bf66-f5358433b681","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.7992177} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"159b12d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 36ms","method":"POST","requestID":"159b12d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.165115833Z"}]},"request_id":"2af14195-d6ac-4683-ac03-5800a6b7fa16","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.8293955} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3d7e77dec6495b8138992d8065534435","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"159b12d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling 200 45ms","method":"POST","requestID":"159b12d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":45,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3d7e77dec6495b8138992d8065534435"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Building connection plan","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"2a15bce2-8670-48b0-a44e-2c99725064b7"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"35d2afb5-c5a7-423d-8734-d2bd05241809"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b3594f8b-7c9e-4cb6-8f81-ea53ed952822"}]},"level":"info","message":"Built pairwise service configurations","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d7e77dec6495b8138992d8065534435"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} device-1 | {"level":"info","message":"GET /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db? 200 43ms","method":"GET","requestID":"3d7e77dec6495b8138992d8065534435","responseTime":43,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db?"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM","level":"info","message":"auth send jwt","requestID":"835045694984376834f9fd70cd370c47"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"835045694984376834f9fd70cd370c47","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"835045694984376834f9fd70cd370c47"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.804673,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.771203,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"835045694984376834f9fd70cd370c47","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634353,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1M30.cDP8g-mfRNgSyg-DIu1gM6JgLxmGsNwMe1o_5b0QXsM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"835045694984376834f9fd70cd370c47","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:32.297693473Z"}]},"request_id":"41c3ac8e-109b-4159-8026-4418a2661229","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.8733788} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"835045694984376834f9fd70cd370c47","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"835045694984376834f9fd70cd370c47"} device-1 | {"level":"info","message":"GET /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f? 200 35ms","method":"GET","requestID":"835045694984376834f9fd70cd370c47","responseTime":35,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b99dce50-8a38-43dc-a854-1199d0c82e9d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.8780923} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"9df51a28-8bb2-4267-a243-8ce2162ff67b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.878318} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} gateway-1 | {"time_local":"07/May/2025:16:12:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f? 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":"835045694984376834f9fd70cd370c47"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f'","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f'","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae"} 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":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae","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":"15a2b3f0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"3df9e75b624f4faaef40562af4c9a1c7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"15b8d400-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"19b41f90-6f93-4852-9c3b-2e71551c9e69","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634353.989075} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.345692,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"15b8d400-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","rebac_allow":false,"scope_allow":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":"15b8d400-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"15b8d400-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling 200 9ms","method":"POST","requestID":"15b8d400-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"15ba81b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:34Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9436fd66-e6e1-4904-a8ba-d85d3a33f296","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634354.023771} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.761857,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"15ba81b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","rebac_allow":false,"scope_allow":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":"15ba81b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"15ba81b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling 200 33ms","method":"POST","requestID":"15ba81b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling"} device-1 | {"device":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c653652719dfe6ce082b58def27e67c9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c653652719dfe6ce082b58def27e67c9","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/2d5f3813-96bb-43e8-922b-2203c2a8020f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f"}}},"level":"info","message":"received a callback","requestID":"c653652719dfe6ce082b58def27e67c9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"c653652719dfe6ce082b58def27e67c9","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"c653652719dfe6ce082b58def27e67c9"} device-1 | {"device":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","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/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e80011ff31b4bbb3e5acb8ff8fd94998","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e80011ff31b4bbb3e5acb8ff8fd94998","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/2d5f3813-96bb-43e8-922b-2203c2a8020f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f"}}},"level":"info","message":"received a callback","requestID":"e80011ff31b4bbb3e5acb8ff8fd94998"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"16f91c30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb03a8dd9-62d6-4742-8fd8-3d68b49ed32f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c667b46-0218-457e-8ec0-6156fc007ed6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.0870347} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.129301,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"16f91c30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","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":"16f91c30-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"16f91c30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f 200 8ms","method":"GET","requestID":"16f91c30-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 53ms","method":"POST","requestID":"e80011ff31b4bbb3e5acb8ff8fd94998","responseTime":53,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.056","http_referrer":"","http_user_agent":"node-fetch","requestID":"e80011ff31b4bbb3e5acb8ff8fd94998"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"16fcecc0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46200754-d6a9-4392-913a-e930c659695b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.1328194} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.660052,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"16fcecc0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","rebac_allow":false,"scope_allow":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":"16fcecc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"16fcecc0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling 200 29ms","method":"POST","requestID":"16fcecc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1701cec0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"230cb8e2111979afda212ee63d6dffb7"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"230cb8e2111979afda212ee63d6dffb7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3d37504d-2fff-452b-a342-821ec7c13c32","requestID":"230cb8e2111979afda212ee63d6dffb7"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a700773-b92f-41ca-b1e6-c04a9d989471","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.144591} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.682995,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1701cec0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","rebac_allow":false,"scope_allow":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":"1701cec0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.893984,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1701cec0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling 200 9ms","method":"POST","requestID":"1701cec0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"230cb8e2111979afda212ee63d6dffb7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"230cb8e2111979afda212ee63d6dffb7","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/3d37504d-2fff-452b-a342-821ec7c13c32","requestID":"230cb8e2111979afda212ee63d6dffb7"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3d37504d-2fff-452b-a342-821ec7c13c32 HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"230cb8e2111979afda212ee63d6dffb7"} experiment-1 | {"level":"info","message":"GET /experiments/3d37504d-2fff-452b-a342-821ec7c13c32 200 37ms","method":"GET","requestID":"230cb8e2111979afda212ee63d6dffb7","responseTime":37,"status":200,"url":"/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"2ac918d756b42306ad477d97a2a615b9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2ac918d756b42306ad477d97a2a615b9","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3d37504d-2fff-452b-a342-821ec7c13c32","requestID":"2ac918d756b42306ad477d97a2a615b9"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.065105,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2ac918d756b42306ad477d97a2a615b9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2ac918d756b42306ad477d97a2a615b9","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Attempting to finish experiment","requestID":"2ac918d756b42306ad477d97a2a615b9"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"170a0c20-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.993403,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"170a0c20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"170a0c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"device":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2d5f3813-96bb-43e8-922b-2203c2a8020f","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b2c5c961-54a5-4e15-9b4a-0743eaf055db","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb03a8dd9-62d6-4742-8fd8-3d68b49ed32f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb03a8dd9-62d6-4742-8fd8-3d68b49ed32f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"573c25a8-2768-4bad-b008-8025823d4463","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.2344186} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99990449-d013-47b2-8d1e-f4aa418c7e65","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.2347312} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a1cb93aa0fcf4e3654c88ff8eb193265","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a1cb93aa0fcf4e3654c88ff8eb193265","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"170a0c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9378ebd16213a1ca20048e5e4bb47ff5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/2d5f3813-96bb-43e8-922b-2203c2a8020f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f"}}},"level":"info","message":"received a callback","requestID":"a1cb93aa0fcf4e3654c88ff8eb193265"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9378ebd16213a1ca20048e5e4bb47ff5","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/2d5f3813-96bb-43e8-922b-2203c2a8020f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f"}}},"level":"info","message":"received a callback","requestID":"9378ebd16213a1ca20048e5e4bb47ff5"} device-1 | {"data":{"peerconnection":"b03a8dd9-62d6-4742-8fd8-3d68b49ed32f","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"170a0c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f 204 95ms","method":"DELETE","requestID":"170a0c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":95,"status":204,"url":"/peerconnections/b03a8dd9-62d6-4742-8fd8-3d68b49ed32f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"},"level":"info","message":"Successfully finished experiment","requestID":"2ac918d756b42306ad477d97a2a615b9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"171ea590-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2d5f3813-96bb-43e8-922b-2203c2a8020f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3cffdf04-3f27-42ff-baee-5a4dee569d57","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.3343122} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.983177,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"171ea590-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f","object_type":"device","rebac_allow":false,"scope_allow":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":"171ea590-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"171ea590-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling 200 10ms","method":"POST","requestID":"171ea590-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/2d5f3813-96bb-43e8-922b-2203c2a8020f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"17207a50-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d37504d-2fff-452b-a342-821ec7c13c32': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3d37504d-2fff-452b-a342-821ec7c13c32","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"eeb1b140-ef57-4e04-99af-1a95c77ad624","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.342808} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"137fcc7f-68f3-4cbe-bebb-509671e0740a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.3429196} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"2ac918d756b42306ad477d97a2a615b9","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb2c5c961-54a5-4e15-9b4a-0743eaf055db","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7e9e52c0-e263-4f65-986e-712906d7e116","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.345504} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.849565,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"17207a50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db","object_type":"device","rebac_allow":false,"scope_allow":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":"17207a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"17207a50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling 200 33ms","method":"POST","requestID":"17207a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3d37504d-2fff-452b-a342-821ec7c13c32","requestID":"2ac918d756b42306ad477d97a2a615b9"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3d37504d-2fff-452b-a342-821ec7c13c32 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.253","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2ac918d756b42306ad477d97a2a615b9"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2548","request_time":"3.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"1d34bc49749e766ad264196152eeb04e"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2548","request_time":"3.076","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"300c86b9e54e948042d81af9e298a7cd"} experiment-1 | {"level":"info","message":"DELETE /experiments/3d37504d-2fff-452b-a342-821ec7c13c32 204 252ms","method":"DELETE","requestID":"2ac918d756b42306ad477d97a2a615b9","responseTime":252,"status":204,"url":"/experiments/3d37504d-2fff-452b-a342-821ec7c13c32"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 203ms","method":"POST","requestID":"a1cb93aa0fcf4e3654c88ff8eb193265","responseTime":203,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.231","http_referrer":"","http_user_agent":"node-fetch","requestID":"a1cb93aa0fcf4e3654c88ff8eb193265"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b2c5c961-54a5-4e15-9b4a-0743eaf055db' closed"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 227ms","method":"POST","requestID":"9378ebd16213a1ca20048e5e4bb47ff5","responseTime":227,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.232","http_referrer":"","http_user_agent":"node-fetch","requestID":"9378ebd16213a1ca20048e5e4bb47ff5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"2d3229363241cfcd800127cf3c9b4732"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"2d3229363241cfcd800127cf3c9b4732","responseTime":28,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2d3229363241cfcd800127cf3c9b4732"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.902365,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2d3229363241cfcd800127cf3c9b4732","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2d3229363241cfcd800127cf3c9b4732","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/2d5f3813-96bb-43e8-922b-2203c2a8020f' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff883808b-c211-4b24-bd1a-c8b4f2164429","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"21de0900-bfc3-4455-8aaf-6d23a241fc7e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.5136948} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"2d3229363241cfcd800127cf3c9b4732","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9bc5febd-cd04-45ff-aeb4-ecd365fa4fe2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.5196986} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"2d3229363241cfcd800127cf3c9b4732","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff883808b-c211-4b24-bd1a-c8b4f2164429","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"14f85c57-d857-4339-8e5e-853e8ef204be","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.5293086} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"56b9413f-1671-4600-a99e-d5917ba8a8f9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.5295916} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"2d3229363241cfcd800127cf3c9b4732","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff883808b-c211-4b24-bd1a-c8b4f2164429","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff883808b-c211-4b24-bd1a-c8b4f2164429","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:36.529290615Z"}]},"request_id":"3039fed3-7789-4b97-851c-ad127c895f19","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.5352573} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"2d3229363241cfcd800127cf3c9b4732","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2d3229363241cfcd800127cf3c9b4732"} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"2d3229363241cfcd800127cf3c9b4732","responseTime":93,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.125","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d3229363241cfcd800127cf3c9b4732"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"51997b6ef5e7e9394321d4bf082fcaaa"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"51997b6ef5e7e9394321d4bf082fcaaa","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"51997b6ef5e7e9394321d4bf082fcaaa"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.863326,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"51997b6ef5e7e9394321d4bf082fcaaa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"51997b6ef5e7e9394321d4bf082fcaaa","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdffe7204-e506-4bd3-862f-85ab7ec5ac81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"262f15c2-c14b-436f-8015-7e97c1cb1759","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.6238904} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"51997b6ef5e7e9394321d4bf082fcaaa","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c1f81594-3302-42a6-a270-3fb3869a0aae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.629986} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"51997b6ef5e7e9394321d4bf082fcaaa","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdffe7204-e506-4bd3-862f-85ab7ec5ac81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"176352eb-6412-4a83-b4c6-8a2e21218a52","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.6659176} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ea642f8-165d-4fe9-990a-490fbe7869e2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.6661794} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"51997b6ef5e7e9394321d4bf082fcaaa","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdffe7204-e506-4bd3-862f-85ab7ec5ac81","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdffe7204-e506-4bd3-862f-85ab7ec5ac81","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:36.665901415Z"}]},"request_id":"368c65b6-27a0-4a5a-947c-269c0a6dbd98","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.6704056} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"51997b6ef5e7e9394321d4bf082fcaaa","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"51997b6ef5e7e9394321d4bf082fcaaa"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.108","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"51997b6ef5e7e9394321d4bf082fcaaa"} device-1 | {"level":"info","message":"POST /devices? 201 104ms","method":"POST","requestID":"51997b6ef5e7e9394321d4bf082fcaaa","responseTime":104,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"4ef62208f26c6a86472e327c5c571545"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4ef62208f26c6a86472e327c5c571545","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4ef62208f26c6a86472e327c5c571545"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.816064,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4ef62208f26c6a86472e327c5c571545","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4ef62208f26c6a86472e327c5c571545","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffd08b9f6-1a1a-4869-884c-77de1dbc558b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dab55aa3-e750-4c7f-a3aa-41bf3be9a4e9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.7161489} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4ef62208f26c6a86472e327c5c571545","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b8f4a209-b8ac-4347-a9a1-2388bf6000c7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.720596} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"4ef62208f26c6a86472e327c5c571545","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40e19497-c263-4616-8fb3-3fa10af1218c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.7289987} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffd08b9f6-1a1a-4869-884c-77de1dbc558b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"b90d4476-de93-4f1c-bc8f-fac12a3d309b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.7532196} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"4ef62208f26c6a86472e327c5c571545","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffd08b9f6-1a1a-4869-884c-77de1dbc558b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffd08b9f6-1a1a-4869-884c-77de1dbc558b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:36.753196772Z"}]},"request_id":"910b0de7-01b0-4c94-91ce-ed46bb0ecc72","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.760065} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4ef62208f26c6a86472e327c5c571545","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4ef62208f26c6a86472e327c5c571545"} device-1 | {"level":"info","message":"POST /devices? 201 84ms","method":"POST","requestID":"4ef62208f26c6a86472e327c5c571545","responseTime":84,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4ef62208f26c6a86472e327c5c571545"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.740064,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d1c0c62-70b4-4d0d-bb92-672d91d260af","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b8be795c-d6c8-4ca1-b610-3306016fcc64","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.805095} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32851ff0-fea3-4a0c-b80a-bec1ad8490bd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.8103554} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d1c0c62-70b4-4d0d-bb92-672d91d260af","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"e9c5a6ce-9c59-4d81-9a2d-043660419e59","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.822191} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a2dd0d9a-6342-49dd-9453-9421632c5d29","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.822392} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d1c0c62-70b4-4d0d-bb92-672d91d260af","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7d1c0c62-70b4-4d0d-bb92-672d91d260af","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:36.822178652Z"}]},"request_id":"f66e5fb3-02ea-41b8-85c8-458ab36619e7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.8520868} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +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":"48ad23b53e701a4d0c7d9b1fbbd9a129"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"48ad23b53e701a4d0c7d9b1fbbd9a129","responseTime":86,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"571701d1fb9b4e36bf393972cd8f15a4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"571701d1fb9b4e36bf393972cd8f15a4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"571701d1fb9b4e36bf393972cd8f15a4"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.650143,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"571701d1fb9b4e36bf393972cd8f15a4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"571701d1fb9b4e36bf393972cd8f15a4","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d2c73ae-fb5f-4894-a756-dff231e24c9b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2e6bdef7-9f41-4a54-84e3-73d3f1c6727e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.8738036} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"571701d1fb9b4e36bf393972cd8f15a4","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a85403d8-c46f-43a6-9461-4a062da92504","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.8985403} authorization-1 | {"level":"info","message":"POST /relations/update 200 23ms","method":"POST","requestID":"571701d1fb9b4e36bf393972cd8f15a4","responseTime":23,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d2c73ae-fb5f-4894-a756-dff231e24c9b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"80a5d10b-39fa-4139-b36f-cbf3d2217087","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.9079025} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7eeed8bf-c665-4a9f-bda8-4ef97251d02e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.9081883} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"571701d1fb9b4e36bf393972cd8f15a4","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d2c73ae-fb5f-4894-a756-dff231e24c9b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d2c73ae-fb5f-4894-a756-dff231e24c9b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:36.907884980Z"}]},"request_id":"577f814e-cf46-413a-81a5-d4dbc189449f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.9122715} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"571701d1fb9b4e36bf393972cd8f15a4","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"571701d1fb9b4e36bf393972cd8f15a4"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"571701d1fb9b4e36bf393972cd8f15a4","responseTime":55,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:12:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"571701d1fb9b4e36bf393972cd8f15a4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE","level":"info","message":"auth send jwt","requestID":"0fdb898e094e76051fb99c79aafa1230"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0fdb898e094e76051fb99c79aafa1230","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"0fdb898e094e76051fb99c79aafa1230"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.733683,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0fdb898e094e76051fb99c79aafa1230","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634356,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1Nn0.Gc3ej99E9EPTR2TWPUcfBlSbMrWT17qAUEckUHRE5aE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"0fdb898e094e76051fb99c79aafa1230","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b4cebe0-c244-4eae-8f67-56aa36c00df5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2c3ccf62-1faa-473a-9f67-605e7c8d9c94","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.9572003} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0fdb898e094e76051fb99c79aafa1230","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"55bc897a-6936-43de-8624-3ea1d4481940","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.9625964} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"0fdb898e094e76051fb99c79aafa1230","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b4cebe0-c244-4eae-8f67-56aa36c00df5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"f8b0c326-a932-4e98-8d4b-f7bec2e30479","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.9718657} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67a23819-5778-4505-8573-170184cbb1e3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634356.9719903} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"0fdb898e094e76051fb99c79aafa1230","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b4cebe0-c244-4eae-8f67-56aa36c00df5","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6b4cebe0-c244-4eae-8f67-56aa36c00df5","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:36.971846585Z"}]},"request_id":"7c503579-eacf-407a-983c-2c2e9896305e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.0006938} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0fdb898e094e76051fb99c79aafa1230","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0fdb898e094e76051fb99c79aafa1230"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0fdb898e094e76051fb99c79aafa1230"} device-1 | {"level":"info","message":"POST /devices? 201 84ms","method":"POST","requestID":"0fdb898e094e76051fb99c79aafa1230","responseTime":84,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.766917,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a375452-a13d-4a0c-9194-cbd6085fbb35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e7f81278-af80-4a7f-9f72-1345564a354c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.0607648} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2053a542-3201-4653-bdde-e157c7ff926e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.0889533} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a375452-a13d-4a0c-9194-cbd6085fbb35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"9b39e271-5b77-4165-ba44-2f9ae5cb7299","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.0993826} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d9b7ee3-a713-456f-af3f-1df61079b68c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.09969} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a375452-a13d-4a0c-9194-cbd6085fbb35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9a375452-a13d-4a0c-9194-cbd6085fbb35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.099362031Z"}]},"request_id":"0cc1b524-148c-4c63-a298-5c55029b4965","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.103549} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.101","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc"} device-1 | {"level":"info","message":"POST /devices? 201 97ms","method":"POST","requestID":"c5b62bfd851ee8c2cac861b70d3d49fc","responseTime":97,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"32f313ddfdee6948a467df41290ca219"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"32f313ddfdee6948a467df41290ca219","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"32f313ddfdee6948a467df41290ca219"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.742289,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"32f313ddfdee6948a467df41290ca219","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"32f313ddfdee6948a467df41290ca219","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F399eb02f-4228-4915-a171-d7337f11971b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"90722c13-f626-4f66-a602-89012a5006d1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.1486065} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"32f313ddfdee6948a467df41290ca219","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e524b86-15ad-4429-bf78-ba4c3f1e6d33","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.1526244} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"32f313ddfdee6948a467df41290ca219","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F399eb02f-4228-4915-a171-d7337f11971b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"7273127d-394b-492c-8160-6ee13634da85","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.1864574} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79e56beb-49bd-461f-b4bb-f3ecda46fd07","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.1865265} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"32f313ddfdee6948a467df41290ca219","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F399eb02f-4228-4915-a171-d7337f11971b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F399eb02f-4228-4915-a171-d7337f11971b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.186443606Z"}]},"request_id":"cd2661bb-ff1d-43ee-a9a3-24a84eefa755","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.1906433} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"32f313ddfdee6948a467df41290ca219","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"32f313ddfdee6948a467df41290ca219"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.086","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"32f313ddfdee6948a467df41290ca219"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"32f313ddfdee6948a467df41290ca219","responseTime":82,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"68340722dd230a266143048df27af9b0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"68340722dd230a266143048df27af9b0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"68340722dd230a266143048df27af9b0"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.660803,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"68340722dd230a266143048df27af9b0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"68340722dd230a266143048df27af9b0","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27adea0e-b75a-4387-987d-a6799b3e1250","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c30bee5a-f031-4e6c-9900-1c837fbb35fa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.2333446} authorization-1 | {"level":"info","message":"POST /relations/query 200 23ms","method":"POST","requestID":"68340722dd230a266143048df27af9b0","responseTime":23,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6bc22f71-3ac8-4e14-a320-9c66c1577cc8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.2376623} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"68340722dd230a266143048df27af9b0","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27adea0e-b75a-4387-987d-a6799b3e1250","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"a6f31d20-449f-4b3e-b43e-2477bd7d74d5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.24781} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20319e59-2c2d-4a69-babb-89eb0e86c50c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.2481349} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"68340722dd230a266143048df27af9b0","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27adea0e-b75a-4387-987d-a6799b3e1250","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27adea0e-b75a-4387-987d-a6799b3e1250","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.247795711Z"}]},"request_id":"6eeffd2c-8de9-49ef-a62e-462dea0cc2e8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.251907} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"68340722dd230a266143048df27af9b0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"68340722dd230a266143048df27af9b0"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"68340722dd230a266143048df27af9b0"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"68340722dd230a266143048df27af9b0","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"6330c275748ea61a62da783d36ac5a69"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"6330c275748ea61a62da783d36ac5a69","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"6330c275748ea61a62da783d36ac5a69"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.7923,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6330c275748ea61a62da783d36ac5a69","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6330c275748ea61a62da783d36ac5a69","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8cb98d8-a2dd-4ec6-931a-d2fa853f04b4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a8107018-5ab7-467d-9cbc-07255d2c080b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.2955246} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6330c275748ea61a62da783d36ac5a69","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4518132c-8cdb-44c0-ad3c-aad293ac3f5c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.2995236} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"6330c275748ea61a62da783d36ac5a69","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8cb98d8-a2dd-4ec6-931a-d2fa853f04b4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"374d8d81-f2a4-4b31-8e2a-a686e60c278d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.3357446} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8f368070-166a-4183-8aff-e72c44f99d12","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.3360124} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"6330c275748ea61a62da783d36ac5a69","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8cb98d8-a2dd-4ec6-931a-d2fa853f04b4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb8cb98d8-a2dd-4ec6-931a-d2fa853f04b4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.335725557Z"}]},"request_id":"b3d9d265-8dae-470f-bbca-b885b92101a1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.3400514} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6330c275748ea61a62da783d36ac5a69","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6330c275748ea61a62da783d36ac5a69"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6330c275748ea61a62da783d36ac5a69"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"6330c275748ea61a62da783d36ac5a69","responseTime":60,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"01354c4efcb1b0b44f91cda79f36c8f1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"01354c4efcb1b0b44f91cda79f36c8f1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"01354c4efcb1b0b44f91cda79f36c8f1"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.66935,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"01354c4efcb1b0b44f91cda79f36c8f1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"01354c4efcb1b0b44f91cda79f36c8f1","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"577b1c6d-cc7f-4406-9602-fa786f7933b9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.3855171} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"01354c4efcb1b0b44f91cda79f36c8f1","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db237f2d-9327-422c-a8fb-7519a92dfa43","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.3906527} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"01354c4efcb1b0b44f91cda79f36c8f1","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"cf11bae9-083e-411e-b53e-52b62ba29093","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.4018307} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"97db6f4e-350f-456c-98e0-3202dca6ae25","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.4020975} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"01354c4efcb1b0b44f91cda79f36c8f1","responseTime":14,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"01354c4efcb1b0b44f91cda79f36c8f1"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.401812790Z"}]},"request_id":"ca2bd7c2-3888-4829-8336-1aa8b6ebb639","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.4266362} authorization-1 | {"level":"info","message":"POST /relations/query 200 23ms","method":"POST","requestID":"01354c4efcb1b0b44f91cda79f36c8f1","responseTime":23,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.085","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"01354c4efcb1b0b44f91cda79f36c8f1"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"01354c4efcb1b0b44f91cda79f36c8f1","responseTime":82,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"71fca0c213521e1310d41388a6d1318b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"71fca0c213521e1310d41388a6d1318b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"71fca0c213521e1310d41388a6d1318b"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.43552,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"71fca0c213521e1310d41388a6d1318b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"71fca0c213521e1310d41388a6d1318b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"82d1fbeb-929b-4453-b262-76b1f03904d5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.4736638} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"71fca0c213521e1310d41388a6d1318b","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1d7b6c4-1619-40b7-8632-f8bf8704cee0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.478017} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"71fca0c213521e1310d41388a6d1318b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"0d4cd90b-a220-45a9-9bf9-aa95d668c52a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.4878407} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc120f0f-5927-43d9-bd04-366635594ce4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.4880865} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"71fca0c213521e1310d41388a6d1318b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.487820471Z"}]},"request_id":"4a68704b-4f21-4294-a111-e24b30f7e57b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.4919062} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"71fca0c213521e1310d41388a6d1318b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"71fca0c213521e1310d41388a6d1318b"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"71fca0c213521e1310d41388a6d1318b"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"71fca0c213521e1310d41388a6d1318b","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"2b284960bf597a56fd48f08a3b53f921"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2b284960bf597a56fd48f08a3b53f921","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2b284960bf597a56fd48f08a3b53f921"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.655615,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2b284960bf597a56fd48f08a3b53f921","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2b284960bf597a56fd48f08a3b53f921","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2e9631e6-ff03-4a1b-a823-a074ad2a1cec","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.5392396} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2b284960bf597a56fd48f08a3b53f921","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"97712061-de2d-4e77-a097-0fa24c56cd70","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.543646} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"2b284960bf597a56fd48f08a3b53f921","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"b3d3c69c-c9d8-4b5f-8f1b-6ae1605009cc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.578033} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bb60d024-ddf5-4028-88a2-d4f5de171d69","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.5786803} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"2b284960bf597a56fd48f08a3b53f921","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.578014225Z"}]},"request_id":"3c0249ef-212e-459f-89e7-97586d96e656","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.583019} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2b284960bf597a56fd48f08a3b53f921","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2b284960bf597a56fd48f08a3b53f921"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"2b284960bf597a56fd48f08a3b53f921","responseTime":60,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.090","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2b284960bf597a56fd48f08a3b53f921"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"6a1795d400cf6bfd7d70c7129459ed8d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6a1795d400cf6bfd7d70c7129459ed8d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6a1795d400cf6bfd7d70c7129459ed8d"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.827832,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6a1795d400cf6bfd7d70c7129459ed8d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6a1795d400cf6bfd7d70c7129459ed8d","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.401812790Z"}]},"request_id":"212ff1cd-adfc-4311-819a-c974c1e6aa71","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.6257188} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6a1795d400cf6bfd7d70c7129459ed8d","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab1ebc3c-21fd-4610-b6d2-bce681d426df","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.630645} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6a1795d400cf6bfd7d70c7129459ed8d","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.401812790Z"}]},"request_id":"987aa5f5-0423-421a-afd4-fced4c97492c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.674931} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6a1795d400cf6bfd7d70c7129459ed8d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6a1795d400cf6bfd7d70c7129459ed8d"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.089","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6a1795d400cf6bfd7d70c7129459ed8d"} device-1 | {"level":"info","message":"PATCH /devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc? 200 85ms","method":"PATCH","requestID":"6a1795d400cf6bfd7d70c7129459ed8d","responseTime":85,"status":200,"url":"/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.700036,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.487820471Z"}]},"request_id":"51a15375-7f9c-42eb-818c-f0f3b573378d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.6923757} authorization-1 | {"level":"info","message":"POST /relations/query 200 23ms","method":"POST","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e","responseTime":23,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6be23e8f-d849-4b74-af21-007a69306b70","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.7194767} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.487820471Z"}]},"request_id":"184910aa-4776-4d66-b872-aa84ce51a20c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.7278407} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/49d636e4-456e-4b5b-8352-b6aa7a46b680? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e"} device-1 | {"level":"info","message":"PATCH /devices/49d636e4-456e-4b5b-8352-b6aa7a46b680? 200 48ms","method":"PATCH","requestID":"44e12ce6a3465bb84dbb5e9f9e69d89e","responseTime":48,"status":200,"url":"/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"d3a4561830cad3656564fca1b256d703"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d3a4561830cad3656564fca1b256d703","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d3a4561830cad3656564fca1b256d703"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":21.068095,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/edb10932-de06-4b22-be1d-da7e01a52c9b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d3a4561830cad3656564fca1b256d703","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/edb10932-de06-4b22-be1d-da7e01a52c9b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"d3a4561830cad3656564fca1b256d703","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.578014225Z"}]},"request_id":"326f0494-d8c1-4f36-9afd-fcf6fd203a80","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.7673676} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d3a4561830cad3656564fca1b256d703","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e2c1ebb8-7ea6-4e51-820b-36ba1e5f5073","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.7725952} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"d3a4561830cad3656564fca1b256d703","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.578014225Z"}]},"request_id":"59dd467c-a259-4511-a657-3b3b491b7370","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.7808795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d3a4561830cad3656564fca1b256d703","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d3a4561830cad3656564fca1b256d703"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/edb10932-de06-4b22-be1d-da7e01a52c9b? 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":"d3a4561830cad3656564fca1b256d703"} device-1 | {"level":"info","message":"PATCH /devices/edb10932-de06-4b22-be1d-da7e01a52c9b? 200 73ms","method":"PATCH","requestID":"d3a4561830cad3656564fca1b256d703","responseTime":73,"status":200,"url":"/devices/edb10932-de06-4b22-be1d-da7e01a52c9b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"d1beb49098b1e93bef3f91fd6183c4d7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d1beb49098b1e93bef3f91fd6183c4d7"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.756075,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d1beb49098b1e93bef3f91fd6183c4d7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c62bb6e-5645-4ec7-a35d-86f6e32925fc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.401812790Z"}]},"request_id":"2542f6ee-bd24-4533-afd7-4f7d80b7458d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.8216848} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.611923,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.912337,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f883808b-c211-4b24-bd1a-c8b4f2164429","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d1beb49098b1e93bef3f91fd6183c4d7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f883808b-c211-4b24-bd1a-c8b4f2164429","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dffe7204-e506-4bd3-862f-85ab7ec5ac81","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d1beb49098b1e93bef3f91fd6183c4d7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dffe7204-e506-4bd3-862f-85ab7ec5ac81","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.867277,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d1beb49098b1e93bef3f91fd6183c4d7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.878378,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fd08b9f6-1a1a-4869-884c-77de1dbc558b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d1beb49098b1e93bef3f91fd6183c4d7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fd08b9f6-1a1a-4869-884c-77de1dbc558b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","responseTime":32,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d1beb49098b1e93bef3f91fd6183c4d7"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc? 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":"d1beb49098b1e93bef3f91fd6183c4d7"} device-1 | {"level":"info","message":"GET /devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc? 200 47ms","method":"GET","requestID":"d1beb49098b1e93bef3f91fd6183c4d7","responseTime":47,"status":200,"url":"/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"dd9eed572ccb4d4c4413723f7816d416"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"dd9eed572ccb4d4c4413723f7816d416"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.728233,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dd9eed572ccb4d4c4413723f7816d416","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F49d636e4-456e-4b5b-8352-b6aa7a46b680","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.487820471Z"}]},"request_id":"43855a60-7f36-42d1-b6d9-fa14b3dcfbf6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.87357} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.635335,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.900797,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682056,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7d1c0c62-70b4-4d0d-bb92-672d91d260af","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dd9eed572ccb4d4c4413723f7816d416","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7d1c0c62-70b4-4d0d-bb92-672d91d260af","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":32,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d2c73ae-fb5f-4894-a756-dff231e24c9b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dd9eed572ccb4d4c4413723f7816d416","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5d2c73ae-fb5f-4894-a756-dff231e24c9b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":32,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6b4cebe0-c244-4eae-8f67-56aa36c00df5","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dd9eed572ccb4d4c4413723f7816d416","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6b4cebe0-c244-4eae-8f67-56aa36c00df5","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 33ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":33,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68589,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dd9eed572ccb4d4c4413723f7816d416","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.185339,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37152","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/edb10932-de06-4b22-be1d-da7e01a52c9b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dd9eed572ccb4d4c4413723f7816d416","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/edb10932-de06-4b22-be1d-da7e01a52c9b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37152","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.318128,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9a375452-a13d-4a0c-9194-cbd6085fbb35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dd9eed572ccb4d4c4413723f7816d416","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9a375452-a13d-4a0c-9194-cbd6085fbb35","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 18ms","method":"POST","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":18,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"dd9eed572ccb4d4c4413723f7816d416"} device-1 | {"level":"info","message":"GET /devices/49d636e4-456e-4b5b-8352-b6aa7a46b680? 200 59ms","method":"GET","requestID":"dd9eed572ccb4d4c4413723f7816d416","responseTime":59,"status":200,"url":"/devices/49d636e4-456e-4b5b-8352-b6aa7a46b680?"} gateway-1 | {"time_local":"07/May/2025:16:12:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/49d636e4-456e-4b5b-8352-b6aa7a46b680? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd9eed572ccb4d4c4413723f7816d416"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc","level":"info","message":"auth send jwt","requestID":"19c58f25c18b86816be66e169787aae6"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"19c58f25c18b86816be66e169787aae6","responseTime":28,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19c58f25c18b86816be66e169787aae6"} authorization-1 | {"client_addr":"127.0.0.1:37152","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37152","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655177,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/edb10932-de06-4b22-be1d-da7e01a52c9b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19c58f25c18b86816be66e169787aae6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/edb10932-de06-4b22-be1d-da7e01a52c9b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"19c58f25c18b86816be66e169787aae6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fedb10932-de06-4b22-be1d-da7e01a52c9b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:37.578014225Z"}]},"request_id":"f038beef-6bd5-42e6-973e-92447a5c1c39","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634357.9662516} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"19c58f25c18b86816be66e169787aae6","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37152","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37152","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650937,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54172","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.576263,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.47123,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/399eb02f-4228-4915-a171-d7337f11971b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19c58f25c18b86816be66e169787aae6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/399eb02f-4228-4915-a171-d7337f11971b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"19c58f25c18b86816be66e169787aae6","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27adea0e-b75a-4387-987d-a6799b3e1250","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19c58f25c18b86816be66e169787aae6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/27adea0e-b75a-4387-987d-a6799b3e1250","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"19c58f25c18b86816be66e169787aae6","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b8cb98d8-a2dd-4ec6-931a-d2fa853f04b4","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19c58f25c18b86816be66e169787aae6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/b8cb98d8-a2dd-4ec6-931a-d2fa853f04b4","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"19c58f25c18b86816be66e169787aae6","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685992,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19c58f25c18b86816be66e169787aae6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7c62bb6e-5645-4ec7-a35d-86f6e32925fc","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634357,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1N30.Kxfy84P36q7JyENqpyOK5Clx5TU0FJDx-6vJ52psPyc"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"19c58f25c18b86816be66e169787aae6","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19c58f25c18b86816be66e169787aae6"} gateway-1 | {"time_local":"07/May/2025:16:12:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/edb10932-de06-4b22-be1d-da7e01a52c9b? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.078","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"19c58f25c18b86816be66e169787aae6"} device-1 | {"level":"info","message":"GET /devices/edb10932-de06-4b22-be1d-da7e01a52c9b? 200 48ms","method":"GET","requestID":"19c58f25c18b86816be66e169787aae6","responseTime":48,"status":200,"url":"/devices/edb10932-de06-4b22-be1d-da7e01a52c9b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1OH0.wqmyCm_0bv2KgPxL5umsOGaZElABNlyjDijAuidrDrI","level":"info","message":"auth send jwt","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:38Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.681483,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634358,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1OH0.wqmyCm_0bv2KgPxL5umsOGaZElABNlyjDijAuidrDrI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"836884f9-562a-42d1-831b-ae2882028461","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.0617933} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0ad5944-82a6-4a9a-b173-413dd4714621","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.0663507} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"e1f3d1b2-daa8-4335-a29c-2a09f5e7d901","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.1039584} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ffc72cdd-528e-46da-acb3-bf77daabb5f3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.104186} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.103939204Z"}]},"request_id":"41e8081d-8f75-4a01-b3f7-c859f344caab","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.1084511} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c"} gateway-1 | {"time_local":"07/May/2025:16:12:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.104","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c"} device-1 | {"level":"info","message":"POST /devices? 201 100ms","method":"POST","requestID":"3afb0d7497228ba8c5d24e0dd8fe8d0c","responseTime":100,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1OH0.wqmyCm_0bv2KgPxL5umsOGaZElABNlyjDijAuidrDrI","level":"info","message":"auth send jwt","requestID":"04064f833032a82a7046f595ef38e2d1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"04064f833032a82a7046f595ef38e2d1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"04064f833032a82a7046f595ef38e2d1"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:38Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.959027,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"04064f833032a82a7046f595ef38e2d1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634358,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1OH0.wqmyCm_0bv2KgPxL5umsOGaZElABNlyjDijAuidrDrI"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"04064f833032a82a7046f595ef38e2d1","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85f19f9b-0366-481b-808d-7a2f6f96c83e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ff5763a4-310b-4da4-9d23-e6299c6de867","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.156232} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"04064f833032a82a7046f595ef38e2d1","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5778bdd1-4a38-43a5-a282-dba4c9b1cc7b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.1609995} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"04064f833032a82a7046f595ef38e2d1","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85f19f9b-0366-481b-808d-7a2f6f96c83e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"ddda5fcd-ec89-43e2-8712-a36ec9adc71c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.1685426} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0d208e4-3690-4623-a483-4c4e29fd585c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.1710768} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"04064f833032a82a7046f595ef38e2d1","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85f19f9b-0366-481b-808d-7a2f6f96c83e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85f19f9b-0366-481b-808d-7a2f6f96c83e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.168526112Z"}]},"request_id":"aa59a405-f19a-4124-8bdf-5c5f28e18704","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.1967645} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"04064f833032a82a7046f595ef38e2d1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"04064f833032a82a7046f595ef38e2d1"} gateway-1 | {"time_local":"07/May/2025:16:12:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.086","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"04064f833032a82a7046f595ef38e2d1"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"04064f833032a82a7046f595ef38e2d1","responseTime":82,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1OH0.wqmyCm_0bv2KgPxL5umsOGaZElABNlyjDijAuidrDrI","level":"info","message":"auth send jwt","requestID":"4c8695f7ed444224fe44e861764437c3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4c8695f7ed444224fe44e861764437c3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4c8695f7ed444224fe44e861764437c3"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:38Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.628754,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4c8695f7ed444224fe44e861764437c3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634358,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM1OH0.wqmyCm_0bv2KgPxL5umsOGaZElABNlyjDijAuidrDrI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4c8695f7ed444224fe44e861764437c3","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"587b3a91-1e69-4111-af2c-252a79bdead4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.2171774} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4c8695f7ed444224fe44e861764437c3","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"463f455c-7c35-4a07-889f-62ab84093d0b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.241684} authorization-1 | {"level":"info","message":"POST /relations/update 200 24ms","method":"POST","requestID":"4c8695f7ed444224fe44e861764437c3","responseTime":24,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"3ae4581d-6654-4b0d-bdf7-257be37d08f5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.2527823} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aad82c9f-f572-4240-a014-76a00d75cefc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.2528446} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"4c8695f7ed444224fe44e861764437c3","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.252740354Z"}]},"request_id":"eaad637e-64fe-4b28-a8bd-8604f99d4798","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634358.257107} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4c8695f7ed444224fe44e861764437c3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4c8695f7ed444224fe44e861764437c3"} gateway-1 | {"time_local":"07/May/2025:16:12:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c8695f7ed444224fe44e861764437c3"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"4c8695f7ed444224fe44e861764437c3","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9054003bccfda781bb8aff1692ec1b96","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9054003bccfda781bb8aff1692ec1b96","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/websocket 200 1ms","method":"OPTIONS","requestID":"9054003bccfda781bb8aff1692ec1b96","responseTime":1,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88/websocket"} gateway-1 | {"time_local":"07/May/2025:16:12:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/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":"9054003bccfda781bb8aff1692ec1b96"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs","level":"info","message":"auth send jwt","requestID":"2a9544ac091fcc0eae53b3130c309f6c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2a9544ac091fcc0eae53b3130c309f6c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"2a9544ac091fcc0eae53b3130c309f6c"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.643698,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2a9544ac091fcc0eae53b3130c309f6c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2a9544ac091fcc0eae53b3130c309f6c","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"2a9544ac091fcc0eae53b3130c309f6c"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f00b598ff5dee14955629debb8b2fb1a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f00b598ff5dee14955629debb8b2fb1a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.050","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2a9544ac091fcc0eae53b3130c309f6c"} device-1 | {"level":"info","message":"POST /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/websocket 200 46ms","method":"POST","requestID":"2a9544ac091fcc0eae53b3130c309f6c","responseTime":46,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88/websocket"} gateway-1 | {"time_local":"07/May/2025:16:12:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/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":"f00b598ff5dee14955629debb8b2fb1a"} device-1 | {"level":"info","message":"OPTIONS /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/websocket 200 0ms","method":"OPTIONS","requestID":"f00b598ff5dee14955629debb8b2fb1a","responseTime":0,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs","level":"info","message":"auth send jwt","requestID":"8eefe3f57db631ea4bf2cb87aa2ad76e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8eefe3f57db631ea4bf2cb87aa2ad76e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8eefe3f57db631ea4bf2cb87aa2ad76e"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692369,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8eefe3f57db631ea4bf2cb87aa2ad76e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8eefe3f57db631ea4bf2cb87aa2ad76e","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8eefe3f57db631ea4bf2cb87aa2ad76e"} device-1 | {"level":"info","message":"POST /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/websocket 200 47ms","method":"POST","requestID":"8eefe3f57db631ea4bf2cb87aa2ad76e","responseTime":47,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/websocket"} gateway-1 | {"time_local":"07/May/2025:16:12:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/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":"8eefe3f57db631ea4bf2cb87aa2ad76e"} device-1 | {"level":"info","message":"device 'http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs","level":"info","message":"auth send jwt","requestID":"525eb2d5d51549e5e48eb31fb1e3a950"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"525eb2d5d51549e5e48eb31fb1e3a950","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"525eb2d5d51549e5e48eb31fb1e3a950"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.731114,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"525eb2d5d51549e5e48eb31fb1e3a950","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"525eb2d5d51549e5e48eb31fb1e3a950","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.252740354Z"}]},"request_id":"9c2d3f2c-4420-423e-b8d2-d05b636b518e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634360.805225} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"525eb2d5d51549e5e48eb31fb1e3a950","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"525eb2d5d51549e5e48eb31fb1e3a950"} gateway-1 | {"time_local":"07/May/2025:16:12:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac? 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":"525eb2d5d51549e5e48eb31fb1e3a950"} device-1 | {"level":"info","message":"GET /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac? 200 10ms","method":"GET","requestID":"525eb2d5d51549e5e48eb31fb1e3a950","responseTime":10,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs","level":"info","message":"auth send jwt","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6d7c2bdf04487f678453d6e0a6d83688","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.707904,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6d7c2bdf04487f678453d6e0a6d83688","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6d7c2bdf04487f678453d6e0a6d83688","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Attempting to run experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Attempting to book experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully booked experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19d84750-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671118,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/85f19f9b-0366-481b-808d-7a2f6f96c83e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/85f19f9b-0366-481b-808d-7a2f6f96c83e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.745354,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19d84750-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"19d84750-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85f19f9b-0366-481b-808d-7a2f6f96c83e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F85f19f9b-0366-481b-808d-7a2f6f96c83e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.168526112Z"}]},"request_id":"2dbe91a7-fe4b-4b68-88f6-c22e098d72ac","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634360.9323256} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.252740354Z"}]},"request_id":"696da1f9-6321-4cc1-9d41-4782f5dd00fb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634360.9331846} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"19d84750-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19d84750-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac? 200 37ms","method":"GET","requestID":"19d84750-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac?"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650435,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/85f19f9b-0366-481b-808d-7a2f6f96c83e? 200 42ms","method":"GET","requestID":"19d82040-2b5e-11f0-8e1f-5304d0938eae","responseTime":42,"status":200,"url":"/devices/85f19f9b-0366-481b-808d-7a2f6f96c83e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Setting up experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully locked booking for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Attempting to update booking for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully updated booking for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully set up experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19ec4480-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19ec92a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19ecb9b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.958352,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully running experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19ec4480-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"19ec4480-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.616989,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19ec92a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"19ec92a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53667b5a-8d7f-47d8-bec8-acd2d8e2ba2e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.0425065} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.138317,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19ecb9b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","rebac_allow":false,"scope_allow":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":"19ecb9b0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.103939204Z"}]},"request_id":"9d43b2e9-6952-4800-a982-d43f7c8ca5bb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.044914} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"19ec4480-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.252740354Z"}]},"request_id":"03548d1a-72f8-44c7-9de5-f1cca9e0b574","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.0475235} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19ecb9b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling 200 37ms","method":"POST","requestID":"19ecb9b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"19ec92a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2290cb39-ed91-4149-b859-465250612c7d#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2290cb39-ed91-4149-b859-465250612c7d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d00c5e68-472c-4027-93fb-87d5444d6b63","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.0784671} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19f34960-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aa86c777-89c4-476b-b931-84713b45b857","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.0786855} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19ec4480-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"6d7c2bdf04487f678453d6e0a6d83688","responseTime":41,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"GET /devices/a4400f97-396f-49ab-9721-c4cbd19efd88? 200 49ms","method":"GET","requestID":"19ec4480-2b5e-11f0-8e1f-5304d0938eae","responseTime":49,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19ec92a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac? 200 48ms","method":"GET","requestID":"19ec92a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":48,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac?"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2fc2c5df-c095-456f-a9c5-50152b10d9ab","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.0841234} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.587762,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19f34960-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","rebac_allow":false,"scope_allow":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":"19f34960-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19f4d000-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19f34960-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} device-1 | {"level":"info","message":"POST /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling 200 14ms","method":"POST","requestID":"19f34960-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.259","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"level":"info","message":"POST /experiments? 201 255ms","method":"POST","requestID":"6d7c2bdf04487f678453d6e0a6d83688","responseTime":255,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c7a0d604-c5d4-449f-9be2-e33ef33eb355","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.094114} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.196286,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"60f17c13df92a26f67507e2f42b8aa0d"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19f4d000-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","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.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y","level":"info","message":"auth send jwt","requestID":"60f17c13df92a26f67507e2f42b8aa0d"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"60f17c13df92a26f67507e2f42b8aa0d","responseTime":27,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"19f4d000-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19f4d000-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling 200 38ms","method":"POST","requestID":"19f4d000-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.021332,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"60f17c13df92a26f67507e2f42b8aa0d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634361,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"60f17c13df92a26f67507e2f42b8aa0d","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19fb38a0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8eeddc05-32e8-4987-93d8-d2cd3d41e109","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.1341298} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.103939204Z"}]},"request_id":"fdfb0f57-ee4d-4f4c-9fb5-6449e43c845d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.1348715} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"60f17c13df92a26f67507e2f42b8aa0d","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.988757,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"19fb38a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","rebac_allow":false,"scope_allow":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":"19fb38a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"60f17c13df92a26f67507e2f42b8aa0d"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a4400f97-396f-49ab-9721-c4cbd19efd88? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"60f17c13df92a26f67507e2f42b8aa0d"} device-1 | {"level":"info","message":"GET /devices/a4400f97-396f-49ab-9721-c4cbd19efd88? 200 17ms","method":"GET","requestID":"60f17c13df92a26f67507e2f42b8aa0d","responseTime":17,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19fb38a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling 200 11ms","method":"POST","requestID":"19fb38a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Building connection plan","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"d151813f-83f3-4c2e-9acd-15d9526a6b11"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"2dad92be-52e9-4e41-8035-43e6723b7681"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"64c8053b-8324-4bdb-882f-522d3578527a"}]},"level":"info","message":"Built pairwise service configurations","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y","level":"info","message":"auth send jwt","requestID":"91263c8f891e265e6873408090e81060"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"91263c8f891e265e6873408090e81060","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"91263c8f891e265e6873408090e81060"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.721916,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634360,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MH0.T54Pr0GLI1KdE1BaQTfyHFrhZTzMcPNkOBZo0gj2-hs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.603896,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"91263c8f891e265e6873408090e81060","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634361,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"91263c8f891e265e6873408090e81060","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:38.252740354Z"}]},"request_id":"53759b44-3971-4713-b624-e865370b59ff","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.178103} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"91263c8f891e265e6873408090e81060","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"91263c8f891e265e6873408090e81060"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"91263c8f891e265e6873408090e81060"} device-1 | {"level":"info","message":"GET /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac? 200 10ms","method":"GET","requestID":"91263c8f891e265e6873408090e81060","responseTime":10,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"cfbf5e9b-b08f-4cb2-8582-de628c21748f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.1824212} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d29ac400-923d-4af5-9f16-1cb29a36579b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.1826165} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65'","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65'","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 60ms","method":"POST","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":60,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"1a012c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65","device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","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/99d1da68-c6ff-4110-afe6-564a21f64e65","device":"a4400f97-396f-49ab-9721-c4cbd19efd88","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/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"6d7c2bdf04487f678453d6e0a6d83688"} device-1 | {"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a11f4f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cdd766c2-41b9-4817-ae19-9678266c44f2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.283335} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.491654,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a11f4f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","rebac_allow":false,"scope_allow":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":"1a11f4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a11f4f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling 200 8ms","method":"POST","requestID":"1a11f4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a137b90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b2a84556-1074-4e8e-80fc-bc8cc7008156","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.3189332} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.844377,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} device-1 | {"device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a137b90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","rebac_allow":false,"scope_allow":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":"1a137b90-2b5e-11f0-8e1f-5304d0938eae","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 4432268581992684778 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:Eycz\r\na=ice-pwd:HpuFkT8OrqbInv62g7SgecJ1\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5D:6F:A5:3C:14:8A:4F:E8:8B:A3:3D:12:7A:93:6C:8D:04:D1:A7:1A:E8:2B:3D:D8:63:AB:BB:2E:17:83:11:AD\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a137b90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling 200 38ms","method":"POST","requestID":"1a137b90-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac'"} device-1 | {"content":{"sdp":"v=0\r\no=- 8680795835238536735 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:UZHu\r\na=ice-pwd:3qqeXkT2TTagKefKU0Dy2B3S\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5B:7F:A6:1C:D6:ED:12:25:85:E3:14:E7:09:F0:5D:48:7A:E9:63:15:22:9F:17:D4:C1:28:F1:12:08:B9:B0:B8\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:2887158801 1 udp 2113937151 cfd71026-0656-4325-ad18-0071b665a354.local 57022 typ host generation 0 ufrag UZHu network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","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/a4400f97-396f-49ab-9721-c4cbd19efd88'"} device-1 | {"content":{"candidate":"candidate:3962171198 1 udp 2113937151 5409fc36-c3a2-4550-bda7-b17a74600faf.local 38914 typ host generation 0 ufrag Eycz network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","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/99d1da68-c6ff-4110-afe6-564a21f64e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"99d1da68-c6ff-4110-afe6-564a21f64e65","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cd4b3c4e82f7f4557446cbb733817a9c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cd4b3c4e82f7f4557446cbb733817a9c","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/a4400f97-396f-49ab-9721-c4cbd19efd88"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65"}}},"level":"info","message":"received a callback","requestID":"cd4b3c4e82f7f4557446cbb733817a9c"} device-1 | {"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"cd4b3c4e82f7f4557446cbb733817a9c","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"cd4b3c4e82f7f4557446cbb733817a9c"} device-1 | {"device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"99d1da68-c6ff-4110-afe6-564a21f64e65","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"99d1da68-c6ff-4110-afe6-564a21f64e65","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/99d1da68-c6ff-4110-afe6-564a21f64e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"99d1da68-c6ff-4110-afe6-564a21f64e65","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b807ca528f0d2615e8b914293f52519d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b807ca528f0d2615e8b914293f52519d","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/a4400f97-396f-49ab-9721-c4cbd19efd88"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65"}}},"level":"info","message":"received a callback","requestID":"b807ca528f0d2615e8b914293f52519d"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"1a305260-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F99d1da68-c6ff-4110-afe6-564a21f64e65","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"21e055e0-4373-491b-a6c2-e6a34b8a9e79","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.5072849} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.012387,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y","level":"info","message":"auth send jwt","requestID":"e5f6f886becd7eeb6839ee33accc7523"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a305260-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e5f6f886becd7eeb6839ee33accc7523","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"1a305260-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2290cb39-ed91-4149-b859-465250612c7d","requestID":"e5f6f886becd7eeb6839ee33accc7523"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"1a305260-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65 200 33ms","method":"GET","requestID":"1a305260-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.400578,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e5f6f886becd7eeb6839ee33accc7523","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634361,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e5f6f886becd7eeb6839ee33accc7523","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/2290cb39-ed91-4149-b859-465250612c7d","requestID":"e5f6f886becd7eeb6839ee33accc7523"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2290cb39-ed91-4149-b859-465250612c7d HTTP/1.1","status": "200","body_bytes_sent":"878","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e5f6f886becd7eeb6839ee33accc7523"} experiment-1 | {"level":"info","message":"GET /experiments/2290cb39-ed91-4149-b859-465250612c7d 200 13ms","method":"GET","requestID":"e5f6f886becd7eeb6839ee33accc7523","responseTime":13,"status":200,"url":"/experiments/2290cb39-ed91-4149-b859-465250612c7d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 79ms","method":"POST","requestID":"b807ca528f0d2615e8b914293f52519d","responseTime":79,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.083","http_referrer":"","http_user_agent":"node-fetch","requestID":"b807ca528f0d2615e8b914293f52519d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a3beb20-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"356dae86-b71e-4009-9bdc-a227787548dd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.5591438} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.650696,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a3beb20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","rebac_allow":false,"scope_allow":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":"1a3beb20-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a3beb20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling 200 8ms","method":"POST","requestID":"1a3beb20-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a3d98d0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cda0b13a-542c-4ff7-afce-675685daeb04","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.5698595} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.505417,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a3d98d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","rebac_allow":false,"scope_allow":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":"1a3d98d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a3d98d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling 200 9ms","method":"POST","requestID":"1a3d98d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y","level":"info","message":"auth send jwt","requestID":"31675e1b3025bffb42fdae49c8c5e556"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"31675e1b3025bffb42fdae49c8c5e556","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2290cb39-ed91-4149-b859-465250612c7d","requestID":"31675e1b3025bffb42fdae49c8c5e556"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.795228,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"31675e1b3025bffb42fdae49c8c5e556","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634361,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"31675e1b3025bffb42fdae49c8c5e556","responseTime":24,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/2290cb39-ed91-4149-b859-465250612c7d","requestID":"31675e1b3025bffb42fdae49c8c5e556"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2290cb39-ed91-4149-b859-465250612c7d HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"31675e1b3025bffb42fdae49c8c5e556"} experiment-1 | {"level":"info","message":"GET /experiments/2290cb39-ed91-4149-b859-465250612c7d 200 29ms","method":"GET","requestID":"31675e1b3025bffb42fdae49c8c5e556","responseTime":29,"status":200,"url":"/experiments/2290cb39-ed91-4149-b859-465250612c7d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y","level":"info","message":"auth send jwt","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2290cb39-ed91-4149-b859-465250612c7d","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.745561,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e9028f1a7f9e33018c9039cf7ffaaf35","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634361,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Attempting to finish experiment","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"1a4dc570-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.644417,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a4dc570-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634361,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1a4dc570-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65","device":"86219177-7bd6-4675-9d62-b28c2c5b06ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65","device":"a4400f97-396f-49ab-9721-c4cbd19efd88","deviceName":"Internal Test Device","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/99d1da68-c6ff-4110-afe6-564a21f64e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"99d1da68-c6ff-4110-afe6-564a21f64e65","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a5c279fd2541690e689a011dd26270c3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a5c279fd2541690e689a011dd26270c3","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65"}}},"level":"info","message":"received a callback","requestID":"a5c279fd2541690e689a011dd26270c3"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9a6c355e16f9403b685b8f877201e242","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F99d1da68-c6ff-4110-afe6-564a21f64e65': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F99d1da68-c6ff-4110-afe6-564a21f64e65","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"2c24de11-b9b2-488e-8b5d-5c7e6089e6b7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.7142546} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9a6c355e16f9403b685b8f877201e242","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/a4400f97-396f-49ab-9721-c4cbd19efd88"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65"}}},"level":"info","message":"received a callback","requestID":"9a6c355e16f9403b685b8f877201e242"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0cb93a78-20a3-42ac-8f3c-c009c3c311c7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.7144668} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"1a4dc570-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"99d1da68-c6ff-4110-afe6-564a21f64e65","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"1a4dc570-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65 204 89ms","method":"DELETE","requestID":"1a4dc570-2b5e-11f0-8e1f-5304d0938eae","responseTime":89,"status":204,"url":"/peerconnections/99d1da68-c6ff-4110-afe6-564a21f64e65"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2290cb39-ed91-4149-b859-465250612c7d"},"level":"info","message":"Successfully finished experiment","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a614d70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa4400f97-396f-49ab-9721-c4cbd19efd88","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b800bf09-5bc3-4d1b-b89e-e16398f4b9fd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.8034146} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.300119,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a614d70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88","object_type":"device","rebac_allow":false,"scope_allow":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":"1a614d70-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a614d70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling 200 8ms","method":"POST","requestID":"1a614d70-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/a4400f97-396f-49ab-9721-c4cbd19efd88/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a62fb20-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2290cb39-ed91-4149-b859-465250612c7d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2290cb39-ed91-4149-b859-465250612c7d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"760d76d8-bfa8-4bc0-88a6-8079276861b3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.8106751} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"520b9997-22e6-4139-8c9e-c20e9d4d8ed1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.8109314} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86219177-7bd6-4675-9d62-b28c2c5b06ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f37e45a4-c124-4a90-b6dd-876908b6d738","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.8149915} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.449887,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a62fb20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac","object_type":"device","rebac_allow":false,"scope_allow":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":"1a62fb20-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a62fb20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling 200 33ms","method":"POST","requestID":"1a62fb20-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2290cb39-ed91-4149-b859-465250612c7d","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2290cb39-ed91-4149-b859-465250612c7d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.253","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35"} experiment-1 | {"level":"info","message":"DELETE /experiments/2290cb39-ed91-4149-b859-465250612c7d 204 249ms","method":"DELETE","requestID":"e9028f1a7f9e33018c9039cf7ffaaf35","responseTime":249,"status":204,"url":"/experiments/2290cb39-ed91-4149-b859-465250612c7d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 226ms","method":"POST","requestID":"a5c279fd2541690e689a011dd26270c3","responseTime":226,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 224ms","method":"POST","requestID":"9a6c355e16f9403b685b8f877201e242","responseTime":224,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.228","http_referrer":"","http_user_agent":"node-fetch","requestID":"a5c279fd2541690e689a011dd26270c3"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.226","http_referrer":"","http_user_agent":"node-fetch","requestID":"9a6c355e16f9403b685b8f877201e242"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y","level":"info","message":"auth send jwt","requestID":"09470bc75da0d14f37a58278104fd3af"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"09470bc75da0d14f37a58278104fd3af","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"09470bc75da0d14f37a58278104fd3af"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.914683,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"09470bc75da0d14f37a58278104fd3af","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634361,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2MX0.KOS058VZf6XrKlwom0b_GAtNPONd16t7ma7VqAHsF2Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"09470bc75da0d14f37a58278104fd3af","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +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.246","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f739a4fa4f8ca682910330a50b2cb441"} gateway-1 | {"time_local":"07/May/2025:16:12:41 +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.192","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5925e29f18f27a50bbe3f73cb26616a0"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a4400f97-396f-49ab-9721-c4cbd19efd88' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/86219177-7bd6-4675-9d62-b28c2c5b06ac' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d4fb4b80-4c46-4599-b974-84939cf262c3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.9879222} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"09470bc75da0d14f37a58278104fd3af","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7cbdedc3-7b08-4c7e-b4cd-c455691f00f3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634361.9955063} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"09470bc75da0d14f37a58278104fd3af","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"dc5e5bdb-e01d-47c1-866e-e8b089f26a5d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.0067883} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ccae934b-b3df-4de4-9a03-6a5b6709ae82","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.007031} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"09470bc75da0d14f37a58278104fd3af","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.006763569Z"}]},"request_id":"ef65e486-a2fc-4111-88fb-bec9a210f2a3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.0110126} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"09470bc75da0d14f37a58278104fd3af","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"09470bc75da0d14f37a58278104fd3af"} gateway-1 | {"time_local":"07/May/2025:16:12:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.100","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"09470bc75da0d14f37a58278104fd3af"} device-1 | {"level":"info","message":"POST /devices? 201 96ms","method":"POST","requestID":"09470bc75da0d14f37a58278104fd3af","responseTime":96,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2Mn0.tOp2wTT7MBu6ErLtMMdWN2uAZ2BASzMfeReG_-TjeNo","level":"info","message":"auth send jwt","requestID":"f0734e521e285dc1158d50fe9df3cac6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f0734e521e285dc1158d50fe9df3cac6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"f0734e521e285dc1158d50fe9df3cac6"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:42Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.700394,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f0734e521e285dc1158d50fe9df3cac6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634362,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2Mn0.tOp2wTT7MBu6ErLtMMdWN2uAZ2BASzMfeReG_-TjeNo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f0734e521e285dc1158d50fe9df3cac6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c1a2c2c2-a106-4863-b1e2-c2dfa429ff77","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.0562713} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f0734e521e285dc1158d50fe9df3cac6","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3257d69d-0005-4458-a313-02f7654c5e56","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.0599477} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"f0734e521e285dc1158d50fe9df3cac6","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d748ff8e-1ad0-4041-92bc-cf0722d9fd46","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.092814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"758f484b-8d0f-4e61-87a4-1de7c61b3033","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.0929487} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"f0734e521e285dc1158d50fe9df3cac6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.092797371Z"}]},"request_id":"9135aed6-0eee-4cd2-8f33-eb0cfe1fa28c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634362.0968564} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f0734e521e285dc1158d50fe9df3cac6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f0734e521e285dc1158d50fe9df3cac6"} gateway-1 | {"time_local":"07/May/2025:16:12:42 +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":"f0734e521e285dc1158d50fe9df3cac6"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"f0734e521e285dc1158d50fe9df3cac6","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2M30._rvx599Tn0SpSI-MyOHpZLp-R85mnwi_Yin5O5PiVvw","level":"info","message":"auth send jwt","requestID":"cc232084a077c67d5021466095341228"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cc232084a077c67d5021466095341228","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"cc232084a077c67d5021466095341228"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672136,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cc232084a077c67d5021466095341228","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634363,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2M30._rvx599Tn0SpSI-MyOHpZLp-R85mnwi_Yin5O5PiVvw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cc232084a077c67d5021466095341228","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.006763569Z"}]},"request_id":"557f966e-6f85-492a-bb4a-ad748e409e2a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634363.048727} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cc232084a077c67d5021466095341228","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f883362-1bf0-49e7-beb9-aced975de6f9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634363.0533898} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"cc232084a077c67d5021466095341228","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.006763569Z"}]},"request_id":"d206c303-03c3-4d89-9e25-453972d2fb8c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634363.096458} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cc232084a077c67d5021466095341228","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"cc232084a077c67d5021466095341228"} gateway-1 | {"time_local":"07/May/2025:16:12:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/00a63e17-837e-469c-8f08-0062919d8187 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.086","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"cc232084a077c67d5021466095341228"} device-1 | {"level":"info","message":"PATCH /devices/00a63e17-837e-469c-8f08-0062919d8187 200 82ms","method":"PATCH","requestID":"cc232084a077c67d5021466095341228","responseTime":82,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2M30._rvx599Tn0SpSI-MyOHpZLp-R85mnwi_Yin5O5PiVvw","level":"info","message":"auth send jwt","requestID":"f934701545f425d98e9f540c62a4cbdd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f934701545f425d98e9f540c62a4cbdd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f934701545f425d98e9f540c62a4cbdd"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.335048,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f934701545f425d98e9f540c62a4cbdd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634363,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2M30._rvx599Tn0SpSI-MyOHpZLp-R85mnwi_Yin5O5PiVvw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f934701545f425d98e9f540c62a4cbdd","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f934701545f425d98e9f540c62a4cbdd"} gateway-1 | {"time_local":"07/May/2025:16:12:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/00a63e17-837e-469c-8f08-0062919d8187/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.18","requestID":"f934701545f425d98e9f540c62a4cbdd"} device-1 | {"level":"info","message":"POST /devices/00a63e17-837e-469c-8f08-0062919d8187/websocket 200 44ms","method":"POST","requestID":"f934701545f425d98e9f540c62a4cbdd","responseTime":44,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2de68d703c992836044857a358b592eb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2de68d703c992836044857a358b592eb","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/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":"2de68d703c992836044857a358b592eb"} device-1 | {"level":"info","message":"OPTIONS /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/websocket 200 0ms","method":"OPTIONS","requestID":"2de68d703c992836044857a358b592eb","responseTime":0,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY","level":"info","message":"auth send jwt","requestID":"bf9327d46fc436ad9bccf09bf374c524"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bf9327d46fc436ad9bccf09bf374c524","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"bf9327d46fc436ad9bccf09bf374c524"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.735467,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bf9327d46fc436ad9bccf09bf374c524","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bf9327d46fc436ad9bccf09bf374c524","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"bf9327d46fc436ad9bccf09bf374c524"} gateway-1 | {"time_local":"07/May/2025:16:12:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/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":"bf9327d46fc436ad9bccf09bf374c524"} device-1 | {"level":"info","message":"POST /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/websocket 200 43ms","method":"POST","requestID":"bf9327d46fc436ad9bccf09bf374c524","responseTime":43,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY","level":"info","message":"auth send jwt","requestID":"cd3478b047d0b19d4768e4249d6557b7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cd3478b047d0b19d4768e4249d6557b7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cd3478b047d0b19d4768e4249d6557b7"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.817101,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cd3478b047d0b19d4768e4249d6557b7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cd3478b047d0b19d4768e4249d6557b7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.006763569Z"}]},"request_id":"753d539c-1681-487d-bcd0-19d40683d4af","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.58427} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cd3478b047d0b19d4768e4249d6557b7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cd3478b047d0b19d4768e4249d6557b7"} gateway-1 | {"time_local":"07/May/2025:16:12:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/00a63e17-837e-469c-8f08-0062919d8187? 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":"cd3478b047d0b19d4768e4249d6557b7"} device-1 | {"level":"info","message":"GET /devices/00a63e17-837e-469c-8f08-0062919d8187? 200 31ms","method":"GET","requestID":"cd3478b047d0b19d4768e4249d6557b7","responseTime":31,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY","level":"info","message":"auth send jwt","requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.87886,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.092797371Z"}]},"request_id":"32f42cfd-8faf-47d5-b021-434a2a36f43e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.5993764} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de"} device-1 | {"level":"info","message":"GET /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e? 200 39ms","method":"GET","requestID":"e5a1b64f9e5cad7d85ff54d07e59e0de","responseTime":39,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e?"} gateway-1 | {"time_local":"07/May/2025:16:12:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e? 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":"e5a1b64f9e5cad7d85ff54d07e59e0de"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY","level":"info","message":"auth send jwt","requestID":"1e2e7935854f79f96675e72d5497f4e4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1e2e7935854f79f96675e72d5497f4e4","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"1e2e7935854f79f96675e72d5497f4e4"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.719472,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1e2e7935854f79f96675e72d5497f4e4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1e2e7935854f79f96675e72d5497f4e4","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Attempting to run experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Attempting to book experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully booked experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1c217400-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1c21c220-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.602182,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c217400-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1c217400-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670251,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c21c220-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1c21c220-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.006763569Z"}]},"request_id":"9fddfce5-ee66-4a8a-8598-0e13c38cfea5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.7441826} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"1c217400-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.092797371Z"}]},"request_id":"5351106f-e3de-4065-b4b1-23383d8ec161","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.744947} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"1c21c220-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1c217400-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/00a63e17-837e-469c-8f08-0062919d8187? 200 37ms","method":"GET","requestID":"1c217400-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1c21c220-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e? 200 36ms","method":"GET","requestID":"1c21c220-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Setting up experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully locked booking for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Attempting to update booking for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully updated booking for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully set up experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1c36f7d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1c371ee0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1c376d00-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully running experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740374,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c36f7d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"1c36f7d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.885476,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c371ee0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"1c371ee0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"08719719-d01b-4f76-bd52-28efd1242f27","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.8860807} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.699092,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c376d00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","rebac_allow":false,"scope_allow":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":"1c376d00-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.092797371Z"}]},"request_id":"52e60869-a87a-479d-a6e6-f75f14f1a49a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.9130893} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"1c371ee0-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.006763569Z"}]},"request_id":"b2b7f1f7-d7d2-491b-a535-dcae986dc1f3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.9153645} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1c376d00-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"1c36f7d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8d6ad09-4301-4682-a8c9-b4561a490dca#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8d6ad09-4301-4682-a8c9-b4561a490dca","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"9c51629e-63e3-491b-af72-24ea80c3ee33","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.917864} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62e8adfe-fa74-44c4-a689-834e839e45bb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.9180648} device-1 | {"level":"info","message":"POST /devices/00a63e17-837e-469c-8f08-0062919d8187/signaling 200 39ms","method":"POST","requestID":"1c376d00-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"1e2e7935854f79f96675e72d5497f4e4","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1c3dd5a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1c371ee0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e? 200 46ms","method":"GET","requestID":"1c371ee0-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e?"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1c36f7d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/00a63e17-837e-469c-8f08-0062919d8187? 200 49ms","method":"GET","requestID":"1c36f7d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":49,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8844a4db-2628-4499-8a98-d61923dd5895","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.9270644} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.799004,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c3dd5a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","rebac_allow":false,"scope_allow":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":"1c3dd5a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"1e2e7935854f79f96675e72d5497f4e4"} gateway-1 | {"time_local":"07/May/2025:16:12:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.297","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 292ms","method":"POST","requestID":"1e2e7935854f79f96675e72d5497f4e4","responseTime":292,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1c3f3530-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1c3dd5a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling 200 12ms","method":"POST","requestID":"1c3dd5a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY","level":"info","message":"auth send jwt","requestID":"a13b65eba015a5d2931d9202f090d3c6"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a13b65eba015a5d2931d9202f090d3c6","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"28905676-4538-413f-bf26-ea6619c3fc32","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.9359107} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a13b65eba015a5d2931d9202f090d3c6"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.201236,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1c3f3530-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c3f3530-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","rebac_allow":false,"scope_allow":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":"1c3f3530-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70693,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} device-1 | {"level":"info","message":"POST /devices/00a63e17-837e-469c-8f08-0062919d8187/signaling 200 33ms","method":"POST","requestID":"1c3f3530-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a13b65eba015a5d2931d9202f090d3c6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a13b65eba015a5d2931d9202f090d3c6","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1c44b370-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.006763569Z"}]},"request_id":"f051ae63-6fc6-46f8-850b-af5272ad1a37","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.9692187} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"a13b65eba015a5d2931d9202f090d3c6","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f212c78-1ff6-49b4-a59e-8d99c401b21b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634364.9716284} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.873494,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a13b65eba015a5d2931d9202f090d3c6"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c44b370-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","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":"07/May/2025:16:12:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/00a63e17-837e-469c-8f08-0062919d8187? 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":"a13b65eba015a5d2931d9202f090d3c6"} device-1 | {"level":"info","message":"GET /devices/00a63e17-837e-469c-8f08-0062919d8187? 200 38ms","method":"GET","requestID":"a13b65eba015a5d2931d9202f090d3c6","responseTime":38,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187?"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"1c44b370-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1c44b370-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling 200 10ms","method":"POST","requestID":"1c44b370-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY","level":"info","message":"auth send jwt","requestID":"fffb4fc0608ab00f935f4986b48be869"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Building connection plan","requestID":"1e2e7935854f79f96675e72d5497f4e4"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"06aff57a-bcb0-48f7-8e1e-1d654e391f08"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"76cb2518-b250-4239-957e-baad56b8abd8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"9f71819f-146f-4840-a425-04de2ea9df1e"}]},"level":"info","message":"Built pairwise service configurations","requestID":"1e2e7935854f79f96675e72d5497f4e4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fffb4fc0608ab00f935f4986b48be869","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"1e2e7935854f79f96675e72d5497f4e4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fffb4fc0608ab00f935f4986b48be869"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:54176","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.934711,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"fffb4fc0608ab00f935f4986b48be869","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"fffb4fc0608ab00f935f4986b48be869","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.708136,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634364,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2NH0.5lvdkvLJEo1P0F2U6AkmmJLgPFou9TSeNm2zGMyLRbY"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:42.092797371Z"}]},"request_id":"8cf09b2d-d6bd-4fe3-8d84-ce84b653ba73","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634365.0112214} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fffb4fc0608ab00f935f4986b48be869","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fffb4fc0608ab00f935f4986b48be869"} gateway-1 | {"time_local":"07/May/2025:16:12:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e? 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":"fffb4fc0608ab00f935f4986b48be869"} device-1 | {"level":"info","message":"GET /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e? 200 36ms","method":"GET","requestID":"fffb4fc0608ab00f935f4986b48be869","responseTime":36,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"96821ffc-f45e-4ced-a76e-bef4441cdd72","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634365.0180218} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2112fbe0-b067-4aa5-95a0-26cdf4b3a714","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634365.0184662} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c'","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c'","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 85ms","method":"POST","requestID":"1c46af40-2b5e-11f0-8e1f-5304d0938eae","responseTime":85,"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":"1c46af40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c","device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","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} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"1e2e7935854f79f96675e72d5497f4e4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1c5be4f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:45Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"160b3ea7-d421-4fc3-9c80-6a87bf2b957d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634365.1230989} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.411348,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c5be4f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","rebac_allow":false,"scope_allow":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":"1c5be4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1c5be4f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/00a63e17-837e-469c-8f08-0062919d8187/signaling 200 8ms","method":"POST","requestID":"1c5be4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1c5d6b90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:45Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0ae243b6-ed1c-4b56-8306-51d438f1a287","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634365.154862} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.514701,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1c5d6b90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","rebac_allow":false,"scope_allow":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":"1c5d6b90-2b5e-11f0-8e1f-5304d0938eae","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1c5d6b90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling 200 32ms","method":"POST","requestID":"1c5d6b90-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling"} device-1 | {"content":{"canTrickle":true},"device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 3420604231920568989 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:y4/A\r\na=ice-pwd:sMVbiHy0k4JLesXtEr69sR5Y\r\na=ice-options:trickle\r\na=fingerprint:sha-256 A7:33:25:AA:67:D2:6C:72:67:8E:BE:22:63:F0:9F:79:66:70:01:D1:54:F2:02:88:4A:00:9F:89:9B:C3:BD:97\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d31edfc3-a2d5-481c-8546-bef9aca08a3c","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/d31edfc3-a2d5-481c-8546-bef9aca08a3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d31edfc3-a2d5-481c-8546-bef9aca08a3c","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"98ac4b8b1be334abb9a74b8c575f7ce6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"98ac4b8b1be334abb9a74b8c575f7ce6","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/00a63e17-837e-469c-8f08-0062919d8187"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c"}}},"level":"info","message":"received a callback","requestID":"98ac4b8b1be334abb9a74b8c575f7ce6"} device-1 | {"content":{"candidate":"candidate:875136636 1 udp 2113937151 4b29025a-dcbe-448d-b3a5-5de133ac8934.local 34225 typ host generation 0 ufrag y4/A network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"98ac4b8b1be334abb9a74b8c575f7ce6","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.036","http_referrer":"","http_user_agent":"node-fetch","requestID":"98ac4b8b1be334abb9a74b8c575f7ce6"} device-1 | {"device":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d31edfc3-a2d5-481c-8546-bef9aca08a3c","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"d31edfc3-a2d5-481c-8546-bef9aca08a3c","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/d31edfc3-a2d5-481c-8546-bef9aca08a3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d31edfc3-a2d5-481c-8546-bef9aca08a3c","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2fc7859a47ac48a6969557a2576bb4be","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2fc7859a47ac48a6969557a2576bb4be","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/00a63e17-837e-469c-8f08-0062919d8187"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c"}}},"level":"info","message":"received a callback","requestID":"2fc7859a47ac48a6969557a2576bb4be"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"1d9c2d20-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd31edfc3-a2d5-481c-8546-bef9aca08a3c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"698a1603-e3af-4b1c-825f-3646a17c2d41","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.2224798} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.62056,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1d9c2d20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c","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":"1d9c2d20-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"1d9c2d20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c 200 8ms","method":"GET","requestID":"1d9c2d20-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"2fc7859a47ac48a6969557a2576bb4be","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"2fc7859a47ac48a6969557a2576bb4be"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1d9f6170-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"830d7a67-7fa7-4786-a73f-d9697464ce87","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.2675924} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.283883,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1d9f6170-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","rebac_allow":false,"scope_allow":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":"1d9f6170-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1d9f6170-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/00a63e17-837e-469c-8f08-0062919d8187/signaling 200 32ms","method":"POST","requestID":"1d9f6170-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1da49190-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f47e253d-db8a-4d30-a555-28d56907da79","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.2776182} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.347989,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1da49190-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","rebac_allow":false,"scope_allow":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":"1da49190-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1da49190-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling 200 8ms","method":"POST","requestID":"1da49190-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko","level":"info","message":"auth send jwt","requestID":"4b7dedc2a3fa5afe185f72cae92be86d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4b7dedc2a3fa5afe185f72cae92be86d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","requestID":"4b7dedc2a3fa5afe185f72cae92be86d"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.854177,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4b7dedc2a3fa5afe185f72cae92be86d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634367,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4b7dedc2a3fa5afe185f72cae92be86d","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","requestID":"4b7dedc2a3fa5afe185f72cae92be86d"} gateway-1 | {"time_local":"07/May/2025:16:12:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4b7dedc2a3fa5afe185f72cae92be86d"} experiment-1 | {"level":"info","message":"GET /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca 200 9ms","method":"GET","requestID":"4b7dedc2a3fa5afe185f72cae92be86d","responseTime":9,"status":200,"url":"/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko","level":"info","message":"auth send jwt","requestID":"8528ccb5953b0991e2ede62641ee5d18"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8528ccb5953b0991e2ede62641ee5d18","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","requestID":"8528ccb5953b0991e2ede62641ee5d18"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.676651,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8528ccb5953b0991e2ede62641ee5d18","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634367,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8528ccb5953b0991e2ede62641ee5d18","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Attempting to finish experiment","requestID":"8528ccb5953b0991e2ede62641ee5d18"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"1dbcfb90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.875636,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1dbcfb90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634367,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"1dbcfb90-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c","device":"ca50f44c-d158-49c4-976c-28ccd143dc3e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"00a63e17-837e-469c-8f08-0062919d8187","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/d31edfc3-a2d5-481c-8546-bef9aca08a3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d31edfc3-a2d5-481c-8546-bef9aca08a3c","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd31edfc3-a2d5-481c-8546-bef9aca08a3c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd31edfc3-a2d5-481c-8546-bef9aca08a3c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"01f5478e-f543-463b-a870-7dfe05467539","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.4733667} 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/00a63e17-837e-469c-8f08-0062919d8187"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c"}}},"level":"info","message":"received a callback","requestID":"a44418b16bf8aec1043219628acc9038"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a44418b16bf8aec1043219628acc9038","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db9454f9-e909-4b87-abdc-e77a453d8868","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.4737396} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"1dbcfb90-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a44418b16bf8aec1043219628acc9038","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"845f20327b11c2e81ed3e45be703c7d4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"845f20327b11c2e81ed3e45be703c7d4","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/00a63e17-837e-469c-8f08-0062919d8187"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c"}}},"level":"info","message":"received a callback","requestID":"845f20327b11c2e81ed3e45be703c7d4"} device-1 | {"data":{"peerconnection":"d31edfc3-a2d5-481c-8546-bef9aca08a3c","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"1dbcfb90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c 204 90ms","method":"DELETE","requestID":"1dbcfb90-2b5e-11f0-8e1f-5304d0938eae","responseTime":90,"status":204,"url":"/peerconnections/d31edfc3-a2d5-481c-8546-bef9aca08a3c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"},"level":"info","message":"Successfully finished experiment","requestID":"8528ccb5953b0991e2ede62641ee5d18"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1dd0d1b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F00a63e17-837e-469c-8f08-0062919d8187","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a0f42434-41e2-46a3-a6a7-2d45efd89bd0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.5673888} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.368943,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1dd0d1b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/00a63e17-837e-469c-8f08-0062919d8187","object_type":"device","rebac_allow":false,"scope_allow":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":"1dd0d1b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1dd0d1b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/00a63e17-837e-469c-8f08-0062919d8187/signaling 200 8ms","method":"POST","requestID":"1dd0d1b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/00a63e17-837e-469c-8f08-0062919d8187/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8d6ad09-4301-4682-a8c9-b4561a490dca': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb8d6ad09-4301-4682-a8c9-b4561a490dca","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"f8055e76-7cee-45ae-a34e-bfb8a185199a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.5738611} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1dd27f60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c0c7b7f-0960-4de6-bcde-bd31a0b8eff6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.5740924} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"8528ccb5953b0991e2ede62641ee5d18","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fca50f44c-d158-49c4-976c-28ccd143dc3e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b5a488a8-0dc9-4c85-aada-f568006c69ae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.6027026} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.513975,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1dd27f60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e","object_type":"device","rebac_allow":false,"scope_allow":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":"1dd27f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1dd27f60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling 200 33ms","method":"POST","requestID":"1dd27f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca","requestID":"8528ccb5953b0991e2ede62641ee5d18"} gateway-1 | {"time_local":"07/May/2025:16:12:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca 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":"8528ccb5953b0991e2ede62641ee5d18"} experiment-1 | {"level":"info","message":"DELETE /experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca 204 245ms","method":"DELETE","requestID":"8528ccb5953b0991e2ede62641ee5d18","responseTime":245,"status":204,"url":"/experiments/b8d6ad09-4301-4682-a8c9-b4561a490dca"} gateway-1 | {"time_local":"07/May/2025:16:12:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2338","request_time":"4.523","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"a784542e79499e474ab4143dba4bb3ef"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko","level":"info","message":"auth send jwt","requestID":"03e73abee26928d8070d15591d5cf669"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"03e73abee26928d8070d15591d5cf669","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 200ms","method":"POST","requestID":"a44418b16bf8aec1043219628acc9038","responseTime":200,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevices called","requestID":"03e73abee26928d8070d15591d5cf669"} gateway-1 | {"time_local":"07/May/2025:16:12: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.203","http_referrer":"","http_user_agent":"node-fetch","requestID":"a44418b16bf8aec1043219628acc9038"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 220ms","method":"POST","requestID":"845f20327b11c2e81ed3e45be703c7d4","responseTime":220,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.223","http_referrer":"","http_user_agent":"node-fetch","requestID":"845f20327b11c2e81ed3e45be703c7d4"} gateway-1 | {"time_local":"07/May/2025:16:12:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2543","request_time":"3.162","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"be575a64927c718771022c93bd8f6fb2"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.950813,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"03e73abee26928d8070d15591d5cf669","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634367,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"03e73abee26928d8070d15591d5cf669","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/00a63e17-837e-469c-8f08-0062919d8187' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bd625326-f7c7-4e1e-9bd9-854d7be90729","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.746863} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"03e73abee26928d8070d15591d5cf669","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"106dfb86-8eaa-4d05-9aef-9340a6cb64c0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.7519538} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ca50f44c-d158-49c4-976c-28ccd143dc3e' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"03e73abee26928d8070d15591d5cf669","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"4639803a-085a-43f9-8db0-daf7958b17e9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.7609544} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c2f07c1-5e5e-4daf-a45f-1bd44221fcff","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.7612073} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"03e73abee26928d8070d15591d5cf669","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.760937961Z"}]},"request_id":"ebf3cf67-2ae7-4328-84e2-ba1919c43748","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.765634} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"03e73abee26928d8070d15591d5cf669","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"03e73abee26928d8070d15591d5cf669"} gateway-1 | {"time_local":"07/May/2025:16:12: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.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"03e73abee26928d8070d15591d5cf669"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"03e73abee26928d8070d15591d5cf669","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko","level":"info","message":"auth send jwt","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.726804,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634367,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM2N30.dWJF9dOUSFgUNrva3BxWrE4HWIKNor8hYv_PV9SB_ko"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2f531085-fe82-4034-b437-091f09f089a2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.8120346} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fbc21604-1b07-42db-8290-30298083d8d4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.8412786} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"fa73a31e-b3c8-4f90-812d-76b2b892e36c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.8520951} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"685d4183-310c-4454-a300-141a40445123","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.8523514} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.852073660Z"}]},"request_id":"42e7cb0f-0548-4ab1-8b12-febaf95ffec8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634367.8563468} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e"} gateway-1 | {"time_local":"07/May/2025:16:12: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.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"ddc9bd3c3d65a1a925d01e8d4a02bd2e","responseTime":60,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e52fb90e9d61feaa47ed9f7302c3f7ce","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e52fb90e9d61feaa47ed9f7302c3f7ce","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/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":"e52fb90e9d61feaa47ed9f7302c3f7ce"} device-1 | {"level":"info","message":"OPTIONS /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/websocket 200 1ms","method":"OPTIONS","requestID":"e52fb90e9d61feaa47ed9f7302c3f7ce","responseTime":1,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY","level":"info","message":"auth send jwt","requestID":"41d6d1fd023cf2c2b4765106b4120f1e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"41d6d1fd023cf2c2b4765106b4120f1e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"41d6d1fd023cf2c2b4765106b4120f1e"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.746401,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"41d6d1fd023cf2c2b4765106b4120f1e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"41d6d1fd023cf2c2b4765106b4120f1e","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"41d6d1fd023cf2c2b4765106b4120f1e"} device-1 | {"level":"info","message":"POST /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/websocket 200 43ms","method":"POST","requestID":"41d6d1fd023cf2c2b4765106b4120f1e","responseTime":43,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/websocket"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"41d6d1fd023cf2c2b4765106b4120f1e"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0376cb411b3cfdcff614a343f8a9984b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0376cb411b3cfdcff614a343f8a9984b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/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":"0376cb411b3cfdcff614a343f8a9984b"} device-1 | {"level":"info","message":"OPTIONS /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/websocket 200 1ms","method":"OPTIONS","requestID":"0376cb411b3cfdcff614a343f8a9984b","responseTime":1,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY","level":"info","message":"auth send jwt","requestID":"bf275b399afbb6b2d769b2070b7dbf04"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bf275b399afbb6b2d769b2070b7dbf04","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"bf275b399afbb6b2d769b2070b7dbf04"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631378,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bf275b399afbb6b2d769b2070b7dbf04","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bf275b399afbb6b2d769b2070b7dbf04","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"bf275b399afbb6b2d769b2070b7dbf04"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bf275b399afbb6b2d769b2070b7dbf04"} device-1 | {"level":"info","message":"POST /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/websocket 200 15ms","method":"POST","requestID":"bf275b399afbb6b2d769b2070b7dbf04","responseTime":15,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY","level":"info","message":"auth send jwt","requestID":"0f0f3ee024bccce59b8f85c3bff75d98"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0f0f3ee024bccce59b8f85c3bff75d98","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0f0f3ee024bccce59b8f85c3bff75d98"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.659084,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f0f3ee024bccce59b8f85c3bff75d98","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"0f0f3ee024bccce59b8f85c3bff75d98","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.760937961Z"}]},"request_id":"37266865-93c8-44c0-9aec-e59c282214bd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.3427691} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0f0f3ee024bccce59b8f85c3bff75d98","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0f0f3ee024bccce59b8f85c3bff75d98"} device-1 | {"level":"info","message":"GET /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7? 200 35ms","method":"GET","requestID":"0f0f3ee024bccce59b8f85c3bff75d98","responseTime":35,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7?"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7? 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":"0f0f3ee024bccce59b8f85c3bff75d98"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY","level":"info","message":"auth send jwt","requestID":"965d16f38005c2798b929bfec1bda5d3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"965d16f38005c2798b929bfec1bda5d3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"965d16f38005c2798b929bfec1bda5d3"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.654211,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"965d16f38005c2798b929bfec1bda5d3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"965d16f38005c2798b929bfec1bda5d3","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.852073660Z"}]},"request_id":"8fc9c311-670d-4697-ba83-d3403242578d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.3579335} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"965d16f38005c2798b929bfec1bda5d3","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"965d16f38005c2798b929bfec1bda5d3"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d? 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":"965d16f38005c2798b929bfec1bda5d3"} device-1 | {"level":"info","message":"GET /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d? 200 9ms","method":"GET","requestID":"965d16f38005c2798b929bfec1bda5d3","responseTime":9,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY","level":"info","message":"auth send jwt","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} authentication-1 | {"level":"info","message":"GET /auth 200 23ms","method":"GET","requestID":"e60baddda18fdfd6ebc2bea756533a9a","responseTime":23,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.685707,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e60baddda18fdfd6ebc2bea756533a9a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e60baddda18fdfd6ebc2bea756533a9a","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Attempting to run experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Attempting to book experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully booked experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1f89cc50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1f89f360-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661936,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1f89cc50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1f89cc50-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.061211,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1f89f360-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"1f89f360-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.760937961Z"}]},"request_id":"129b0e36-e259-4b50-b4d1-99cdfaa925ca","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.4858212} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"1f89cc50-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.852073660Z"}]},"request_id":"366e2935-1568-4ea7-9f7a-8e509ea35968","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.4895682} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1f89cc50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7? 200 37ms","method":"GET","requestID":"1f89cc50-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1f89f360-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1f89f360-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d? 200 39ms","method":"GET","requestID":"1f89f360-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Setting up experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully locked booking for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Attempting to update booking for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully updated booking for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully set up experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1f987250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1f989960-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1f98e780-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully running experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.765807,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1f987250-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"1f987250-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.812063,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1f989960-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"1f989960-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.760937961Z"}]},"request_id":"805854f0-99ee-4a95-bb0e-9e3976665c59","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.5818326} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f9f8aac9-9a44-4d44-b99e-fd1126bb04d4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.5831087} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"1f987250-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.358261,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1f987250-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1f98e780-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","rebac_allow":false,"scope_allow":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":"1f98e780-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.852073660Z"}]},"request_id":"08e14d75-eeb3-4f20-b38f-c7a71e195a9d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.586618} device-1 | {"level":"info","message":"GET /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7? 200 38ms","method":"GET","requestID":"1f987250-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"1f989960-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc3ca6a21-65f4-4cfd-a7d9-8d75c611454a#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc3ca6a21-65f4-4cfd-a7d9-8d75c611454a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d8614013-62a1-4638-a19f-1cc368ffa735","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.5903184} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20069a83-9b0c-4195-891e-207b51e79b23","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.5904815} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1f98e780-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling 200 39ms","method":"POST","requestID":"1f98e780-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1f989960-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"e60baddda18fdfd6ebc2bea756533a9a","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"GET /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d? 200 42ms","method":"GET","requestID":"1f989960-2b5e-11f0-8e1f-5304d0938eae","responseTime":42,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1f9f5020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1f9f9e40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dac42ea5-8fa9-4f8e-8683-6a6053770972","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.59913} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.53914,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1f9f5020-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","rebac_allow":false,"scope_allow":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":"1f9f5020-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"011c2f90-40b1-4371-9f5f-c9af4473699a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.6249638} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.743657,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1f9f9e40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","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/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"1f9f9e40-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"777","request_time":"0.265","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"level":"info","message":"POST /experiments? 201 239ms","method":"POST","requestID":"e60baddda18fdfd6ebc2bea756533a9a","responseTime":239,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1f9f5020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling 200 36ms","method":"POST","requestID":"1f9f5020-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1f9f9e40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling 200 36ms","method":"POST","requestID":"1f9f9e40-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY","level":"info","message":"auth send jwt","requestID":"51cd778295e6535382bc3ac93f758521"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"51cd778295e6535382bc3ac93f758521","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"51cd778295e6535382bc3ac93f758521"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1fa591b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658748,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"51cd778295e6535382bc3ac93f758521","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"51cd778295e6535382bc3ac93f758521","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"61c56a3c-b5cf-4fdc-a198-4ef721868a14","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.639945} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.833775,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1fa591b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","rebac_allow":false,"scope_allow":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":"1fa591b0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.760937961Z"}]},"request_id":"fa0ee9c8-fda3-4b4a-8444-1c4ca2d497d9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.6442618} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1fa591b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling 200 10ms","method":"POST","requestID":"1fa591b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Building connection plan","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"b108a2fd-1f83-405f-9ea0-f1160c3f6ab6"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"6d4e51ab-2a5f-4e6f-a6c6-0c81b7a1d2dc"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"b97f7cb4-2124-4f35-83ab-506ff332c690"}]},"level":"info","message":"Built pairwise service configurations","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"51cd778295e6535382bc3ac93f758521","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"51cd778295e6535382bc3ac93f758521"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} device-1 | {"level":"info","message":"GET /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7? 200 42ms","method":"GET","requestID":"51cd778295e6535382bc3ac93f758521","responseTime":42,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7?"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":24.899535,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"51cd778295e6535382bc3ac93f758521"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY","level":"info","message":"auth send jwt","requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743842,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634370,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MH0.9ENqgOWeWCLsuMetlarS-MiEzxT6gS3FCQ-m4PY3lvY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d0355258-2aa7-4b43-ae2a-907ed3978870","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.6888585} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eda67129-fab1-479e-ae60-2d54c338b97e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.6890354} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:47.852073660Z"}]},"request_id":"b099be26-fc12-4f8a-936f-80692930c6dc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.6897852} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/update"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71"} gateway-1 | {"time_local":"07/May/2025:16:12:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d? 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":"8f330e9a4611f83d3dcb7fa5fb6acf71"} device-1 | {"level":"info","message":"GET /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d? 200 14ms","method":"GET","requestID":"8f330e9a4611f83d3dcb7fa5fb6acf71","responseTime":14,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249'","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249'","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 79ms","method":"POST","requestID":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae","responseTime":79,"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":"1fa7b490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","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":false} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","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":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"e60baddda18fdfd6ebc2bea756533a9a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1fbb8ab0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} device-1 | {"device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5dbd3a4e-1c65-48b5-853b-3e6ab912bbb5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.7833774} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.42764,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1fbb8ab0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","rebac_allow":false,"scope_allow":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":"1fbb8ab0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1fbb8ab0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling 200 9ms","method":"POST","requestID":"1fbb8ab0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1fbd3860-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d5389a4d-7c4d-49b1-b7a9-b8b3002f3b81","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.8191466} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.516337,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1fbd3860-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","rebac_allow":false,"scope_allow":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":"1fbd3860-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1fbd3860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling 200 34ms","method":"POST","requestID":"1fbd3860-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling"} device-1 | {"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 6809017478855520018 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:syYL\r\na=ice-pwd:mE2V5QgCmab7S/XGhEcIIBuX\r\na=ice-options:trickle\r\na=fingerprint:sha-256 42:BF:F7:5C:96:D3:BA:62:9E:56:5A:DE:B8:1F:53:C4:35:3B:5A:BE:F9:56:FD:28:E9:1A:BC:C9:C9:A5:51:BD\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 2369994275552532050 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:0AWj\r\na=ice-pwd:kn0dbDJ3nFzLjvJ8MVzwmw1h\r\na=ice-options:trickle\r\na=fingerprint:sha-256 2B:2A:04:DE:42:72:BF:87:52:4D:71:AE:C4:4C:2D:CF:96:4A:46:D3:8B:31:57:EA:64:B0:10:3B:B4:5D:E3:D8\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3621883160 1 udp 2113937151 c990f936-67fb-49d9-a2af-20c53c909b9b.local 32776 typ host generation 0 ufrag 0AWj network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","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/5cb41cad-54c6-4baf-9295-67126a3cbf9d'"} device-1 | {"content":{"candidate":"candidate:1210312371 1 udp 2113937151 3da4100c-181a-444e-865e-667f62d20423.local 48105 typ host generation 0 ufrag syYL network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","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/568f8570-709d-45fd-abd1-c18bd19e5249' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"568f8570-709d-45fd-abd1-c18bd19e5249","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cacc5ff38e6807d860832c964ef4c0ff","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cacc5ff38e6807d860832c964ef4c0ff","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249"}}},"level":"info","message":"received a callback","requestID":"cacc5ff38e6807d860832c964ef4c0ff"} device-1 | {"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"cacc5ff38e6807d860832c964ef4c0ff","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"cacc5ff38e6807d860832c964ef4c0ff"} device-1 | {"device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"568f8570-709d-45fd-abd1-c18bd19e5249","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"568f8570-709d-45fd-abd1-c18bd19e5249","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/568f8570-709d-45fd-abd1-c18bd19e5249' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"568f8570-709d-45fd-abd1-c18bd19e5249","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"249266789d03bce183b1f49d9319abc9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"249266789d03bce183b1f49d9319abc9","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249"}}},"level":"info","message":"received a callback","requestID":"249266789d03bce183b1f49d9319abc9"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"1fd9e820-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F568f8570-709d-45fd-abd1-c18bd19e5249","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"89957ba8-8052-4b8b-b517-5352503e87f6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634370.9839938} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.715409,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1fd9e820-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","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":"1fd9e820-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"1fd9e820-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249 200 35ms","method":"GET","requestID":"1fd9e820-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 60ms","method":"POST","requestID":"249266789d03bce183b1f49d9319abc9","responseTime":60,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1fe24c90-2b5e-11f0-8e1f-5304d0938eae"} gateway-1 | {"time_local":"07/May/2025:16:12:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch","requestID":"249266789d03bce183b1f49d9319abc9"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eaad15ac-6a9c-4f7b-84c1-4b6dcffb020c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634371.0674574} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.020288,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1fe24c90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 36ms","method":"POST","requestID":"1fe24c90-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1fe24c90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling 200 41ms","method":"POST","requestID":"1fe24c90-2b5e-11f0-8e1f-5304d0938eae","responseTime":41,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1fe8dc40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc79579e-dae4-4ffa-8644-56ebd000e299","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634371.1055753} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.979771,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1fe8dc40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","rebac_allow":false,"scope_allow":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":"1fe8dc40-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1fe8dc40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling 200 35ms","method":"POST","requestID":"1fe8dc40-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MX0.Gm9L_dGmOQdTyiYRlHxCqpIc72M7lw9Fbug0NY6S5Rw","level":"info","message":"auth send jwt","requestID":"2dc4f4995cb70bf9575c7c258b73eafb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2dc4f4995cb70bf9575c7c258b73eafb","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","requestID":"2dc4f4995cb70bf9575c7c258b73eafb"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.63431,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2dc4f4995cb70bf9575c7c258b73eafb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634371,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MX0.Gm9L_dGmOQdTyiYRlHxCqpIc72M7lw9Fbug0NY6S5Rw"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"2dc4f4995cb70bf9575c7c258b73eafb","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","requestID":"2dc4f4995cb70bf9575c7c258b73eafb"} experiment-1 | {"level":"info","message":"GET /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a 200 9ms","method":"GET","requestID":"2dc4f4995cb70bf9575c7c258b73eafb","responseTime":9,"status":200,"url":"/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"} gateway-1 | {"time_local":"07/May/2025:16:12:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a HTTP/1.1","status": "200","body_bytes_sent":"850","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2dc4f4995cb70bf9575c7c258b73eafb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MX0.Gm9L_dGmOQdTyiYRlHxCqpIc72M7lw9Fbug0NY6S5Rw","level":"info","message":"auth send jwt","requestID":"85931d224e527c45b130025819ef4abf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"85931d224e527c45b130025819ef4abf","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","requestID":"85931d224e527c45b130025819ef4abf"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.770812,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"85931d224e527c45b130025819ef4abf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634371,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MX0.Gm9L_dGmOQdTyiYRlHxCqpIc72M7lw9Fbug0NY6S5Rw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"85931d224e527c45b130025819ef4abf","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Attempting to finish experiment","requestID":"85931d224e527c45b130025819ef4abf"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"206add80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.681994,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:51Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"206add80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634371,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3MX0.Gm9L_dGmOQdTyiYRlHxCqpIc72M7lw9Fbug0NY6S5Rw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"206add80-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","device":"4c72bc23-19b0-4972-9dff-59e1fbd547c7","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249","device":"5cb41cad-54c6-4baf-9295-67126a3cbf9d","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/568f8570-709d-45fd-abd1-c18bd19e5249' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"568f8570-709d-45fd-abd1-c18bd19e5249","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F568f8570-709d-45fd-abd1-c18bd19e5249': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F568f8570-709d-45fd-abd1-c18bd19e5249","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"739b1188-ed08-4e18-a34e-ac87fe7cfd8a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634371.942468} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e8ebd302-568d-44b9-a468-a8cf2157e906","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634371.942603} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8179e1fda3c3e946ea0c3345370fa3eb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8179e1fda3c3e946ea0c3345370fa3eb","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a8e1063561806fec008fe676ba304b68","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249"}}},"level":"info","message":"received a callback","requestID":"8179e1fda3c3e946ea0c3345370fa3eb"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"a8e1063561806fec008fe676ba304b68","responseTime":25,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249"}}},"level":"info","message":"received a callback","requestID":"a8e1063561806fec008fe676ba304b68"} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"206add80-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"568f8570-709d-45fd-abd1-c18bd19e5249","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"206add80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249 204 89ms","method":"DELETE","requestID":"206add80-2b5e-11f0-8e1f-5304d0938eae","responseTime":89,"status":204,"url":"/peerconnections/568f8570-709d-45fd-abd1-c18bd19e5249"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"},"level":"info","message":"Successfully finished experiment","requestID":"85931d224e527c45b130025819ef4abf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"207a94f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5cb41cad-54c6-4baf-9295-67126a3cbf9d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7899cc59-0e9a-4c3e-a63d-ca8e1f4a50af","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.0360572} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.494402,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"207a94f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d","object_type":"device","rebac_allow":false,"scope_allow":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":"207a94f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"207a94f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling 200 9ms","method":"POST","requestID":"207a94f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"207fec20-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc3ca6a21-65f4-4cfd-a7d9-8d75c611454a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc3ca6a21-65f4-4cfd-a7d9-8d75c611454a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"958a9be0-60d9-4411-8aa6-bb25ee0aef54","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.0672023} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc36a1d4-3c0d-4218-8deb-45999ae3caf5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.0674584} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"85931d224e527c45b130025819ef4abf","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c72bc23-19b0-4972-9dff-59e1fbd547c7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e8ac021f-89aa-4cff-9e1a-5a6cb3905b6f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.0715215} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.298086,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"207fec20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7","object_type":"device","rebac_allow":false,"scope_allow":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":"207fec20-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"207fec20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling 200 9ms","method":"POST","requestID":"207fec20-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a","requestID":"85931d224e527c45b130025819ef4abf"} gateway-1 | {"time_local":"07/May/2025:16:12:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.270","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"85931d224e527c45b130025819ef4abf"} experiment-1 | {"level":"info","message":"DELETE /experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a 204 267ms","method":"DELETE","requestID":"85931d224e527c45b130025819ef4abf","responseTime":267,"status":204,"url":"/experiments/c3ca6a21-65f4-4cfd-a7d9-8d75c611454a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 196ms","method":"POST","requestID":"8179e1fda3c3e946ea0c3345370fa3eb","responseTime":196,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.223","http_referrer":"","http_user_agent":"node-fetch","requestID":"8179e1fda3c3e946ea0c3345370fa3eb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 196ms","method":"POST","requestID":"a8e1063561806fec008fe676ba304b68","responseTime":196,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12: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.224","http_referrer":"","http_user_agent":"node-fetch","requestID":"a8e1063561806fec008fe676ba304b68"} device-1 | {"level":"info","message":"postDevices called","requestID":"4a491e976e0cc51bdf937381b838d635"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3Mn0.awVqwU4byg0CaIGInWT8G9e_18hlaPVhzINE4lSKWbU","level":"info","message":"auth send jwt","requestID":"4a491e976e0cc51bdf937381b838d635"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4a491e976e0cc51bdf937381b838d635","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:52 +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.874","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d2aa1da5edfdb18c269ef3f8d01bae8b"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.855,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4a491e976e0cc51bdf937381b838d635","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634372,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3Mn0.awVqwU4byg0CaIGInWT8G9e_18hlaPVhzINE4lSKWbU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4a491e976e0cc51bdf937381b838d635","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:12:52 +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.968","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"67effcb883ae8adfa0e9ec283636f4f9"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5cb41cad-54c6-4baf-9295-67126a3cbf9d' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4c72bc23-19b0-4972-9dff-59e1fbd547c7' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4e0e8fec-fae5-4dd4-bedd-b6202a2b66f6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.2171237} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4a491e976e0cc51bdf937381b838d635","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cfcfc94d-671c-4535-955a-279f5cfb9b99","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.221089} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4a491e976e0cc51bdf937381b838d635","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"8686e167-607b-496e-bcd0-9fd7eaa237fc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.2306666} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"079a03dc-2680-4a03-9f8d-dda5ef98fc4f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.2308214} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"4a491e976e0cc51bdf937381b838d635","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4a491e976e0cc51bdf937381b838d635"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.230648717Z"}]},"request_id":"acfe0279-d7fe-4628-8951-cc66e079019e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.258828} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4a491e976e0cc51bdf937381b838d635","responseTime":2,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"07/May/2025:16:12:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4a491e976e0cc51bdf937381b838d635"} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"4a491e976e0cc51bdf937381b838d635","responseTime":93,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3Mn0.awVqwU4byg0CaIGInWT8G9e_18hlaPVhzINE4lSKWbU","level":"info","message":"auth send jwt","requestID":"8637797d2b16eaa53222084f72574ff2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8637797d2b16eaa53222084f72574ff2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"8637797d2b16eaa53222084f72574ff2"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.707431,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8637797d2b16eaa53222084f72574ff2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634372,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3Mn0.awVqwU4byg0CaIGInWT8G9e_18hlaPVhzINE4lSKWbU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8637797d2b16eaa53222084f72574ff2","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"eb484577-b1c3-4d75-ac5b-ff48d338881a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.2800941} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"8637797d2b16eaa53222084f72574ff2","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f5fa4376-b464-4b73-985b-d3a7d3d7cca6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.3081274} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8637797d2b16eaa53222084f72574ff2","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"54bfb51e-f20c-42d2-8f4a-7d0a4f0af587","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.3163512} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f7f1c0fd-cfe0-44b5-94ea-048c16c26dbf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.3164937} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"8637797d2b16eaa53222084f72574ff2","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.316330147Z"}]},"request_id":"8eb086f8-3b15-4b6a-8271-37aa95e2db5e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634372.3200796} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"8637797d2b16eaa53222084f72574ff2","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"8637797d2b16eaa53222084f72574ff2"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"8637797d2b16eaa53222084f72574ff2","responseTime":59,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:12:52 +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":"8637797d2b16eaa53222084f72574ff2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3M30.Fs1SiXZK862gulkhDS3mysgtPWtK334NWRGs5JiG6sI","level":"info","message":"auth send jwt","requestID":"f4299806033bc2dd18e6c26998fc84a8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f4299806033bc2dd18e6c26998fc84a8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"f4299806033bc2dd18e6c26998fc84a8"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:53Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699002,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f4299806033bc2dd18e6c26998fc84a8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634373,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3M30.Fs1SiXZK862gulkhDS3mysgtPWtK334NWRGs5JiG6sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f4299806033bc2dd18e6c26998fc84a8","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.316330147Z"}]},"request_id":"998216f7-9beb-4e9d-965a-d1f969b5cd93","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634373.282825} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f4299806033bc2dd18e6c26998fc84a8","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f7449fcb-25bf-49ae-ab7f-b24903ff55e5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634373.2880332} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"f4299806033bc2dd18e6c26998fc84a8","responseTime":7,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.316330147Z"}]},"request_id":"54f550ed-8991-4140-83b0-7e93f8700bd8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634373.3271978} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f4299806033bc2dd18e6c26998fc84a8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"f4299806033bc2dd18e6c26998fc84a8"} gateway-1 | {"time_local":"07/May/2025:16:12:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.060","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"f4299806033bc2dd18e6c26998fc84a8"} device-1 | {"level":"info","message":"PATCH /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09 200 56ms","method":"PATCH","requestID":"f4299806033bc2dd18e6c26998fc84a8","responseTime":56,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3M30.Fs1SiXZK862gulkhDS3mysgtPWtK334NWRGs5JiG6sI","level":"info","message":"auth send jwt","requestID":"79feaf1619ca6d5dc78031ab4b5bddcc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"79feaf1619ca6d5dc78031ab4b5bddcc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"79feaf1619ca6d5dc78031ab4b5bddcc"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:53Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718751,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"79feaf1619ca6d5dc78031ab4b5bddcc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634373,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3M30.Fs1SiXZK862gulkhDS3mysgtPWtK334NWRGs5JiG6sI"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"79feaf1619ca6d5dc78031ab4b5bddcc","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"79feaf1619ca6d5dc78031ab4b5bddcc"} gateway-1 | {"time_local":"07/May/2025:16:12:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/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.18","requestID":"79feaf1619ca6d5dc78031ab4b5bddcc"} device-1 | {"level":"info","message":"POST /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/websocket 200 37ms","method":"POST","requestID":"79feaf1619ca6d5dc78031ab4b5bddcc","responseTime":37,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0154b0fd4cb770c02fb45f2ef2130ea8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0154b0fd4cb770c02fb45f2ef2130ea8","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/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":"0154b0fd4cb770c02fb45f2ef2130ea8"} device-1 | {"level":"info","message":"OPTIONS /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/websocket 200 1ms","method":"OPTIONS","requestID":"0154b0fd4cb770c02fb45f2ef2130ea8","responseTime":1,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI","level":"info","message":"auth send jwt","requestID":"3eb0e240ae551708924a1b6ec6d50ff3"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3eb0e240ae551708924a1b6ec6d50ff3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"3eb0e240ae551708924a1b6ec6d50ff3"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.043046,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3eb0e240ae551708924a1b6ec6d50ff3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3eb0e240ae551708924a1b6ec6d50ff3","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"3eb0e240ae551708924a1b6ec6d50ff3"} gateway-1 | {"time_local":"07/May/2025:16:12:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.029","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3eb0e240ae551708924a1b6ec6d50ff3"} device-1 | {"level":"info","message":"POST /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/websocket 200 22ms","method":"POST","requestID":"3eb0e240ae551708924a1b6ec6d50ff3","responseTime":22,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI","level":"info","message":"auth send jwt","requestID":"997d58e5f48e5e348ec1ad3cee35d13f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"997d58e5f48e5e348ec1ad3cee35d13f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"997d58e5f48e5e348ec1ad3cee35d13f"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.922348,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"997d58e5f48e5e348ec1ad3cee35d13f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"997d58e5f48e5e348ec1ad3cee35d13f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.230648717Z"}]},"request_id":"617c4351-0ff0-4c16-842c-e0072b70fa61","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.7547174} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"997d58e5f48e5e348ec1ad3cee35d13f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"997d58e5f48e5e348ec1ad3cee35d13f"} device-1 | {"level":"info","message":"GET /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29? 200 13ms","method":"GET","requestID":"997d58e5f48e5e348ec1ad3cee35d13f","responseTime":13,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29?"} gateway-1 | {"time_local":"07/May/2025:16:12:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29? 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":"997d58e5f48e5e348ec1ad3cee35d13f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI","level":"info","message":"auth send jwt","requestID":"d0e3ad271ceff8d6e380320f8f56b2ac"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d0e3ad271ceff8d6e380320f8f56b2ac","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d0e3ad271ceff8d6e380320f8f56b2ac"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.086813,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d0e3ad271ceff8d6e380320f8f56b2ac","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"d0e3ad271ceff8d6e380320f8f56b2ac","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.316330147Z"}]},"request_id":"af3ded93-e390-4fec-952a-9b03f4365403","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.772574} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d0e3ad271ceff8d6e380320f8f56b2ac","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d0e3ad271ceff8d6e380320f8f56b2ac"} gateway-1 | {"time_local":"07/May/2025:16:12:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09? 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":"d0e3ad271ceff8d6e380320f8f56b2ac"} device-1 | {"level":"info","message":"GET /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09? 200 12ms","method":"GET","requestID":"d0e3ad271ceff8d6e380320f8f56b2ac","responseTime":12,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI","level":"info","message":"auth send jwt","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e9aaf7ff962d3c24dc4b56061d647e60","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.68819,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e9aaf7ff962d3c24dc4b56061d647e60","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e9aaf7ff962d3c24dc4b56061d647e60","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Attempting to run experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Attempting to book experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully booked experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2228ba20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2228e130-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.714494,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2228ba20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2228ba20-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.362852,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2228e130-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2228e130-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.230648717Z"}]},"request_id":"f9412565-47f4-4d70-9dc6-ae021b44d1a9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.8581398} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2228ba20-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.316330147Z"}]},"request_id":"f53d1452-46a9-40f3-b801-1d39c065e484","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.8590145} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2228e130-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2228ba20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29? 200 13ms","method":"GET","requestID":"2228ba20-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2228e130-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09? 200 13ms","method":"GET","requestID":"2228e130-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Setting up experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully locked booking for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Attempting to update booking for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully updated booking for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully set up experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"22376020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2237ae40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2237fc60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631545,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully running experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"22376020-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"22376020-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.75306,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2237ae40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2237ae40-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.834181,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e5e577a-59b8-4143-8c31-82084b8c7f0e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.9563336} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2237fc60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","rebac_allow":false,"scope_allow":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":"2237fc60-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.316330147Z"}]},"request_id":"e8de3f21-864f-4edd-b89b-8d46ab009fc2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.9573445} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"2237ae40-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.230648717Z"}]},"request_id":"0f59f701-f0a7-4d0d-8ad5-9429ca30b37e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.959875} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"22376020-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2237fc60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling 200 11ms","method":"POST","requestID":"2237fc60-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2239f830-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2237ae40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09? 200 17ms","method":"GET","requestID":"2237ae40-2b5e-11f0-8e1f-5304d0938eae","responseTime":17,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"22376020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29? 200 20ms","method":"GET","requestID":"22376020-2b5e-11f0-8e1f-5304d0938eae","responseTime":20,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa517fe60-ff62-49d4-b3d1-7b4dd172ec44#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa517fe60-ff62-49d4-b3d1-7b4dd172ec44","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"f5236e36-bb4e-456d-8bb8-3284cdf44e9b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.966603} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b35211c-6a08-450a-8728-dc1403bc703f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.9668138} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"223abb80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"e9aaf7ff962d3c24dc4b56061d647e60","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1108266b-6c43-4f0d-91de-a5a4fdf3d8c1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.9725132} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"394804dc-7017-4184-a5ba-60f33d10d8bb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634374.9932523} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.46475,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":29.938176,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"223abb80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","rebac_allow":false,"scope_allow":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":"223abb80-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2239f830-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","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/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} authorization-1 | {"level":"info","message":"POST /authorize 200 33ms","method":"POST","requestID":"2239f830-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:12:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.223","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"level":"info","message":"POST /experiments? 201 219ms","method":"POST","requestID":"e9aaf7ff962d3c24dc4b56061d647e60","responseTime":219,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"223abb80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling 200 34ms","method":"POST","requestID":"223abb80-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2239f830-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling 200 41ms","method":"POST","requestID":"2239f830-2b5e-11f0-8e1f-5304d0938eae","responseTime":41,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NX0.LnYX4ksvTuQ6PD0_neFfUwhjIwqyg46jk6JAu1KwUfc","level":"info","message":"auth send jwt","requestID":"c62ba98670021b81c76a395f090285fc"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c62ba98670021b81c76a395f090285fc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"224060d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c62ba98670021b81c76a395f090285fc"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"18c56b05-0381-4498-9b5c-30e436e7af95","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634375.0107787} authorization-1 | {"client_addr":"127.0.0.1:37144","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.903987,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.887436,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c62ba98670021b81c76a395f090285fc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634375,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NX0.LnYX4ksvTuQ6PD0_neFfUwhjIwqyg46jk6JAu1KwUfc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c62ba98670021b81c76a395f090285fc","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"224060d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","rebac_allow":false,"scope_allow":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":"224060d0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.230648717Z"}]},"request_id":"5b0f9e7d-b478-4f0e-bfe4-cb1c20a2a5fa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634375.0417192} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"c62ba98670021b81c76a395f090285fc","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"224060d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling 200 39ms","method":"POST","requestID":"224060d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Building connection plan","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c62ba98670021b81c76a395f090285fc"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"9987ec52-53cf-4713-8da4-1619fd08fe02"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"c74f0683-e48a-40f7-b36c-14b72f53a549"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"70c3afc6-3dca-4eaf-82a6-ba53d433f0fe"}]},"level":"info","message":"Built pairwise service configurations","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} gateway-1 | {"time_local":"07/May/2025:16:12:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29? 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":"c62ba98670021b81c76a395f090285fc"} device-1 | {"level":"info","message":"GET /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29? 200 39ms","method":"GET","requestID":"c62ba98670021b81c76a395f090285fc","responseTime":39,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29?"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:55Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NX0.LnYX4ksvTuQ6PD0_neFfUwhjIwqyg46jk6JAu1KwUfc","level":"info","message":"auth send jwt","requestID":"6aa4b8cdafca731ea1037e34e62df4c5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6aa4b8cdafca731ea1037e34e62df4c5","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.706915,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:55Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6aa4b8cdafca731ea1037e34e62df4c5"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634374,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NH0.xiZj8kFBqTuUDIrayt-Bxrw4utWa1KIh58Ersg9KThI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650887,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6aa4b8cdafca731ea1037e34e62df4c5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634375,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3NX0.LnYX4ksvTuQ6PD0_neFfUwhjIwqyg46jk6JAu1KwUfc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6aa4b8cdafca731ea1037e34e62df4c5","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:52.316330147Z"}]},"request_id":"06a7d116-6a8e-4646-ae47-dd8691e290e0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634375.0580852} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6aa4b8cdafca731ea1037e34e62df4c5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"82638e59-7f92-41f4-ab14-e0c22dcf2e1a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634375.0589795} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a05749e9-fc90-4bcd-8afa-1b3783c965b0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634375.059497} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6aa4b8cdafca731ea1037e34e62df4c5"} gateway-1 | {"time_local":"07/May/2025:16:12:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09? 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":"6aa4b8cdafca731ea1037e34e62df4c5"} device-1 | {"level":"info","message":"GET /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09? 200 12ms","method":"GET","requestID":"6aa4b8cdafca731ea1037e34e62df4c5","responseTime":12,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245'","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245'","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 53ms","method":"POST","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae","responseTime":53,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"2246c970-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245","device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","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":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"e9aaf7ff962d3c24dc4b56061d647e60"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2256cf00-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"74acb569-421d-45bd-b62e-40e71dd7c467","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634375.156605} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.967917,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2256cf00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","rebac_allow":false,"scope_allow":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":"2256cf00-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2256cf00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling 200 9ms","method":"POST","requestID":"2256cf00-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"22587cb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0908de37-98fd-4ceb-b84a-9bb02c840338","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634375.187663} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.2792,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"22587cb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","rebac_allow":false,"scope_allow":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":"22587cb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"22587cb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling 200 30ms","method":"POST","requestID":"22587cb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling"} device-1 | {"device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 248775767685182438 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:G8gd\r\na=ice-pwd:/FYBEPTS53J1z/BUGmmjIO8s\r\na=ice-options:trickle\r\na=fingerprint:sha-256 8D:84:42:C9:1B:A3:90:2A:EA:EB:E7:83:03:E8:90:47:46:70:C5:5A:FC:E8:3E:F1:E2:36:37:65:79:2F:08:53\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"57dc6df8-7406-4af2-a702-9cea3f041245","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/57dc6df8-7406-4af2-a702-9cea3f041245' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"57dc6df8-7406-4af2-a702-9cea3f041245","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"491548a761d1f0dc67d22e09d1eade7e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"491548a761d1f0dc67d22e09d1eade7e","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245"}}},"level":"info","message":"received a callback","requestID":"491548a761d1f0dc67d22e09d1eade7e"} device-1 | {"content":{"candidate":"candidate:561471378 1 udp 2113937151 6282ec2f-75a9-4840-90a7-cc391ea98ced.local 52218 typ host generation 0 ufrag G8gd network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"491548a761d1f0dc67d22e09d1eade7e","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"491548a761d1f0dc67d22e09d1eade7e"} device-1 | {"data":{"peerconnection":"57dc6df8-7406-4af2-a702-9cea3f041245","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"57dc6df8-7406-4af2-a702-9cea3f041245","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/57dc6df8-7406-4af2-a702-9cea3f041245' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"57dc6df8-7406-4af2-a702-9cea3f041245","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ae6c35ec7975dfbc81684da9347a60cf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ae6c35ec7975dfbc81684da9347a60cf","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245"}}},"level":"info","message":"received a callback","requestID":"ae6c35ec7975dfbc81684da9347a60cf"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"23a0b420-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:57Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F57dc6df8-7406-4af2-a702-9cea3f041245","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b15d05f2-f6b0-470e-8eb8-4edd18d100ae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634377.3199503} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":27.327205,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"23a0b420-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245","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 30ms","method":"POST","requestID":"23a0b420-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"23a0b420-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245 200 35ms","method":"GET","requestID":"23a0b420-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 86ms","method":"POST","requestID":"ae6c35ec7975dfbc81684da9347a60cf","responseTime":86,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.090","http_referrer":"","http_user_agent":"node-fetch","requestID":"ae6c35ec7975dfbc81684da9347a60cf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23ad1030-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:57Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b813da4-9280-414c-bf85-ef0ea0d4dbd8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634377.4000216} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.901314,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"23ad1030-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","rebac_allow":false,"scope_allow":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":"23ad1030-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23ad1030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling 200 10ms","method":"POST","requestID":"23ad1030-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23aee4f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:57Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"832ccbc8-1166-4c1c-bd12-5a478f2f21d7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634377.4129453} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.706346,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"23aee4f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","rebac_allow":false,"scope_allow":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":"23aee4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23aee4f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling 200 35ms","method":"POST","requestID":"23aee4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA","level":"info","message":"auth send jwt","requestID":"bd744edf2a440424586ad3108ab7b1a2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bd744edf2a440424586ad3108ab7b1a2","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","requestID":"bd744edf2a440424586ad3108ab7b1a2"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.738243,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bd744edf2a440424586ad3108ab7b1a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634378,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bd744edf2a440424586ad3108ab7b1a2","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","requestID":"bd744edf2a440424586ad3108ab7b1a2"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44 HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd744edf2a440424586ad3108ab7b1a2"} experiment-1 | {"level":"info","message":"GET /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44 200 33ms","method":"GET","requestID":"bd744edf2a440424586ad3108ab7b1a2","responseTime":33,"status":200,"url":"/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA","level":"info","message":"auth send jwt","requestID":"34711505733aa277174b6ced06f8c65c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"34711505733aa277174b6ced06f8c65c","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","requestID":"34711505733aa277174b6ced06f8c65c"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.900811,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"34711505733aa277174b6ced06f8c65c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634378,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"34711505733aa277174b6ced06f8c65c","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Attempting to finish experiment","requestID":"34711505733aa277174b6ced06f8c65c"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"243a5c10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.718435,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"243a5c10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634378,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"243a5c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245","device":"0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"587c49e5-6b5a-4e83-a3ee-692637c25a09","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/57dc6df8-7406-4af2-a702-9cea3f041245' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"57dc6df8-7406-4af2-a702-9cea3f041245","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"58a1d5a2bfffbb98c51a994f069f43d2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F57dc6df8-7406-4af2-a702-9cea3f041245': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F57dc6df8-7406-4af2-a702-9cea3f041245","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"1a2a82e5-cf9c-4ce2-8ba3-a029b1569729","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.3614557} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"58a1d5a2bfffbb98c51a994f069f43d2","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245"}}},"level":"info","message":"received a callback","requestID":"58a1d5a2bfffbb98c51a994f069f43d2"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2c7a73dd-6c65-46b4-848f-a8507b0a8f77","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.3620915} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f862e7afe75adc72a087e3124e44a360","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f862e7afe75adc72a087e3124e44a360","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"243a5c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245"}}},"level":"info","message":"received a callback","requestID":"f862e7afe75adc72a087e3124e44a360"} device-1 | {"data":{"peerconnection":"57dc6df8-7406-4af2-a702-9cea3f041245","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"243a5c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245 204 89ms","method":"DELETE","requestID":"243a5c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":89,"status":204,"url":"/peerconnections/57dc6df8-7406-4af2-a702-9cea3f041245"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"},"level":"info","message":"Successfully finished experiment","requestID":"34711505733aa277174b6ced06f8c65c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"244a1380-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F587c49e5-6b5a-4e83-a3ee-692637c25a09","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8e96c644-5d9b-4e0f-8b5d-c563742eb368","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.4526312} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.592844,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"244a1380-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09","object_type":"device","rebac_allow":false,"scope_allow":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":"244a1380-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"244a1380-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling 200 33ms","method":"POST","requestID":"244a1380-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"244f43a0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa517fe60-ff62-49d4-b3d1-7b4dd172ec44': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa517fe60-ff62-49d4-b3d1-7b4dd172ec44","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"e6a7a65c-8a99-46a6-a1cf-c2e389f6816a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.4618397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08161088-c7d4-4977-98b0-022c7818dfee","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.461962} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"34711505733aa277174b6ced06f8c65c","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4778c81e-8263-487a-ba69-25bf39d74d80","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.4642773} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.444715,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"244f43a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29","object_type":"device","rebac_allow":false,"scope_allow":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":"244f43a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"244f43a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling 200 10ms","method":"POST","requestID":"244f43a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44","requestID":"34711505733aa277174b6ced06f8c65c"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44 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":"34711505733aa277174b6ced06f8c65c"} experiment-1 | {"level":"info","message":"DELETE /experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44 204 244ms","method":"DELETE","requestID":"34711505733aa277174b6ced06f8c65c","responseTime":244,"status":204,"url":"/experiments/a517fe60-ff62-49d4-b3d1-7b4dd172ec44"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2321","request_time":"5.185","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"ba2651622757f793d1414ca2ce13a260"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 197ms","method":"POST","requestID":"58a1d5a2bfffbb98c51a994f069f43d2","responseTime":197,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"58a1d5a2bfffbb98c51a994f069f43d2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 196ms","method":"POST","requestID":"f862e7afe75adc72a087e3124e44a360","responseTime":196,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch","requestID":"f862e7afe75adc72a087e3124e44a360"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA","level":"info","message":"auth send jwt","requestID":"98bc4cec42bbf269a8f5e94e4f831366"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"98bc4cec42bbf269a8f5e94e4f831366","responseTime":7,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2527","request_time":"3.838","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f7e315c98ff24536e2aa40cf91118883"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/587c49e5-6b5a-4e83-a3ee-692637c25a09' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"98bc4cec42bbf269a8f5e94e4f831366"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.918306,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"98bc4cec42bbf269a8f5e94e4f831366","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634378,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"98bc4cec42bbf269a8f5e94e4f831366","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/0b3e0b46-f7b7-48f7-9925-e05d4b4bed29' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bc5d0b11-a874-4a5b-a7bd-08b2c11d3f03","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.6171424} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"98bc4cec42bbf269a8f5e94e4f831366","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7ad0a1b-086f-4772-be4f-3a7e7c58331a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.6469965} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"98bc4cec42bbf269a8f5e94e4f831366","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"6300285a-bbc6-4d4f-8dac-2852652ece0f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.6606662} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c34c44e3-b895-41aa-a665-ee47e2ae75a9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.6610725} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"98bc4cec42bbf269a8f5e94e4f831366","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.660643339Z"}]},"request_id":"6cb11dca-24a8-4b41-ac27-8fd79d708b93","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.6893103} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"98bc4cec42bbf269a8f5e94e4f831366"} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"98bc4cec42bbf269a8f5e94e4f831366","responseTime":93,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.133","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"98bc4cec42bbf269a8f5e94e4f831366"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"98bc4cec42bbf269a8f5e94e4f831366","responseTime":27,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA","level":"info","message":"auth send jwt","requestID":"c8e372efccabab9d19e18f382d1ab65c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c8e372efccabab9d19e18f382d1ab65c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c8e372efccabab9d19e18f382d1ab65c"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":5.895013,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c8e372efccabab9d19e18f382d1ab65c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634378,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OH0.Ja1CmpuPX6nzFp5jD1E4TqmqtsYNtBJ_YtyJcPnbCKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"c8e372efccabab9d19e18f382d1ab65c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"cc281bd0-6ca6-4335-9632-ca4208de733b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.74794} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c8e372efccabab9d19e18f382d1ab65c","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf716c8a-d0b9-425f-a90f-521ed6b3a422","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.7520595} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"c8e372efccabab9d19e18f382d1ab65c","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c371f76e-0cd3-4d24-b85e-e28c44032d12","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.7604659} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"098e6ba5-530f-4471-86f0-ddbb84e8dbd4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.760553} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"c8e372efccabab9d19e18f382d1ab65c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.760449365Z"}]},"request_id":"5ed9c87f-11d1-4236-8110-cebbb4ca0cb7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634378.7882216} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c8e372efccabab9d19e18f382d1ab65c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c8e372efccabab9d19e18f382d1ab65c"} gateway-1 | {"time_local":"07/May/2025:16:12:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8e372efccabab9d19e18f382d1ab65c"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"c8e372efccabab9d19e18f382d1ab65c","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OX0.jnJmsKEBNoIHzN8Ect72HEs5IlIKGn1-XvNMLSQ0GPo","level":"info","message":"auth send jwt","requestID":"5b3cdd96010c60b4b3a5f566b29f1292"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5b3cdd96010c60b4b3a5f566b29f1292","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"5b3cdd96010c60b4b3a5f566b29f1292"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:59Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68248,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5b3cdd96010c60b4b3a5f566b29f1292","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634379,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OX0.jnJmsKEBNoIHzN8Ect72HEs5IlIKGn1-XvNMLSQ0GPo"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"5b3cdd96010c60b4b3a5f566b29f1292","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.660643339Z"}]},"request_id":"2c3a44d0-fdf5-4eb1-88b7-1f06a54590e5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634379.8052368} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5b3cdd96010c60b4b3a5f566b29f1292","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88a2e19f-b007-420f-8ee4-70aee12a040a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634379.809713} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"5b3cdd96010c60b4b3a5f566b29f1292","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.660643339Z"}]},"request_id":"5a1792c7-5606-440d-9e0c-68904d6b3709","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634379.8497088} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5b3cdd96010c60b4b3a5f566b29f1292","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"5b3cdd96010c60b4b3a5f566b29f1292"} gateway-1 | {"time_local":"07/May/2025:16:12:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.058","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"5b3cdd96010c60b4b3a5f566b29f1292"} device-1 | {"level":"info","message":"PATCH /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f 200 56ms","method":"PATCH","requestID":"5b3cdd96010c60b4b3a5f566b29f1292","responseTime":56,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OX0.jnJmsKEBNoIHzN8Ect72HEs5IlIKGn1-XvNMLSQ0GPo","level":"info","message":"auth send jwt","requestID":"51a416ed263a437079473667a718e021"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"51a416ed263a437079473667a718e021","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"51a416ed263a437079473667a718e021"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:12:59Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676268,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:12:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"51a416ed263a437079473667a718e021","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634379,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM3OX0.jnJmsKEBNoIHzN8Ect72HEs5IlIKGn1-XvNMLSQ0GPo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"51a416ed263a437079473667a718e021","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"51a416ed263a437079473667a718e021"} gateway-1 | {"time_local":"07/May/2025:16:12:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/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.18","requestID":"51a416ed263a437079473667a718e021"} device-1 | {"level":"info","message":"POST /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/websocket 200 40ms","method":"POST","requestID":"51a416ed263a437079473667a718e021","responseTime":40,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4a94e8aac5e083d087a30997f5a8257e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4a94e8aac5e083d087a30997f5a8257e","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/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":"4a94e8aac5e083d087a30997f5a8257e"} device-1 | {"level":"info","message":"OPTIONS /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/websocket 200 1ms","method":"OPTIONS","requestID":"4a94e8aac5e083d087a30997f5a8257e","responseTime":1,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8","level":"info","message":"auth send jwt","requestID":"dca67fe11e052556178d545a5b0e45f6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dca67fe11e052556178d545a5b0e45f6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"dca67fe11e052556178d545a5b0e45f6"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691487,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dca67fe11e052556178d545a5b0e45f6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"dca67fe11e052556178d545a5b0e45f6","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"dca67fe11e052556178d545a5b0e45f6"} gateway-1 | {"time_local":"07/May/2025:16:13:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.049","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dca67fe11e052556178d545a5b0e45f6"} device-1 | {"level":"info","message":"POST /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/websocket 200 46ms","method":"POST","requestID":"dca67fe11e052556178d545a5b0e45f6","responseTime":46,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8","level":"info","message":"auth send jwt","requestID":"688d46a8d82a369f72139cc83bc3468c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"688d46a8d82a369f72139cc83bc3468c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"688d46a8d82a369f72139cc83bc3468c"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.649004,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"688d46a8d82a369f72139cc83bc3468c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"688d46a8d82a369f72139cc83bc3468c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.660643339Z"}]},"request_id":"b0e9b1e1-bb80-486d-b6c3-7135524f71ec","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.244981} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"688d46a8d82a369f72139cc83bc3468c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"688d46a8d82a369f72139cc83bc3468c"} gateway-1 | {"time_local":"07/May/2025:16:13:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f? 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":"688d46a8d82a369f72139cc83bc3468c"} device-1 | {"level":"info","message":"GET /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f? 200 10ms","method":"GET","requestID":"688d46a8d82a369f72139cc83bc3468c","responseTime":10,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8","level":"info","message":"auth send jwt","requestID":"dbafcd80b751c21db756a3294c6c161e"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dbafcd80b751c21db756a3294c6c161e","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"dbafcd80b751c21db756a3294c6c161e"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.998088,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"dbafcd80b751c21db756a3294c6c161e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"dbafcd80b751c21db756a3294c6c161e","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.760449365Z"}]},"request_id":"c1fef772-b0e1-40b2-b9f6-e04261fbfae4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.2851403} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"dbafcd80b751c21db756a3294c6c161e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"dbafcd80b751c21db756a3294c6c161e"} device-1 | {"level":"info","message":"GET /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662? 200 35ms","method":"GET","requestID":"dbafcd80b751c21db756a3294c6c161e","responseTime":35,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662?"} gateway-1 | {"time_local":"07/May/2025:16:13:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dbafcd80b751c21db756a3294c6c161e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8","level":"info","message":"auth send jwt","requestID":"534393061d857b378379f13a52dac9e9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"534393061d857b378379f13a52dac9e9","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"534393061d857b378379f13a52dac9e9"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.700139,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"534393061d857b378379f13a52dac9e9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"534393061d857b378379f13a52dac9e9","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Attempting to run experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Attempting to book experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully booked experiment","requestID":"534393061d857b378379f13a52dac9e9"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"26081730-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"26083e40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.863537,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"26081730-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"26081730-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.176633,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"26083e40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"26083e40-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.660643339Z"}]},"request_id":"2cf3eeb3-2fd8-467e-846c-a126ab38544a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.379355} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"26081730-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.760449365Z"}]},"request_id":"0d461c84-326b-42e6-bd41-b28529a2bcfa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.3829868} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"26081730-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f? 200 36ms","method":"GET","requestID":"26081730-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"26083e40-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"26083e40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662? 200 38ms","method":"GET","requestID":"26083e40-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Setting up experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully locked booking for experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Attempting to update booking for experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully updated booking for experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully set up experiment","requestID":"534393061d857b378379f13a52dac9e9"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"261c6280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"261c8990-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully running experiment","requestID":"534393061d857b378379f13a52dac9e9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"261cd7b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.723836,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"261c6280-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"261c6280-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669038,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"261c8990-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"261c8990-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"55af4222-c36d-4d45-b5ea-894523f29009","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.490994} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.668216,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"261cd7b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","rebac_allow":false,"scope_allow":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":"261cd7b0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.660643339Z"}]},"request_id":"0dda68ed-4ded-47d5-9cbe-d3e2bac7d7df","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.49297} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"261cd7b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling 200 13ms","method":"POST","requestID":"261cd7b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 30ms","method":"POST","requestID":"261c6280-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.760449365Z"}]},"request_id":"07005077-0198-452c-a453-99e7dd4c2c21","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.4962814} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"261c8990-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26231940-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"261c6280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f? 200 46ms","method":"GET","requestID":"261c6280-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"261c8990-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662? 200 46ms","method":"GET","requestID":"261c8990-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662?"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe8c5475c-ef31-4952-8607-ed090833f977#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe8c5475c-ef31-4952-8607-ed090833f977","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c31c1871-aeea-4f08-b18e-66d3274cc13c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.5292246} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2623dc90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c3a2d223-c9be-47ad-a75d-85b4b7190174","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.5294464} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"09373e09-1276-4fa4-9590-b6f22b3b7c04","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.5295024} authorization-1 | {"level":"info","message":"POST /relations/update 200 46ms","method":"POST","requestID":"534393061d857b378379f13a52dac9e9","responseTime":46,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.444506,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"26231940-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","rebac_allow":false,"scope_allow":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":"26231940-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26231940-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling 200 11ms","method":"POST","requestID":"26231940-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0bb56b65-a470-4d85-a153-03726cc96806","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.5362585} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.774583,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"534393061d857b378379f13a52dac9e9"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2623dc90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","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":"07/May/2025:16:13:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.249","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"534393061d857b378379f13a52dac9e9"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"2623dc90-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /experiments? 201 246ms","method":"POST","requestID":"534393061d857b378379f13a52dac9e9","responseTime":246,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2623dc90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling 200 12ms","method":"POST","requestID":"2623dc90-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8","level":"info","message":"auth send jwt","requestID":"ebd3b38d2998e011ac27d28556c999b6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ebd3b38d2998e011ac27d28556c999b6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2625ff70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ebd3b38d2998e011ac27d28556c999b6"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.547058,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ebd3b38d2998e011ac27d28556c999b6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"ebd3b38d2998e011ac27d28556c999b6","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b54202c2-7a43-4c39-b8b5-fc7f8fd9463c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.5726008} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.545811,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2625ff70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","rebac_allow":false,"scope_allow":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":"2625ff70-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2625ff70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling 200 34ms","method":"POST","requestID":"2625ff70-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.660643339Z"}]},"request_id":"014bbb73-182a-4eb2-bdbb-3eab8e10b760","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.5786316} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Building connection plan","requestID":"534393061d857b378379f13a52dac9e9"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"f310fd91-4cde-48bd-b9fc-b381ec3bef4c"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"f9fbcd53-5a11-429b-9183-56fa0aae66c8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"33ef7b1e-edb3-47cf-9b64-3ff7901e721a"}]},"level":"info","message":"Built pairwise service configurations","requestID":"534393061d857b378379f13a52dac9e9"} 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/4b37111e-e36e-4c2b-bb21-5fa6f766953f"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"534393061d857b378379f13a52dac9e9"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ebd3b38d2998e011ac27d28556c999b6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ebd3b38d2998e011ac27d28556c999b6"} gateway-1 | {"time_local":"07/May/2025:16:13:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ebd3b38d2998e011ac27d28556c999b6"} device-1 | {"level":"info","message":"GET /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f? 200 40ms","method":"GET","requestID":"ebd3b38d2998e011ac27d28556c999b6","responseTime":40,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f?"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.910461,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8","level":"info","message":"auth send jwt","requestID":"a22a7b0edb833a8d5b71b4807ab8e929"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a22a7b0edb833a8d5b71b4807ab8e929","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a22a7b0edb833a8d5b71b4807ab8e929"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651744,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a22a7b0edb833a8d5b71b4807ab8e929","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634381,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4MX0.D1taR4vBPDnfjmUZQW8Oo0l0nVfPNrSDjgm1SVfMJF8"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"a22a7b0edb833a8d5b71b4807ab8e929","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"214f7134-544e-4cd1-bafb-b4b7602f7ba2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.6209176} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4775266-c112-407a-82f6-2e22a39fc901","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.6212382} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:12:58.760449365Z"}]},"request_id":"765ac42e-ef26-455d-86b4-494ed1ecbdf0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.6220002} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"a22a7b0edb833a8d5b71b4807ab8e929","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a22a7b0edb833a8d5b71b4807ab8e929"} device-1 | {"level":"info","message":"GET /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662? 200 55ms","method":"GET","requestID":"a22a7b0edb833a8d5b71b4807ab8e929","responseTime":55,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662?"} gateway-1 | {"time_local":"07/May/2025:16:13:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a22a7b0edb833a8d5b71b4807ab8e929"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3'","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3'","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae"} 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":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae","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":"262bcbd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3","device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","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} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"534393061d857b378379f13a52dac9e9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26406540-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eb4147e7-9a35-4ce6-a0df-49ef657bc902","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.7208197} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.342517,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"26406540-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","rebac_allow":false,"scope_allow":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":"26406540-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26406540-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling 200 13ms","method":"POST","requestID":"26406540-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2642af30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"content":{"sdp":"v=0\r\no=- 925224836402833042 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:5qRi\r\na=ice-pwd:OlObtBnzw1K7TlMyzUKhjTAW\r\na=ice-options:trickle\r\na=fingerprint:sha-256 8D:2A:4F:12:9A:47:D6:8C:6D:37:E5:EE:31:D3:9B:C0:F2:5C:A9:C8:3D:52:BF:81:8B:C0:E3:8C:17:91:B7:EE\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b794173-f665-4c5f-ac75-539e03576e2e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634381.7360709} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.401558,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2642af30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","rebac_allow":false,"scope_allow":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":"2642af30-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2642af30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling 200 36ms","method":"POST","requestID":"2642af30-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling"} device-1 | {"device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"64d948e0-4764-49de-a4dc-e8bb38fc8ba3","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/64d948e0-4764-49de-a4dc-e8bb38fc8ba3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"64d948e0-4764-49de-a4dc-e8bb38fc8ba3","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"365fb80153e3f99a80d620a87cd6e2cf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"365fb80153e3f99a80d620a87cd6e2cf","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/4b37111e-e36e-4c2b-bb21-5fa6f766953f"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3"}}},"level":"info","message":"received a callback","requestID":"365fb80153e3f99a80d620a87cd6e2cf"} device-1 | {"content":{"candidate":"candidate:604055341 1 udp 2113937151 996bc069-b56b-40af-84ce-81ae661a2417.local 47938 typ host generation 0 ufrag 5qRi network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","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":"365fb80153e3f99a80d620a87cd6e2cf","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"365fb80153e3f99a80d620a87cd6e2cf"} device-1 | {"data":{"peerconnection":"64d948e0-4764-49de-a4dc-e8bb38fc8ba3","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"64d948e0-4764-49de-a4dc-e8bb38fc8ba3","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/64d948e0-4764-49de-a4dc-e8bb38fc8ba3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"64d948e0-4764-49de-a4dc-e8bb38fc8ba3","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a18a78c991bf26bab22fb47a5749eb90","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a18a78c991bf26bab22fb47a5749eb90","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/4b37111e-e36e-4c2b-bb21-5fa6f766953f"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3"}}},"level":"info","message":"received a callback","requestID":"a18a78c991bf26bab22fb47a5749eb90"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"277c67b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F64d948e0-4764-49de-a4dc-e8bb38fc8ba3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91698e72-dd45-48c2-ab9b-d1195029b0f1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634383.792339} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.070672,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"277c67b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3","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":"277c67b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"277c67b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3 200 10ms","method":"GET","requestID":"277c67b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 57ms","method":"POST","requestID":"a18a78c991bf26bab22fb47a5749eb90","responseTime":57,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"278456f0-2b5e-11f0-8e1f-5304d0938eae"} gateway-1 | {"time_local":"07/May/2025:16:13:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch","requestID":"a18a78c991bf26bab22fb47a5749eb90"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15f41a8a-134e-494b-899f-1bbf1b1aa0ea","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634383.8448665} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.904846,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"278456f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","rebac_allow":false,"scope_allow":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":"278456f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"278456f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling 200 37ms","method":"POST","requestID":"278456f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"278a7170-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"44697ee8-e9c6-4878-a924-9c4f0de1ee38","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634383.8845816} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.695677,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"278a7170-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","rebac_allow":false,"scope_allow":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":"278a7170-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"278a7170-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling 200 14ms","method":"POST","requestID":"278a7170-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8","level":"info","message":"auth send jwt","requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e8c5475c-ef31-4952-8607-ed090833f977","requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.734735,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634384,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/e8c5475c-ef31-4952-8607-ed090833f977","requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f"} gateway-1 | {"time_local":"07/May/2025:16:13:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e8c5475c-ef31-4952-8607-ed090833f977 HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f"} experiment-1 | {"level":"info","message":"GET /experiments/e8c5475c-ef31-4952-8607-ed090833f977 200 11ms","method":"GET","requestID":"442dad3d7e5ceedcefce7ecbe82b7e7f","responseTime":11,"status":200,"url":"/experiments/e8c5475c-ef31-4952-8607-ed090833f977"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8","level":"info","message":"auth send jwt","requestID":"d3f265afb83e93fcd0ec5d254f78d213"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d3f265afb83e93fcd0ec5d254f78d213","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e8c5475c-ef31-4952-8607-ed090833f977","requestID":"d3f265afb83e93fcd0ec5d254f78d213"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.006124,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d3f265afb83e93fcd0ec5d254f78d213","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634384,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"d3f265afb83e93fcd0ec5d254f78d213","responseTime":28,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Attempting to finish experiment","requestID":"d3f265afb83e93fcd0ec5d254f78d213"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"27b63c60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.752931,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"27b63c60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634384,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"27b63c60-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3","device":"69219485-eeb9-4d7e-8c5e-ff4633eaa662","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4b37111e-e36e-4c2b-bb21-5fa6f766953f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/64d948e0-4764-49de-a4dc-e8bb38fc8ba3' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"64d948e0-4764-49de-a4dc-e8bb38fc8ba3","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F64d948e0-4764-49de-a4dc-e8bb38fc8ba3': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F64d948e0-4764-49de-a4dc-e8bb38fc8ba3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"1b9665f6-499c-4d18-a853-f6ae9030c66f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.1810393} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e89d505-d48c-4fb1-92c9-7432be956df3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.1812618} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8d32cc66ba3a9cf5b1a8e590b93bc49e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8d32cc66ba3a9cf5b1a8e590b93bc49e","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/4b37111e-e36e-4c2b-bb21-5fa6f766953f"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3"}}},"level":"info","message":"received a callback","requestID":"8d32cc66ba3a9cf5b1a8e590b93bc49e"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"27b63c60-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9142ec66b6c3e7ed05b9f4e67cb794f3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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-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/4b37111e-e36e-4c2b-bb21-5fa6f766953f"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3"}}},"level":"info","message":"received a callback","requestID":"9142ec66b6c3e7ed05b9f4e67cb794f3"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"9142ec66b6c3e7ed05b9f4e67cb794f3","responseTime":25,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"27b63c60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3 204 97ms","method":"DELETE","requestID":"27b63c60-2b5e-11f0-8e1f-5304d0938eae","responseTime":97,"status":204,"url":"/peerconnections/64d948e0-4764-49de-a4dc-e8bb38fc8ba3"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e8c5475c-ef31-4952-8607-ed090833f977"},"level":"info","message":"Successfully finished experiment","requestID":"d3f265afb83e93fcd0ec5d254f78d213"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"27c7a180-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b37111e-e36e-4c2b-bb21-5fa6f766953f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"555d20e2-f260-4f08-b3df-d6d461da1af3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.308959} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.607159,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"27c7a180-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f","object_type":"device","rebac_allow":false,"scope_allow":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":"27c7a180-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"27c7a180-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling 200 33ms","method":"POST","requestID":"27c7a180-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/4b37111e-e36e-4c2b-bb21-5fa6f766953f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"27ccf8b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe8c5475c-ef31-4952-8607-ed090833f977': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe8c5475c-ef31-4952-8607-ed090833f977","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"7c9a6c61-1b3e-4c83-af38-95138eda9b18","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.3166795} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e2635c8-daf8-4b9c-bf9b-de4161888939","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.3170443} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"d3f265afb83e93fcd0ec5d254f78d213","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69219485-eeb9-4d7e-8c5e-ff4633eaa662","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bdf01af2-205d-490d-98a8-1129134b37db","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.321026} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.427536,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"27ccf8b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662","object_type":"device","rebac_allow":false,"scope_allow":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":"27ccf8b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"27ccf8b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling 200 10ms","method":"POST","requestID":"27ccf8b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e8c5475c-ef31-4952-8607-ed090833f977","requestID":"d3f265afb83e93fcd0ec5d254f78d213"} gateway-1 | {"time_local":"07/May/2025:16:13:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e8c5475c-ef31-4952-8607-ed090833f977 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.286","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d3f265afb83e93fcd0ec5d254f78d213"} experiment-1 | {"level":"info","message":"DELETE /experiments/e8c5475c-ef31-4952-8607-ed090833f977 204 283ms","method":"DELETE","requestID":"d3f265afb83e93fcd0ec5d254f78d213","responseTime":283,"status":204,"url":"/experiments/e8c5475c-ef31-4952-8607-ed090833f977"} gateway-1 | {"time_local":"07/May/2025:16:13:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2321","request_time":"4.517","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"289a35abb59f67dbbf3e8b0f75a02e4a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 235ms","method":"POST","requestID":"8d32cc66ba3a9cf5b1a8e590b93bc49e","responseTime":235,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.237","http_referrer":"","http_user_agent":"node-fetch","requestID":"8d32cc66ba3a9cf5b1a8e590b93bc49e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 209ms","method":"POST","requestID":"9142ec66b6c3e7ed05b9f4e67cb794f3","responseTime":209,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.237","http_referrer":"","http_user_agent":"node-fetch","requestID":"9142ec66b6c3e7ed05b9f4e67cb794f3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8","level":"info","message":"auth send jwt","requestID":"718a8f3a379e9a18d1e9877360cbceff"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"718a8f3a379e9a18d1e9877360cbceff","responseTime":4,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2527","request_time":"3.251","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ca0b5de5161b93063ecb7096d8f09893"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:04Z"} device-1 | {"level":"info","message":"postDevices called","requestID":"718a8f3a379e9a18d1e9877360cbceff"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.95996,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"718a8f3a379e9a18d1e9877360cbceff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634384,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"718a8f3a379e9a18d1e9877360cbceff","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/4b37111e-e36e-4c2b-bb21-5fa6f766953f' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d2674f17-21d8-44f0-a325-39f3fc358795","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.5028327} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"718a8f3a379e9a18d1e9877360cbceff","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/69219485-eeb9-4d7e-8c5e-ff4633eaa662' 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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"31159e60-0a6a-4e60-9408-a5b902717be9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.507993} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"718a8f3a379e9a18d1e9877360cbceff","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"a8cb834f-35cc-4d03-a6a5-98fb948177be","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.5167809} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e049966-a8b8-46a4-9d6c-06da8470dd1c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.516873} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"718a8f3a379e9a18d1e9877360cbceff","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.516740532Z"}]},"request_id":"15ee8f69-7e3c-4eca-ae8f-6f85ac516f9e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.5231147} gateway-1 | {"time_local":"07/May/2025:16:13:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"718a8f3a379e9a18d1e9877360cbceff"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"718a8f3a379e9a18d1e9877360cbceff"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"718a8f3a379e9a18d1e9877360cbceff","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"POST /devices? 201 96ms","method":"POST","requestID":"718a8f3a379e9a18d1e9877360cbceff","responseTime":96,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8","level":"info","message":"auth send jwt","requestID":"a9d36878be346f39696fccb2bff9ad66"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a9d36878be346f39696fccb2bff9ad66","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a9d36878be346f39696fccb2bff9ad66"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.773679,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a9d36878be346f39696fccb2bff9ad66","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634384,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NH0.BblXxd78gvIwmuGSPtfgDUD8KCPJQHPUGzDFwaes8I8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a9d36878be346f39696fccb2bff9ad66","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b5c7b7ce-23e9-4190-9f68-f60c9d0b4595","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.5658484} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a9d36878be346f39696fccb2bff9ad66","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a801ebb7-3a15-46e6-a5c9-454faf93b730","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.594656} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"a9d36878be346f39696fccb2bff9ad66","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"2a0863f8-e9e7-49b9-af78-0d6129314140","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.608146} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0730fdc3-6c57-4ee1-a36c-286bbc414632","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.6082635} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"a9d36878be346f39696fccb2bff9ad66","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.608121151Z"}]},"request_id":"8e3ab3a0-a496-4e56-ad63-51002be53f33","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634384.6127403} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a9d36878be346f39696fccb2bff9ad66","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a9d36878be346f39696fccb2bff9ad66"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"a9d36878be346f39696fccb2bff9ad66","responseTime":63,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.067","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9d36878be346f39696fccb2bff9ad66"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8","level":"info","message":"auth send jwt","requestID":"c56cc88a8f5505fe355bf1056df09cbe"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c56cc88a8f5505fe355bf1056df09cbe","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"c56cc88a8f5505fe355bf1056df09cbe"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8","level":"info","message":"auth send jwt","requestID":"9404aeeb3d403d078a1505d908086468"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.89265,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9404aeeb3d403d078a1505d908086468","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c56cc88a8f5505fe355bf1056df09cbe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"9404aeeb3d403d078a1505d908086468"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c56cc88a8f5505fe355bf1056df09cbe","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644931,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9404aeeb3d403d078a1505d908086468","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9404aeeb3d403d078a1505d908086468","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.516740532Z"}]},"request_id":"3593ccc9-3726-4461-ac36-7c4b65068743","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.5739355} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c56cc88a8f5505fe355bf1056df09cbe","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc8309ae-ab0a-43b6-9647-fdc07a4ddbf0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.6044588} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"c56cc88a8f5505fe355bf1056df09cbe","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.608121151Z"}]},"request_id":"80414a26-4185-4be0-a688-738d0ab540f2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.6056812} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"9404aeeb3d403d078a1505d908086468","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02b6e3aa-525b-4332-a04c-9bc87c5bcddb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.6124191} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"9404aeeb3d403d078a1505d908086468","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.516740532Z"}]},"request_id":"393062db-5f28-438f-96dd-493a239fc19b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.6568866} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c56cc88a8f5505fe355bf1056df09cbe","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"c56cc88a8f5505fe355bf1056df09cbe"} gateway-1 | {"time_local":"07/May/2025:16:13:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.100","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"c56cc88a8f5505fe355bf1056df09cbe"} device-1 | {"level":"info","message":"PATCH /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa 200 97ms","method":"PATCH","requestID":"c56cc88a8f5505fe355bf1056df09cbe","responseTime":97,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8","level":"info","message":"auth send jwt","requestID":"1190dddf5c78fd925ee96b22124caaa7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1190dddf5c78fd925ee96b22124caaa7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"1190dddf5c78fd925ee96b22124caaa7"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.660329,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1190dddf5c78fd925ee96b22124caaa7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1190dddf5c78fd925ee96b22124caaa7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.608121151Z"}]},"request_id":"252204ec-f548-4fbb-ba8f-981351164bb5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.667673} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9404aeeb3d403d078a1505d908086468","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"9404aeeb3d403d078a1505d908086468"} gateway-1 | {"time_local":"07/May/2025:16:13:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/05aaa082-12e3-4f69-bbee-de56f3273710 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.108","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"9404aeeb3d403d078a1505d908086468"} device-1 | {"level":"info","message":"PATCH /devices/05aaa082-12e3-4f69-bbee-de56f3273710 200 104ms","method":"PATCH","requestID":"9404aeeb3d403d078a1505d908086468","responseTime":104,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8","level":"info","message":"auth send jwt","requestID":"e0ba2dced5de01ba821b06205517081a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e0ba2dced5de01ba821b06205517081a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"e0ba2dced5de01ba821b06205517081a"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696023,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e0ba2dced5de01ba821b06205517081a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e0ba2dced5de01ba821b06205517081a","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"1190dddf5c78fd925ee96b22124caaa7"} gateway-1 | {"time_local":"07/May/2025:16:13:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"1190dddf5c78fd925ee96b22124caaa7"} device-1 | {"level":"info","message":"POST /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/websocket 200 44ms","method":"POST","requestID":"1190dddf5c78fd925ee96b22124caaa7","responseTime":44,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"e0ba2dced5de01ba821b06205517081a"} gateway-1 | {"time_local":"07/May/2025:16:13:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/05aaa082-12e3-4f69-bbee-de56f3273710/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"e0ba2dced5de01ba821b06205517081a"} device-1 | {"level":"info","message":"POST /devices/05aaa082-12e3-4f69-bbee-de56f3273710/websocket 200 41ms","method":"POST","requestID":"e0ba2dced5de01ba821b06205517081a","responseTime":41,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8","level":"info","message":"auth send jwt","requestID":"97f0b76f87620d8f44a88e26a2a07435"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"97f0b76f87620d8f44a88e26a2a07435","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"97f0b76f87620d8f44a88e26a2a07435"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.713413,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"97f0b76f87620d8f44a88e26a2a07435","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"97f0b76f87620d8f44a88e26a2a07435","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.516740532Z"}]},"request_id":"1db350d3-68ea-4acb-a9a3-74ac57a6c9b2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.7676518} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"97f0b76f87620d8f44a88e26a2a07435","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"97f0b76f87620d8f44a88e26a2a07435"} gateway-1 | {"time_local":"07/May/2025:16:13:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa? 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":"97f0b76f87620d8f44a88e26a2a07435"} device-1 | {"level":"info","message":"GET /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa? 200 34ms","method":"GET","requestID":"97f0b76f87620d8f44a88e26a2a07435","responseTime":34,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8","level":"info","message":"auth send jwt","requestID":"d6d43465f954d9c83b71663c59b7e230"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d6d43465f954d9c83b71663c59b7e230","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d6d43465f954d9c83b71663c59b7e230"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65974,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d6d43465f954d9c83b71663c59b7e230","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d6d43465f954d9c83b71663c59b7e230","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.608121151Z"}]},"request_id":"fe6b372d-8794-4511-bf49-a32ce1b5d501","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.8054194} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d6d43465f954d9c83b71663c59b7e230","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d6d43465f954d9c83b71663c59b7e230"} gateway-1 | {"time_local":"07/May/2025:16:13:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/05aaa082-12e3-4f69-bbee-de56f3273710? 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":"d6d43465f954d9c83b71663c59b7e230"} device-1 | {"level":"info","message":"GET /devices/05aaa082-12e3-4f69-bbee-de56f3273710? 200 9ms","method":"GET","requestID":"d6d43465f954d9c83b71663c59b7e230","responseTime":9,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8","level":"info","message":"auth send jwt","requestID":"009cbd488dafc09c846516351a51ffe5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"009cbd488dafc09c846516351a51ffe5","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"009cbd488dafc09c846516351a51ffe5"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.631308,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"009cbd488dafc09c846516351a51ffe5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"009cbd488dafc09c846516351a51ffe5","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Attempting to run experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Attempting to book experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully booked experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28be84a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28beabb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667037,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28be84a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"28be84a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.652503,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28beabb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"28beabb0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.516740532Z"}]},"request_id":"231f7f01-9f32-4717-9ce4-7abbc94aee49","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.9067044} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"28be84a0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.608121151Z"}]},"request_id":"96d6f889-007b-4303-a6cb-77d60dcb2af8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634385.9075058} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"28beabb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28be84a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa? 200 13ms","method":"GET","requestID":"28be84a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28beabb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/05aaa082-12e3-4f69-bbee-de56f3273710? 200 12ms","method":"GET","requestID":"28beabb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Setting up experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully locked booking for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Attempting to update booking for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully updated booking for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully set up experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28cdedf0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"28ce1500-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28ce3c10-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully running experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"client_addr":"127.0.0.1:36536","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.627853,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.247961,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28ce1500-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"28ce1500-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28cdedf0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"28cdedf0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"409b0419-d9d3-4f42-87f7-385c1e4ec226","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.010282} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.394997,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28ce3c10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","rebac_allow":false,"scope_allow":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":"28ce3c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28ce3c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling 200 37ms","method":"POST","requestID":"28ce3c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.516740532Z"}]},"request_id":"d7b6187f-c6d8-45a8-9bcd-825fdefff578","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.035114} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"28cdedf0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.608121151Z"}]},"request_id":"8f3b878f-49f2-490f-b9de-40f598e365f0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.0390475} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28d45690-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"28ce1500-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a67890-709e-4a58-bd47-852c86409b78#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a67890-709e-4a58-bd47-852c86409b78","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"07241732-c990-4d90-9aef-7cae3347e11d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.042173} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"965d45b4-fbe0-49d2-8061-50ef66d966e9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.0424843} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28cdedf0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa? 200 45ms","method":"GET","requestID":"28cdedf0-2b5e-11f0-8e1f-5304d0938eae","responseTime":45,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"28ce1500-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"009cbd488dafc09c846516351a51ffe5","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} device-1 | {"level":"info","message":"GET /devices/05aaa082-12e3-4f69-bbee-de56f3273710? 200 46ms","method":"GET","requestID":"28ce1500-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"248f161f-a45f-49aa-baa2-869f5213c038","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.0468712} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.883564,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28d45690-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","rebac_allow":false,"scope_allow":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":"28d45690-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28d5b620-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28d45690-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling 200 11ms","method":"POST","requestID":"28d45690-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"009cbd488dafc09c846516351a51ffe5"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} gateway-1 | {"time_local":"07/May/2025:16:13:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"785","request_time":"0.244","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"level":"info","message":"POST /experiments? 201 239ms","method":"POST","requestID":"009cbd488dafc09c846516351a51ffe5","responseTime":239,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f6318a16-3d67-4c94-a1f9-8b8d81146575","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.0549314} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.942891,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28d5b620-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","rebac_allow":false,"scope_allow":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":"28d5b620-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4Nn0.23XyYUiJwNp0JZzaQ_XlZgMKDDX1cNgmj3YSddvZxj4","level":"info","message":"auth send jwt","requestID":"03021da40f01e4c3c975ef37ecb647e8"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"03021da40f01e4c3c975ef37ecb647e8","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"03021da40f01e4c3c975ef37ecb647e8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28d5b620-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling 200 35ms","method":"POST","requestID":"28d5b620-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.890091,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"03021da40f01e4c3c975ef37ecb647e8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634386,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4Nn0.23XyYUiJwNp0JZzaQ_XlZgMKDDX1cNgmj3YSddvZxj4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28db5b70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"03021da40f01e4c3c975ef37ecb647e8","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"55134811-8cb5-431a-a197-1f6307b14be6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.0920994} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.516740532Z"}]},"request_id":"a0d98361-c40c-487c-927f-706f65b61e27","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.0921419} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"03021da40f01e4c3c975ef37ecb647e8","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.658137,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28db5b70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","rebac_allow":false,"scope_allow":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":"28db5b70-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"03021da40f01e4c3c975ef37ecb647e8"} gateway-1 | {"time_local":"07/May/2025:16:13:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"03021da40f01e4c3c975ef37ecb647e8"} device-1 | {"level":"info","message":"GET /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa? 200 13ms","method":"GET","requestID":"03021da40f01e4c3c975ef37ecb647e8","responseTime":13,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28db5b70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling 200 10ms","method":"POST","requestID":"28db5b70-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Building connection plan","requestID":"009cbd488dafc09c846516351a51ffe5"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"bb0eeb7b-1d4b-43f5-a988-534a8eb1ace9"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"856d8ea5-ed54-4931-815a-9f8ccbb8c476"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"fadbc966-796f-4750-a626-12573c4cd89d"}]},"level":"info","message":"Built pairwise service configurations","requestID":"009cbd488dafc09c846516351a51ffe5"} 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/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"009cbd488dafc09c846516351a51ffe5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4Nn0.23XyYUiJwNp0JZzaQ_XlZgMKDDX1cNgmj3YSddvZxj4","level":"info","message":"auth send jwt","requestID":"bbd204efad0486cb62a6d73ef7960d33"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bbd204efad0486cb62a6d73ef7960d33","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"bbd204efad0486cb62a6d73ef7960d33"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"client_addr":"127.0.0.1:59552","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.622749,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634385,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4NX0.jQ6NBXk562hmHWqghZrsGAVFKZGOmxsDFbrXJ4k07C8"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.751198,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bbd204efad0486cb62a6d73ef7960d33","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634386,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4Nn0.23XyYUiJwNp0JZzaQ_XlZgMKDDX1cNgmj3YSddvZxj4"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"bbd204efad0486cb62a6d73ef7960d33","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:04.608121151Z"}]},"request_id":"6b9cddfb-abab-4119-bb93-4a59189554d7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.1350327} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bbd204efad0486cb62a6d73ef7960d33","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"bbd204efad0486cb62a6d73ef7960d33"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"5a1c4ba8-b26b-4233-a233-32895e97b523","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.1392767} device-1 | {"level":"info","message":"GET /devices/05aaa082-12e3-4f69-bbee-de56f3273710? 200 38ms","method":"GET","requestID":"bbd204efad0486cb62a6d73ef7960d33","responseTime":38,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710?"} gateway-1 | {"time_local":"07/May/2025:16:13:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/05aaa082-12e3-4f69-bbee-de56f3273710? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bbd204efad0486cb62a6d73ef7960d33"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"55f1c1cb-f93c-4aa0-9b11-f069113c4688","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.1395776} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd'","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd'","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 85ms","method":"POST","requestID":"28dd5740-2b5e-11f0-8e1f-5304d0938eae","responseTime":85,"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":"28dd5740-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"009cbd488dafc09c846516351a51ffe5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28f265e0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a50c4086-c6b8-4437-bc27-20aac509173f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.2433057} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.281247,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28f265e0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","rebac_allow":false,"scope_allow":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":"28f265e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28f265e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling 200 9ms","method":"POST","requestID":"28f265e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28f7bd10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2cfa5aad-70f6-46d4-81fd-85d54f55d60e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634386.2777903} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.363345,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"28f7bd10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","rebac_allow":false,"scope_allow":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":"28f7bd10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28f7bd10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling 200 8ms","method":"POST","requestID":"28f7bd10-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling"} device-1 | {"device":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c46e7bcf-b116-443d-8921-21a805a64bbd","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c46e7bcf-b116-443d-8921-21a805a64bbd","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/c46e7bcf-b116-443d-8921-21a805a64bbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c46e7bcf-b116-443d-8921-21a805a64bbd","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1ed1d7fba817c0f4ac980d8577bfa69b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1ed1d7fba817c0f4ac980d8577bfa69b","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/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd"}}},"level":"info","message":"received a callback","requestID":"1ed1d7fba817c0f4ac980d8577bfa69b"} device-1 | {"device":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"1ed1d7fba817c0f4ac980d8577bfa69b","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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":"1ed1d7fba817c0f4ac980d8577bfa69b"} device-1 | {"data":{"peerconnection":"c46e7bcf-b116-443d-8921-21a805a64bbd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c46e7bcf-b116-443d-8921-21a805a64bbd","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/c46e7bcf-b116-443d-8921-21a805a64bbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c46e7bcf-b116-443d-8921-21a805a64bbd","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5564f0b8b70d691a253351cd3d4d3435","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5564f0b8b70d691a253351cd3d4d3435","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/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd"}}},"level":"info","message":"received a callback","requestID":"5564f0b8b70d691a253351cd3d4d3435"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2a32fc30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc46e7bcf-b116-443d-8921-21a805a64bbd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e270b6d-3825-4036-958a-4618d8ea2033","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.343721} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.533544,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2a32fc30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd","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":"2a32fc30-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2a32fc30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd 200 9ms","method":"GET","requestID":"2a32fc30-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a3a2820-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 75ms","method":"POST","requestID":"5564f0b8b70d691a253351cd3d4d3435","responseTime":75,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.079","http_referrer":"","http_user_agent":"node-fetch","requestID":"5564f0b8b70d691a253351cd3d4d3435"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"02198e38-d839-48a1-a38e-6bddcb03d50d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.3907602} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.354619,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2a3a2820-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","rebac_allow":false,"scope_allow":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":"2a3a2820-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a3a2820-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling 200 9ms","method":"POST","requestID":"2a3a2820-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a3bfce0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3c17d00-5868-4a27-ba65-d79fc5aa48cb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.4030097} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.546395,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2a3bfce0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","rebac_allow":false,"scope_allow":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":"2a3bfce0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a3bfce0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling 200 9ms","method":"POST","requestID":"2a3bfce0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OH0.B3zOdf4SlTmkbBQr0qgnnK28J9cdbE39FXPQE4ERrXA","level":"info","message":"auth send jwt","requestID":"351f5cb6bded4e3562ca4716bc1710f7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"351f5cb6bded4e3562ca4716bc1710f7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/91a67890-709e-4a58-bd47-852c86409b78","requestID":"351f5cb6bded4e3562ca4716bc1710f7"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.680183,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"351f5cb6bded4e3562ca4716bc1710f7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634388,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OH0.B3zOdf4SlTmkbBQr0qgnnK28J9cdbE39FXPQE4ERrXA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"351f5cb6bded4e3562ca4716bc1710f7","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/91a67890-709e-4a58-bd47-852c86409b78","requestID":"351f5cb6bded4e3562ca4716bc1710f7"} experiment-1 | {"level":"info","message":"GET /experiments/91a67890-709e-4a58-bd47-852c86409b78 200 35ms","method":"GET","requestID":"351f5cb6bded4e3562ca4716bc1710f7","responseTime":35,"status":200,"url":"/experiments/91a67890-709e-4a58-bd47-852c86409b78"} gateway-1 | {"time_local":"07/May/2025:16:13:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/91a67890-709e-4a58-bd47-852c86409b78 HTTP/1.1","status": "200","body_bytes_sent":"858","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"351f5cb6bded4e3562ca4716bc1710f7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OH0.B3zOdf4SlTmkbBQr0qgnnK28J9cdbE39FXPQE4ERrXA","level":"info","message":"auth send jwt","requestID":"0508f9fbffeb1b98767b6bb326c0492e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0508f9fbffeb1b98767b6bb326c0492e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/91a67890-709e-4a58-bd47-852c86409b78","requestID":"0508f9fbffeb1b98767b6bb326c0492e"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.669694,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0508f9fbffeb1b98767b6bb326c0492e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634388,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OH0.B3zOdf4SlTmkbBQr0qgnnK28J9cdbE39FXPQE4ERrXA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0508f9fbffeb1b98767b6bb326c0492e","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Attempting to finish experiment","requestID":"0508f9fbffeb1b98767b6bb326c0492e"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2a613820-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.721702,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2a613820-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634388,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OH0.B3zOdf4SlTmkbBQr0qgnnK28J9cdbE39FXPQE4ERrXA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2a613820-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"05aaa082-12e3-4f69-bbee-de56f3273710","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/c46e7bcf-b116-443d-8921-21a805a64bbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c46e7bcf-b116-443d-8921-21a805a64bbd","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc46e7bcf-b116-443d-8921-21a805a64bbd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc46e7bcf-b116-443d-8921-21a805a64bbd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"8549452e-7ac8-4240-9644-b941fa5d6897","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.6799166} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a16b6728ec389616c4faafbf3657bae0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a5a2ef4e-c967-4b3e-b196-1e0cec7ec49a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.6801043} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"a16b6728ec389616c4faafbf3657bae0","responseTime":0,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bb0d7b9d816c7f4a0543ec218c980aac","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"bb0d7b9d816c7f4a0543ec218c980aac","responseTime":0,"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/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd"}}},"level":"info","message":"received a callback","requestID":"a16b6728ec389616c4faafbf3657bae0"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"2a613820-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/relations/update"} 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/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd"}}},"level":"info","message":"received a callback","requestID":"bb0d7b9d816c7f4a0543ec218c980aac"} device-1 | {"data":{"peerconnection":"c46e7bcf-b116-443d-8921-21a805a64bbd","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2a613820-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd 204 97ms","method":"DELETE","requestID":"2a613820-2b5e-11f0-8e1f-5304d0938eae","responseTime":97,"status":204,"url":"/peerconnections/c46e7bcf-b116-443d-8921-21a805a64bbd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/91a67890-709e-4a58-bd47-852c86409b78"},"level":"info","message":"Successfully finished experiment","requestID":"0508f9fbffeb1b98767b6bb326c0492e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a7694e0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b19e6bd7-db5a-49bc-a1c5-fa7758a5ee68","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.7863007} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.186201,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2a7694e0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa","object_type":"device","rebac_allow":false,"scope_allow":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":"2a7694e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a7694e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling 200 8ms","method":"POST","requestID":"2a7694e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a781b80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a67890-709e-4a58-bd47-852c86409b78': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F91a67890-709e-4a58-bd47-852c86409b78","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"122503f6-7675-4575-b6c1-25f0dd4467e4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.7927248} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e0ff8a8-efc0-4e98-8734-0db1e20849e6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.8172529} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"0508f9fbffeb1b98767b6bb326c0492e","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05aaa082-12e3-4f69-bbee-de56f3273710","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b51245ab-f8ec-4377-b05c-4b6df465ffab","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.8212216} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.483201,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2a781b80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/05aaa082-12e3-4f69-bbee-de56f3273710","object_type":"device","rebac_allow":false,"scope_allow":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":"2a781b80-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a781b80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling 200 34ms","method":"POST","requestID":"2a781b80-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/05aaa082-12e3-4f69-bbee-de56f3273710/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/91a67890-709e-4a58-bd47-852c86409b78","requestID":"0508f9fbffeb1b98767b6bb326c0492e"} gateway-1 | {"time_local":"07/May/2025:16:13:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/91a67890-709e-4a58-bd47-852c86409b78 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.260","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0508f9fbffeb1b98767b6bb326c0492e"} experiment-1 | {"level":"info","message":"DELETE /experiments/91a67890-709e-4a58-bd47-852c86409b78 204 257ms","method":"DELETE","requestID":"0508f9fbffeb1b98767b6bb326c0492e","responseTime":257,"status":204,"url":"/experiments/91a67890-709e-4a58-bd47-852c86409b78"} gateway-1 | {"time_local":"07/May/2025:16:13:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2532","request_time":"3.179","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"088fd76ceb13252166356f5cfccff83e"} gateway-1 | {"time_local":"07/May/2025:16:13:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2532","request_time":"3.169","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"8a906b1d5ec90ab2a98d94bc1cb9f019"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 233ms","method":"POST","requestID":"a16b6728ec389616c4faafbf3657bae0","responseTime":233,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.236","http_referrer":"","http_user_agent":"node-fetch","requestID":"a16b6728ec389616c4faafbf3657bae0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 232ms","method":"POST","requestID":"bb0d7b9d816c7f4a0543ec218c980aac","responseTime":232,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.236","http_referrer":"","http_user_agent":"node-fetch","requestID":"bb0d7b9d816c7f4a0543ec218c980aac"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OH0.B3zOdf4SlTmkbBQr0qgnnK28J9cdbE39FXPQE4ERrXA","level":"info","message":"auth send jwt","requestID":"2e310083616c67c54bae71c5ab12e655"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2e310083616c67c54bae71c5ab12e655","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/dd6d73bd-aa95-4a1c-b9ed-e209d42b5cfa' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"2e310083616c67c54bae71c5ab12e655"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.166675,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e310083616c67c54bae71c5ab12e655","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634388,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OH0.B3zOdf4SlTmkbBQr0qgnnK28J9cdbE39FXPQE4ERrXA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2e310083616c67c54bae71c5ab12e655","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/05aaa082-12e3-4f69-bbee-de56f3273710' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dbbc3027-8407-40bc-9b78-829177e3d273","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.9372344} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2e310083616c67c54bae71c5ab12e655","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e4ec99e5-9a11-44f6-84b6-21105625ff33","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.9667485} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"2e310083616c67c54bae71c5ab12e655","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"747b933b-0b0b-4abc-889f-0d8749dff156","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.9802628} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d3e15fc8-a2a3-4141-9dfc-2ba7aab0f758","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634388.9803987} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"2e310083616c67c54bae71c5ab12e655","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:08.980235169Z"}]},"request_id":"71bcd0be-e395-4e47-8e77-4c21e1afdcb1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634389.010058} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"2e310083616c67c54bae71c5ab12e655","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2e310083616c67c54bae71c5ab12e655"} gateway-1 | {"time_local":"07/May/2025:16:13: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.098","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e310083616c67c54bae71c5ab12e655"} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"2e310083616c67c54bae71c5ab12e655","responseTime":93,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OX0.SjWuWrADJuCjzNWSH59QJbNGYdbbaV5QMHdkGG7oOVE","level":"info","message":"auth send jwt","requestID":"77aeb48f234ff94c7f37e8714e4e2097"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"77aeb48f234ff94c7f37e8714e4e2097","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"77aeb48f234ff94c7f37e8714e4e2097"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:09Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.794797,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"77aeb48f234ff94c7f37e8714e4e2097","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634389,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM4OX0.SjWuWrADJuCjzNWSH59QJbNGYdbbaV5QMHdkGG7oOVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"77aeb48f234ff94c7f37e8714e4e2097","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f97d1d84-6220-4f77-88be-51a6c95534d5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634389.0685875} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"77aeb48f234ff94c7f37e8714e4e2097","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4633dd06-e93d-48dc-8a51-aa4ed7a5df59","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634389.073772} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"77aeb48f234ff94c7f37e8714e4e2097","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"a97a0cce-48d1-40b7-83cf-797cd13a29c2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634389.1092296} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2134bad2-f1a6-436a-83d9-9112380eb793","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634389.1094854} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"77aeb48f234ff94c7f37e8714e4e2097","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:09.109208835Z"}]},"request_id":"d4549ee7-8160-444c-9a4a-ceb1e61251b6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634389.1139822} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"77aeb48f234ff94c7f37e8714e4e2097","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"77aeb48f234ff94c7f37e8714e4e2097"} gateway-1 | {"time_local":"07/May/2025:16:13: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.103","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"77aeb48f234ff94c7f37e8714e4e2097"} device-1 | {"level":"info","message":"POST /devices? 201 99ms","method":"POST","requestID":"77aeb48f234ff94c7f37e8714e4e2097","responseTime":99,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"72e268ff937da7120f5a27bb9bf34300","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"72e268ff937da7120f5a27bb9bf34300","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3868f13b-5867-4d54-971a-0b614207985b/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":"72e268ff937da7120f5a27bb9bf34300"} device-1 | {"level":"info","message":"OPTIONS /devices/3868f13b-5867-4d54-971a-0b614207985b/websocket 200 1ms","method":"OPTIONS","requestID":"72e268ff937da7120f5a27bb9bf34300","responseTime":1,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng","level":"info","message":"auth send jwt","requestID":"ac42293452a0ce93f34830cc4845050c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ac42293452a0ce93f34830cc4845050c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"ac42293452a0ce93f34830cc4845050c"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.787406,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ac42293452a0ce93f34830cc4845050c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ac42293452a0ce93f34830cc4845050c","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8b04da7950559190d26b1c142dcbdb15","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8b04da7950559190d26b1c142dcbdb15","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/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":"8b04da7950559190d26b1c142dcbdb15"} device-1 | {"level":"info","message":"OPTIONS /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/websocket 200 1ms","method":"OPTIONS","requestID":"8b04da7950559190d26b1c142dcbdb15","responseTime":1,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"ac42293452a0ce93f34830cc4845050c"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3868f13b-5867-4d54-971a-0b614207985b/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":"ac42293452a0ce93f34830cc4845050c"} device-1 | {"level":"info","message":"POST /devices/3868f13b-5867-4d54-971a-0b614207985b/websocket 200 42ms","method":"POST","requestID":"ac42293452a0ce93f34830cc4845050c","responseTime":42,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng","level":"info","message":"auth send jwt","requestID":"44b4bb574653a912c1592cbf03a51a23"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"44b4bb574653a912c1592cbf03a51a23"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"44b4bb574653a912c1592cbf03a51a23","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701824,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44b4bb574653a912c1592cbf03a51a23","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"44b4bb574653a912c1592cbf03a51a23","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"44b4bb574653a912c1592cbf03a51a23"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.052","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"44b4bb574653a912c1592cbf03a51a23"} device-1 | {"level":"info","message":"POST /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/websocket 200 48ms","method":"POST","requestID":"44b4bb574653a912c1592cbf03a51a23","responseTime":48,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng","level":"info","message":"auth send jwt","requestID":"197f45dc45673c6466498e0682b6864f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"197f45dc45673c6466498e0682b6864f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"197f45dc45673c6466498e0682b6864f"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.675399,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"197f45dc45673c6466498e0682b6864f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"197f45dc45673c6466498e0682b6864f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:08.980235169Z"}]},"request_id":"3af0f81b-3ba0-434b-8169-638c58e0757d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.6103032} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"197f45dc45673c6466498e0682b6864f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"197f45dc45673c6466498e0682b6864f"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3868f13b-5867-4d54-971a-0b614207985b? 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":"197f45dc45673c6466498e0682b6864f"} device-1 | {"level":"info","message":"GET /devices/3868f13b-5867-4d54-971a-0b614207985b? 200 33ms","method":"GET","requestID":"197f45dc45673c6466498e0682b6864f","responseTime":33,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng","level":"info","message":"auth send jwt","requestID":"9275c716f8243a96b0a2b0a9749e0daa"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9275c716f8243a96b0a2b0a9749e0daa","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9275c716f8243a96b0a2b0a9749e0daa"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.727561,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9275c716f8243a96b0a2b0a9749e0daa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9275c716f8243a96b0a2b0a9749e0daa","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:09.109208835Z"}]},"request_id":"566624e0-eab4-4871-957f-69bb04b2e9be","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.6235683} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9275c716f8243a96b0a2b0a9749e0daa","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9275c716f8243a96b0a2b0a9749e0daa"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9275c716f8243a96b0a2b0a9749e0daa"} device-1 | {"level":"info","message":"GET /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8? 200 33ms","method":"GET","requestID":"9275c716f8243a96b0a2b0a9749e0daa","responseTime":33,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng","level":"info","message":"auth send jwt","requestID":"ce03cabaa5ee8a48728495874b721d02"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ce03cabaa5ee8a48728495874b721d02","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"ce03cabaa5ee8a48728495874b721d02"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.895502,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ce03cabaa5ee8a48728495874b721d02","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ce03cabaa5ee8a48728495874b721d02","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Attempting to run experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Attempting to book experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully booked experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2c3582f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2c35d110-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.59691,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c3582f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2c3582f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.730415,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c35d110-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2c35d110-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:08.980235169Z"}]},"request_id":"4c9faff6-c218-441b-80d7-d25f4dd2dc06","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.7186575} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2c3582f0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:09.109208835Z"}]},"request_id":"c2c7d8db-aa7a-4fa0-866f-4517947be9a4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.721851} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2c35d110-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2c3582f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/3868f13b-5867-4d54-971a-0b614207985b? 200 11ms","method":"GET","requestID":"2c3582f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2c35d110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8? 200 36ms","method":"GET","requestID":"2c35d110-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Setting up experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully locked booking for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Attempting to update booking for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully updated booking for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully set up experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2c43dad0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2c4401e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c4428f0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully running experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.916909,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628392,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c43dad0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2c43dad0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c4401e0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2c4401e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:08.980235169Z"}]},"request_id":"0342862c-890c-4a91-86e7-163127ab5ef9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.815613} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"2c43dad0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:09.109208835Z"}]},"request_id":"49b6d7e7-b0c4-4c4f-b4aa-26a47c043684","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.8165584} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b060e54f-bd4d-4938-b28f-64943cbb9063","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.841352} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"2c4401e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.76521,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c4428f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2c43dad0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /authorize 200 35ms","method":"POST","requestID":"2c4428f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b4eb81cf-7df9-47b8-bcab-dee830c6df9e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.8445776} device-1 | {"level":"info","message":"GET /devices/3868f13b-5867-4d54-971a-0b614207985b? 200 40ms","method":"GET","requestID":"2c43dad0-2b5e-11f0-8e1f-5304d0938eae","responseTime":40,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff1c16682-e6a2-4bfe-8661-cb788e65c6a6#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff1c16682-e6a2-4bfe-8661-cb788e65c6a6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"23ca418b-bf7b-4499-8d47-a8a696c54641","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.8449848} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2c4401e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8? 200 40ms","method":"GET","requestID":"2c4401e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":40,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"ce03cabaa5ee8a48728495874b721d02","responseTime":34,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c4a9190-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c4428f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/3868f13b-5867-4d54-971a-0b614207985b/signaling 200 44ms","method":"POST","requestID":"2c4428f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b/signaling"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c4b2dd0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d55643d4-af02-4b3d-92b8-ff1c9f8ff25b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.8535433} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"ce03cabaa5ee8a48728495874b721d02"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.554702,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.204","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"level":"info","message":"POST /experiments? 201 202ms","method":"POST","requestID":"ce03cabaa5ee8a48728495874b721d02","responseTime":202,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c4a9190-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","rebac_allow":false,"scope_allow":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":"2c4a9190-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c4a9190-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d46be15e-252e-4786-9a68-9f3300818331","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.859208} device-1 | {"level":"info","message":"POST /devices/3868f13b-5867-4d54-971a-0b614207985b/signaling 200 10ms","method":"POST","requestID":"2c4a9190-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng","level":"info","message":"auth send jwt","requestID":"378e14f7d4b2ebe0d249607bd9bcd047"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.997424,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"378e14f7d4b2ebe0d249607bd9bcd047","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c4b2dd0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","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":"378e14f7d4b2ebe0d249607bd9bcd047"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"2c4b2dd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c4cb470-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.734469,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c4b2dd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling 200 13ms","method":"POST","requestID":"2c4b2dd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"378e14f7d4b2ebe0d249607bd9bcd047","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"378e14f7d4b2ebe0d249607bd9bcd047","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ef3a53b4-61c8-42e3-9b1b-230459f3b5c5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.866903} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.984508,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c4cb470-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","rebac_allow":false,"scope_allow":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":"2c4cb470-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:08.980235169Z"}]},"request_id":"687b2068-9c49-4d7d-baf2-f668356048b7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.8932357} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"378e14f7d4b2ebe0d249607bd9bcd047","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c4cb470-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling 200 35ms","method":"POST","requestID":"2c4cb470-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"378e14f7d4b2ebe0d249607bd9bcd047"} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3868f13b-5867-4d54-971a-0b614207985b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"378e14f7d4b2ebe0d249607bd9bcd047"} device-1 | {"level":"info","message":"GET /devices/3868f13b-5867-4d54-971a-0b614207985b? 200 38ms","method":"GET","requestID":"378e14f7d4b2ebe0d249607bd9bcd047","responseTime":38,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Building connection plan","requestID":"ce03cabaa5ee8a48728495874b721d02"} 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":"08d7d972-5249-44f7-9c44-78de70bd40c5"},{"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":"c0757e5c-d02d-49b8-abef-bda1ff7b5459"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"f5e3c81b-014e-4ca7-b335-933dee76b8b9"}]},"level":"info","message":"Built pairwise service configurations","requestID":"ce03cabaa5ee8a48728495874b721d02"} 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/3868f13b-5867-4d54-971a-0b614207985b"},{"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/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"ce03cabaa5ee8a48728495874b721d02"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng","level":"info","message":"auth send jwt","requestID":"1e35ade2a879594c76ae3aa2ca9b81e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1e35ade2a879594c76ae3aa2ca9b81e5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1e35ade2a879594c76ae3aa2ca9b81e5"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.723829,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.589082,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1e35ade2a879594c76ae3aa2ca9b81e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634391,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5MX0._wS6satsHJjdQbHYu4ZuqqUzbJUGe4IB4A7LKbsKPng"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1e35ade2a879594c76ae3aa2ca9b81e5","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:09.109208835Z"}]},"request_id":"c33bd722-ee08-4877-aa4b-a79ce78c1237","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.9105566} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1e35ade2a879594c76ae3aa2ca9b81e5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1e35ade2a879594c76ae3aa2ca9b81e5"} device-1 | {"level":"info","message":"GET /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8? 200 10ms","method":"GET","requestID":"1e35ade2a879594c76ae3aa2ca9b81e5","responseTime":10,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"e2306aa8-6416-4477-99cf-4131357b0f15","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.9391508} gateway-1 | {"time_local":"07/May/2025:16:13:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8? 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":"1e35ade2a879594c76ae3aa2ca9b81e5"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9fd88917-4571-4e2b-a754-794924a48e54","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634391.9393356} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678'","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678'","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 63ms","method":"POST","requestID":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":63,"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":"2c5259c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678","device":"3868f13b-5867-4d54-971a-0b614207985b","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/fc169736-4be8-4fcc-814f-bb57b3713678","device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","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/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"ce03cabaa5ee8a48728495874b721d02"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c682bb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f1c65197-7cdc-4f61-9e63-47dbba2c48a1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.0474458} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.170782,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c682bb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","rebac_allow":false,"scope_allow":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":"2c682bb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c682bb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/3868f13b-5867-4d54-971a-0b614207985b/signaling 200 9ms","method":"POST","requestID":"2c682bb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c6df810-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"device":"3868f13b-5867-4d54-971a-0b614207985b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"3868f13b-5867-4d54-971a-0b614207985b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"011b119b-f0fe-4521-be74-a8852bfae00f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.0874162} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.193494,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} device-1 | {"device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c6df810-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","rebac_allow":false,"scope_allow":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":"2c6df810-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c6df810-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling 200 14ms","method":"POST","requestID":"2c6df810-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 6764657077843292271 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:7IR0\r\na=ice-pwd:UJuj/GD9R7L6r0o8j72Y3m1a\r\na=ice-options:trickle\r\na=fingerprint:sha-256 86:47:F4:C3:8D:FA:A3:CE:AA:CB:89:5B:24:66:B4:22:A1:8D:AD:B2:E3:16:21:51:E7:59:68:AB:EF:FE:FA:91\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 2964509951803726136 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:Iayn\r\na=ice-pwd:5kVLUiI6cHdtIZa82gBh7W0T\r\na=ice-options:trickle\r\na=fingerprint:sha-256 34:09:FF:56:F8:AC:C7:94:A2:2E:02:98:26:58:65:59:AD:E3:60:55:4B:24:38:8C:9F:DB:33:70:13:1D:EC:D2\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"3868f13b-5867-4d54-971a-0b614207985b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3166612457 1 udp 2113937151 170bae3b-d3fa-4f5c-b514-d1df6d64c4f3.local 53677 typ host generation 0 ufrag Iayn network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"3868f13b-5867-4d54-971a-0b614207985b","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/3868f13b-5867-4d54-971a-0b614207985b'"} device-1 | {"content":{"candidate":"candidate:1600808021 1 udp 2113937151 a2fc118d-75e0-42e1-8faa-75c0afa8b173.local 36763 typ host generation 0 ufrag 7IR0 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","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/fc169736-4be8-4fcc-814f-bb57b3713678' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc169736-4be8-4fcc-814f-bb57b3713678","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"3868f13b-5867-4d54-971a-0b614207985b","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":"6a22ddf5506bebf1a4e3b4fbe88bfd8c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"3868f13b-5867-4d54-971a-0b614207985b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6a22ddf5506bebf1a4e3b4fbe88bfd8c","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/3868f13b-5867-4d54-971a-0b614207985b"},{"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/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678"}}},"level":"info","message":"received a callback","requestID":"6a22ddf5506bebf1a4e3b4fbe88bfd8c"} device-1 | {"device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"3868f13b-5867-4d54-971a-0b614207985b","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":"6a22ddf5506bebf1a4e3b4fbe88bfd8c","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a22ddf5506bebf1a4e3b4fbe88bfd8c"} device-1 | {"device":"3868f13b-5867-4d54-971a-0b614207985b","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"fc169736-4be8-4fcc-814f-bb57b3713678","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"fc169736-4be8-4fcc-814f-bb57b3713678","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/fc169736-4be8-4fcc-814f-bb57b3713678' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc169736-4be8-4fcc-814f-bb57b3713678","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"be961397d73128f7c4a4f1361f10501d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"be961397d73128f7c4a4f1361f10501d","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/3868f13b-5867-4d54-971a-0b614207985b"},{"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/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678"}}},"level":"info","message":"received a callback","requestID":"be961397d73128f7c4a4f1361f10501d"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2c84b460-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc169736-4be8-4fcc-814f-bb57b3713678","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0377bd2c-ad07-431d-baa8-45a224cb839e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.2342412} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.112444,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c84b460-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678","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":"2c84b460-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2c84b460-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678 200 7ms","method":"GET","requestID":"2c84b460-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 52ms","method":"POST","requestID":"be961397d73128f7c4a4f1361f10501d","responseTime":52,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.074","http_referrer":"","http_user_agent":"node-fetch","requestID":"be961397d73128f7c4a4f1361f10501d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c8be050-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e2d32195-f460-489c-8282-f31ef4c2f570","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.2814934} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.568637,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c8be050-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","rebac_allow":false,"scope_allow":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":"2c8be050-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c8be050-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/3868f13b-5867-4d54-971a-0b614207985b/signaling 200 9ms","method":"POST","requestID":"2c8be050-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g","level":"info","message":"auth send jwt","requestID":"891539bd13000eea1e089919cc6c75b1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2c8d8e00-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"891539bd13000eea1e089919cc6c75b1","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","requestID":"891539bd13000eea1e089919cc6c75b1"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.704409,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"891539bd13000eea1e089919cc6c75b1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634392,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"891539bd13000eea1e089919cc6c75b1","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"62c9a419-7c79-442c-918c-385496252637","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.291877} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.196989,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c8d8e00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","rebac_allow":false,"scope_allow":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":"2c8d8e00-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2c8d8e00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling 200 8ms","method":"POST","requestID":"2c8d8e00-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling"} gateway-1 | {"time_local":"07/May/2025:16:13:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"891539bd13000eea1e089919cc6c75b1"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","requestID":"891539bd13000eea1e089919cc6c75b1"} experiment-1 | {"level":"info","message":"GET /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6 200 34ms","method":"GET","requestID":"891539bd13000eea1e089919cc6c75b1","responseTime":34,"status":200,"url":"/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g","level":"info","message":"auth send jwt","requestID":"8b72328c304a79435f7df85b0a654e8d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8b72328c304a79435f7df85b0a654e8d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","requestID":"8b72328c304a79435f7df85b0a654e8d"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.766328,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8b72328c304a79435f7df85b0a654e8d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634392,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"8b72328c304a79435f7df85b0a654e8d","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Attempting to finish experiment","requestID":"8b72328c304a79435f7df85b0a654e8d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2c94b9f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.683667,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c94b9f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634392,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2c94b9f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678","device":"3868f13b-5867-4d54-971a-0b614207985b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678","device":"1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","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/fc169736-4be8-4fcc-814f-bb57b3713678' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"fc169736-4be8-4fcc-814f-bb57b3713678","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"05e230996bcd181db7759bfbadbf6bbb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"05e230996bcd181db7759bfbadbf6bbb","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2a5696b3750e479025d6d733164d7b54","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ec88af3-e50a-4a4f-8114-c753f1ae8f26","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.3773735} 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/3868f13b-5867-4d54-971a-0b614207985b"},{"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/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678"}}},"level":"info","message":"received a callback","requestID":"05e230996bcd181db7759bfbadbf6bbb"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2a5696b3750e479025d6d733164d7b54","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc169736-4be8-4fcc-814f-bb57b3713678': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ffc169736-4be8-4fcc-814f-bb57b3713678","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"f63b8ab9-13e3-4aa9-a787-bc36cc4a2ff3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.377752} 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/3868f13b-5867-4d54-971a-0b614207985b"},{"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/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678"}}},"level":"info","message":"received a callback","requestID":"2a5696b3750e479025d6d733164d7b54"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"2c94b9f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"fc169736-4be8-4fcc-814f-bb57b3713678","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2c94b9f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678 204 60ms","method":"DELETE","requestID":"2c94b9f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":60,"status":204,"url":"/peerconnections/fc169736-4be8-4fcc-814f-bb57b3713678"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"},"level":"info","message":"Successfully finished experiment","requestID":"8b72328c304a79435f7df85b0a654e8d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ca2eac0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3868f13b-5867-4d54-971a-0b614207985b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2fb0def-cd4e-474a-be33-173470fbea3d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.4329886} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.4987,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2ca2eac0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3868f13b-5867-4d54-971a-0b614207985b","object_type":"device","rebac_allow":false,"scope_allow":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":"2ca2eac0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ca2eac0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/3868f13b-5867-4d54-971a-0b614207985b/signaling 200 9ms","method":"POST","requestID":"2ca2eac0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/3868f13b-5867-4d54-971a-0b614207985b/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff1c16682-e6a2-4bfe-8661-cb788e65c6a6': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff1c16682-e6a2-4bfe-8661-cb788e65c6a6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"b7af149e-fcfe-428e-a8ab-1ab01afa1dd7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.4382887} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3be08a7a-e110-44e0-98f2-fc21318dcbb5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.438501} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"8b72328c304a79435f7df85b0a654e8d","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ca4bf80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"03c66fe5-f916-425f-bae5-791f81312ec9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.4684494} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.758683,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2ca4bf80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8","object_type":"device","rebac_allow":false,"scope_allow":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":"2ca4bf80-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ca4bf80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling 200 33ms","method":"POST","requestID":"2ca4bf80-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6","requestID":"8b72328c304a79435f7df85b0a654e8d"} gateway-1 | {"time_local":"07/May/2025:16:13:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.211","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8b72328c304a79435f7df85b0a654e8d"} experiment-1 | {"level":"info","message":"DELETE /experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6 204 208ms","method":"DELETE","requestID":"8b72328c304a79435f7df85b0a654e8d","responseTime":208,"status":204,"url":"/experiments/f1c16682-e6a2-4bfe-8661-cb788e65c6a6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 185ms","method":"POST","requestID":"05e230996bcd181db7759bfbadbf6bbb","responseTime":185,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.187","http_referrer":"","http_user_agent":"node-fetch","requestID":"05e230996bcd181db7759bfbadbf6bbb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 183ms","method":"POST","requestID":"2a5696b3750e479025d6d733164d7b54","responseTime":183,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.188","http_referrer":"","http_user_agent":"node-fetch","requestID":"2a5696b3750e479025d6d733164d7b54"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g","level":"info","message":"auth send jwt","requestID":"4893d1b1276584fee225f753db7820a6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4893d1b1276584fee225f753db7820a6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4893d1b1276584fee225f753db7820a6"} gateway-1 | {"time_local":"07/May/2025:16:13:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2578","request_time":"1.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":"dabf364e8c2c1eb2ea051fd5a358aa52"} gateway-1 | {"time_local":"07/May/2025:16:13:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2580","request_time":"1.054","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d7ee6c72671f39b89d618786ca5d8e73"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.065743,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4893d1b1276584fee225f753db7820a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634392,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4893d1b1276584fee225f753db7820a6","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/3868f13b-5867-4d54-971a-0b614207985b' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1842ab6c-1e8f-4d8f-abe5-fa27c569b7f8' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3a255ca9-daf3-44b5-aa5e-9e54fa8c9d9c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.6113665} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4893d1b1276584fee225f753db7820a6","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ebb1cfff-65f7-400f-b099-7fa1a8cf55aa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.6154585} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4893d1b1276584fee225f753db7820a6","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"1ee8225e-6e08-4f17-8753-b810a77b0f55","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.626192} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4636fd05-b678-4f87-a207-310ff1db31d8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.6263533} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"4893d1b1276584fee225f753db7820a6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.626174151Z"}]},"request_id":"4975b4cd-0a18-4739-ba9a-05d3cea6c8bb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.629777} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4893d1b1276584fee225f753db7820a6","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4893d1b1276584fee225f753db7820a6"} gateway-1 | {"time_local":"07/May/2025:16:13: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.070","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4893d1b1276584fee225f753db7820a6"} device-1 | {"level":"info","message":"POST /devices? 201 66ms","method":"POST","requestID":"4893d1b1276584fee225f753db7820a6","responseTime":66,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g","level":"info","message":"auth send jwt","requestID":"e9351d79cfd4cee148ef97b2f9e81471"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e9351d79cfd4cee148ef97b2f9e81471","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e9351d79cfd4cee148ef97b2f9e81471"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.656199,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e9351d79cfd4cee148ef97b2f9e81471","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634392,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Mn0.AQklNWXwpCQ5moatSiGwVDmKhy5KA_8R7Uj8M1fjb1g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e9351d79cfd4cee148ef97b2f9e81471","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"66add40f-b0e0-4852-8f05-1ff234c3465f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.6736295} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e9351d79cfd4cee148ef97b2f9e81471","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"babcfff8-747a-4d3e-8ef0-fdd519a46489","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.6772168} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e9351d79cfd4cee148ef97b2f9e81471","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"7fcb2ffe-df28-40f9-876e-dde24cf2da77","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.7100863} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e607daf7-987e-4874-b386-74e3116efe70","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.7102363} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"e9351d79cfd4cee148ef97b2f9e81471","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.710062774Z"}]},"request_id":"dbb866c9-2a62-419c-9812-f8cf4268b560","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634392.7135472} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e9351d79cfd4cee148ef97b2f9e81471","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e9351d79cfd4cee148ef97b2f9e81471"} gateway-1 | {"time_local":"07/May/2025:16:13: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.083","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9351d79cfd4cee148ef97b2f9e81471"} device-1 | {"level":"info","message":"POST /devices? 201 56ms","method":"POST","requestID":"e9351d79cfd4cee148ef97b2f9e81471","responseTime":56,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"97356436983725838cdc084893283a2e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"97356436983725838cdc084893283a2e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/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":"97356436983725838cdc084893283a2e"} device-1 | {"level":"info","message":"OPTIONS /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/websocket 200 1ms","method":"OPTIONS","requestID":"97356436983725838cdc084893283a2e","responseTime":1,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0f4b3dd9ddc16c4075b28fc4c986cf54","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0f4b3dd9ddc16c4075b28fc4c986cf54","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/websocket 200 1ms","method":"OPTIONS","requestID":"0f4b3dd9ddc16c4075b28fc4c986cf54","responseTime":1,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.005","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0f4b3dd9ddc16c4075b28fc4c986cf54"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"140e617a16a820471da31b83798970b5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"140e617a16a820471da31b83798970b5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"140e617a16a820471da31b83798970b5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"17d2651b9f68380aac8119d842a3f87e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"17d2651b9f68380aac8119d842a3f87e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"17d2651b9f68380aac8119d842a3f87e"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.888992,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"140e617a16a820471da31b83798970b5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"140e617a16a820471da31b83798970b5","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68188,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"17d2651b9f68380aac8119d842a3f87e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"17d2651b9f68380aac8119d842a3f87e","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"17d2651b9f68380aac8119d842a3f87e"} device-1 | {"level":"info","message":"POST /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/websocket 200 35ms","method":"POST","requestID":"17d2651b9f68380aac8119d842a3f87e","responseTime":35,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.039","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"17d2651b9f68380aac8119d842a3f87e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"140e617a16a820471da31b83798970b5"} device-1 | {"level":"info","message":"POST /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/websocket 200 100ms","method":"POST","requestID":"140e617a16a820471da31b83798970b5","responseTime":100,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.104","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"140e617a16a820471da31b83798970b5"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"091408e570e40cb9f3688bc9e6d43121"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"091408e570e40cb9f3688bc9e6d43121","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"091408e570e40cb9f3688bc9e6d43121"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.62156,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"091408e570e40cb9f3688bc9e6d43121","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"091408e570e40cb9f3688bc9e6d43121","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.626174151Z"}]},"request_id":"d7f84772-3128-4db8-9888-f30c8777d11e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.2705138} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"091408e570e40cb9f3688bc9e6d43121","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"091408e570e40cb9f3688bc9e6d43121"} device-1 | {"level":"info","message":"GET /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2? 200 9ms","method":"GET","requestID":"091408e570e40cb9f3688bc9e6d43121","responseTime":9,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2?"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2? 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":"091408e570e40cb9f3688bc9e6d43121"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"f7a022280585e1f2a2f8e04d9268f6fc"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"f7a022280585e1f2a2f8e04d9268f6fc","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f7a022280585e1f2a2f8e04d9268f6fc"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.758398,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f7a022280585e1f2a2f8e04d9268f6fc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f7a022280585e1f2a2f8e04d9268f6fc","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.710062774Z"}]},"request_id":"56514850-b4aa-4f7e-bf17-d0fdc1364f26","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.3080332} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f7a022280585e1f2a2f8e04d9268f6fc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f7a022280585e1f2a2f8e04d9268f6fc"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f7a022280585e1f2a2f8e04d9268f6fc"} device-1 | {"level":"info","message":"GET /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e? 200 10ms","method":"GET","requestID":"f7a022280585e1f2a2f8e04d9268f6fc","responseTime":10,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"84c35580ad86fc0ba3eb71a69f843984"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"84c35580ad86fc0ba3eb71a69f843984","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"84c35580ad86fc0ba3eb71a69f843984"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.649261,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"84c35580ad86fc0ba3eb71a69f843984","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"84c35580ad86fc0ba3eb71a69f843984","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Attempting to run experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Attempting to book experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully booked experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e681a60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e684170-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.883396,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e681a60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2e681a60-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.623849,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e684170-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2e684170-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.626174151Z"}]},"request_id":"c6927ab2-ad50-4dd3-9e9d-d269025d1c70","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.4046433} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2e681a60-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.710062774Z"}]},"request_id":"85ee8c72-f8d4-46cf-8ef4-075a5e078871","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.4052951} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2e684170-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e681a60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2? 200 11ms","method":"GET","requestID":"2e681a60-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e684170-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e? 200 10ms","method":"GET","requestID":"2e684170-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Setting up experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully locked booking for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Attempting to update booking for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully updated booking for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully set up experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e727aa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e72c8c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2e75fd10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:59570","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.76739,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e727aa0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2e727aa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully running experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.843253,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e72c8c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"2e72c8c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.880281,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"29c58931-08b5-4e4d-a221-02dfe18f821a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.4958944} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e75fd10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","rebac_allow":false,"scope_allow":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":"2e75fd10-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2e75fd10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling 200 12ms","method":"POST","requestID":"2e75fd10-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.626174151Z"}]},"request_id":"6b560a32-729b-4ead-b797-82e8597ebcda","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5010238} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2e727aa0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.710062774Z"}]},"request_id":"9555dbbf-ae17-4f27-8816-6a0c0e7d5f10","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.502523} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2e781ff0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2e72c8c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e727aa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2? 200 42ms","method":"GET","requestID":"2e727aa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":42,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e72c8c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e? 200 40ms","method":"GET","requestID":"2e72c8c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":40,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c44df4cf-8dae-43f4-bb4e-c37cd903bc01","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5070777} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.419292,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e781ff0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","rebac_allow":false,"scope_allow":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":"2e781ff0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea43443b-dc98-4723-83e8-ce04ae688085#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea43443b-dc98-4723-83e8-ce04ae688085","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"45fac01c-0f98-40e8-9f97-990e51ed1038","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5094037} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2563a02e-f608-408f-b27d-388c0b282b0c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5096922} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"84c35580ad86fc0ba3eb71a69f843984","responseTime":17,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2e795870-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2e781ff0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling 200 35ms","method":"POST","requestID":"2e781ff0-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8e534926-ec05-4289-8ebb-665692dee450","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5404158} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.139074,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"84c35580ad86fc0ba3eb71a69f843984"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e795870-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","rebac_allow":false,"scope_allow":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":"2e795870-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.230","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"level":"info","message":"POST /experiments? 201 227ms","method":"POST","requestID":"84c35580ad86fc0ba3eb71a69f843984","responseTime":227,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2e795870-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling 200 33ms","method":"POST","requestID":"2e795870-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"130eec16955a12c4363becc97c0f6131"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"130eec16955a12c4363becc97c0f6131","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2e7ed6b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"130eec16955a12c4363becc97c0f6131"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.610258,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"130eec16955a12c4363becc97c0f6131","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"130eec16955a12c4363becc97c0f6131","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a2a0321f-3d06-4c15-80c1-c8da08fbb359","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.551122} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.643168,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e7ed6b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","rebac_allow":false,"scope_allow":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":"2e7ed6b0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.626174151Z"}]},"request_id":"6cb24a2a-c1d6-415a-9b7e-0db46237d528","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5542784} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2e7ed6b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling 200 7ms","method":"POST","requestID":"2e7ed6b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"130eec16955a12c4363becc97c0f6131","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Building connection plan","requestID":"84c35580ad86fc0ba3eb71a69f843984"} 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":"b2bb0bcc-90bf-482a-8b01-3d1d4d296478"},{"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":"d144ce69-18c2-4e5e-be5f-22d74ee4f401"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0f77d4d1-50e2-4f0d-8b50-6d2e51873d93"}]},"level":"info","message":"Built pairwise service configurations","requestID":"84c35580ad86fc0ba3eb71a69f843984"} 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/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e"},{"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/ea6554c6-9a97-40d9-a4c4-8a6c583078e2"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"84c35580ad86fc0ba3eb71a69f843984"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"130eec16955a12c4363becc97c0f6131"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2? 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":"130eec16955a12c4363becc97c0f6131"} device-1 | {"level":"info","message":"GET /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2? 200 38ms","method":"GET","requestID":"130eec16955a12c4363becc97c0f6131","responseTime":38,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2?"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.916432,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"193c0b9f77cc9a841e5e290b67183c16"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"193c0b9f77cc9a841e5e290b67183c16","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"193c0b9f77cc9a841e5e290b67183c16"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.803767,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"193c0b9f77cc9a841e5e290b67183c16","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"193c0b9f77cc9a841e5e290b67183c16","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:12.710062774Z"}]},"request_id":"a2035ef5-bba3-4276-a9e2-1a2d380d5bd7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5990198} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"193c0b9f77cc9a841e5e290b67183c16","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"424cdc1b-62c3-47d1-815c-1d47bec5929c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.5998263} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"23a991bc-da39-493c-9194-68ac548595aa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.6002936} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"193c0b9f77cc9a841e5e290b67183c16"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e? 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":"193c0b9f77cc9a841e5e290b67183c16"} device-1 | {"level":"info","message":"GET /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e? 200 12ms","method":"GET","requestID":"193c0b9f77cc9a841e5e290b67183c16","responseTime":12,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d'","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d'","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2e80d280-2b5e-11f0-8e1f-5304d0938eae"} 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":"2e80d280-2b5e-11f0-8e1f-5304d0938eae","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":"2e80d280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","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/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","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/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"84c35580ad86fc0ba3eb71a69f843984"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2e94cfb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d9c0415b-814d-4aea-a44c-db288b4d6ba0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.6955955} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.366763,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e94cfb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","rebac_allow":false,"scope_allow":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":"2e94cfb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2e94cfb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling 200 11ms","method":"POST","requestID":"2e94cfb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling"} device-1 | {"device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2e9a9c10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"633b240d-b706-47d6-9f4b-9af9190299b7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.7341669} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.98942,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e9a9c10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","rebac_allow":false,"scope_allow":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":"2e9a9c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 7054459502190881492 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:NRmH\r\na=ice-pwd:0v5ayUsqYDJ3N6bQlMcijlWz\r\na=ice-options:trickle\r\na=fingerprint:sha-256 72:01:00:4D:3C:91:6F:E4:C1:2D:3C:D6:75:52:C4:F9:2D:53:29:CD:26:EF:FB:34:CA:7C:DA:E2:3A:B2:69:DD\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2e9a9c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling 200 11ms","method":"POST","requestID":"2e9a9c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 5338131359763367929 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:AycD\r\na=ice-pwd:hW7syBfrz5BRtHdkWwDxg7Uo\r\na=ice-options:trickle\r\na=fingerprint:sha-256 F2:A4:EB:79:97:A0:9C:9E:CE:58:5D:8E:9B:30:67:CE:FC:52:01:5A:67:65:CF:B5:D6:2C:17:1F:29:4D:41:86\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:2165074994 1 udp 2113937151 d663b46d-9735-4c5a-912e-0575d9133742.local 56826 typ host generation 0 ufrag AycD network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","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/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e'"} device-1 | {"content":{"candidate":"candidate:1786812328 1 udp 2113937151 a8db8114-8341-45f5-ba5f-62d219845eb6.local 52159 typ host generation 0 ufrag NRmH network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","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/a18117ef-ccdd-4f86-ac40-0d54b8d7393d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a18117ef-ccdd-4f86-ac40-0d54b8d7393d","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8f4c4ddc0796da6d8ed09b2a41beac26","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8f4c4ddc0796da6d8ed09b2a41beac26","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/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e"},{"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/ea6554c6-9a97-40d9-a4c4-8a6c583078e2"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d"}}},"level":"info","message":"received a callback","requestID":"8f4c4ddc0796da6d8ed09b2a41beac26"} device-1 | {"device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"8f4c4ddc0796da6d8ed09b2a41beac26","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"8f4c4ddc0796da6d8ed09b2a41beac26"} device-1 | {"device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"a18117ef-ccdd-4f86-ac40-0d54b8d7393d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a18117ef-ccdd-4f86-ac40-0d54b8d7393d","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/a18117ef-ccdd-4f86-ac40-0d54b8d7393d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a18117ef-ccdd-4f86-ac40-0d54b8d7393d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ab792682aaf4439ace2e41271a6f3f8f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ab792682aaf4439ace2e41271a6f3f8f","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/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e"},{"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/ea6554c6-9a97-40d9-a4c4-8a6c583078e2"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d"}}},"level":"info","message":"received a callback","requestID":"ab792682aaf4439ace2e41271a6f3f8f"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2eb10a40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa18117ef-ccdd-4f86-ac40-0d54b8d7393d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"adf63bdd-d3a5-4e78-bf31-4929c3fb6550","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.880897} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.44715,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2eb10a40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","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":"2eb10a40-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2eb10a40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d 200 8ms","method":"GET","requestID":"2eb10a40-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"ab792682aaf4439ace2e41271a6f3f8f","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.075","http_referrer":"","http_user_agent":"node-fetch","requestID":"ab792682aaf4439ace2e41271a6f3f8f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2eb80f20-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"8aa668968d8b6846b0da426152783f49"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8aa668968d8b6846b0da426152783f49","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ea43443b-dc98-4723-83e8-ce04ae688085","requestID":"8aa668968d8b6846b0da426152783f49"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7a6f76b5-b6e8-4d04-a81c-1060eb76318b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.927131} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.406455,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.898447,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2eb80f20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","rebac_allow":false,"scope_allow":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":"2eb80f20-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8aa668968d8b6846b0da426152783f49","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"8aa668968d8b6846b0da426152783f49","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2eb80f20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling 200 9ms","method":"POST","requestID":"2eb80f20-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2eb9bcd0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ea43443b-dc98-4723-83e8-ce04ae688085","requestID":"8aa668968d8b6846b0da426152783f49"} gateway-1 | {"time_local":"07/May/2025:16:13:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ea43443b-dc98-4723-83e8-ce04ae688085 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8aa668968d8b6846b0da426152783f49"} experiment-1 | {"level":"info","message":"GET /experiments/ea43443b-dc98-4723-83e8-ce04ae688085 200 12ms","method":"GET","requestID":"8aa668968d8b6846b0da426152783f49","responseTime":12,"status":200,"url":"/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4dd122ea-6b30-4c4d-b819-0b5a5670e1aa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.937953} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.652382,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2eb9bcd0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","rebac_allow":false,"scope_allow":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":"2eb9bcd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg","level":"info","message":"auth send jwt","requestID":"386c9f79aec9045497cbdecdd6568fa2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"386c9f79aec9045497cbdecdd6568fa2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2eb9bcd0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ea43443b-dc98-4723-83e8-ce04ae688085","requestID":"386c9f79aec9045497cbdecdd6568fa2"} device-1 | {"level":"info","message":"POST /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling 200 9ms","method":"POST","requestID":"2eb9bcd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.664381,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"386c9f79aec9045497cbdecdd6568fa2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"386c9f79aec9045497cbdecdd6568fa2","responseTime":26,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Attempting to finish experiment","requestID":"386c9f79aec9045497cbdecdd6568fa2"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2ebfd750-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.790611,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2ebfd750-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634395,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5NX0.fhZ31r2DpBAW3_TvTtm9Ed-iBdXCKFtoevjTvj6kJZg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2ebfd750-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","device":"fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d","device":"ea6554c6-9a97-40d9-a4c4-8a6c583078e2","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/a18117ef-ccdd-4f86-ac40-0d54b8d7393d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a18117ef-ccdd-4f86-ac40-0d54b8d7393d","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa18117ef-ccdd-4f86-ac40-0d54b8d7393d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa18117ef-ccdd-4f86-ac40-0d54b8d7393d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"c8f20491-d217-462f-b283-8d4bbf4f423f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.9873464} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0f2e16f326aee557c1bb882cf16711ad","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2a8d5389-993b-4d6d-81ec-92ca9f31fc78","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634395.987612} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0f2e16f326aee557c1bb882cf16711ad","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e"},{"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/ea6554c6-9a97-40d9-a4c4-8a6c583078e2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d"}}},"level":"info","message":"received a callback","requestID":"0f2e16f326aee557c1bb882cf16711ad"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"2ebfd750-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"753ea98def07fddb4a16338543806e0c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"753ea98def07fddb4a16338543806e0c","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/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e"},{"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/ea6554c6-9a97-40d9-a4c4-8a6c583078e2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d"}}},"level":"info","message":"received a callback","requestID":"753ea98def07fddb4a16338543806e0c"} device-1 | {"data":{"peerconnection":"a18117ef-ccdd-4f86-ac40-0d54b8d7393d","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2ebfd750-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d 204 60ms","method":"DELETE","requestID":"2ebfd750-2b5e-11f0-8e1f-5304d0938eae","responseTime":60,"status":204,"url":"/peerconnections/a18117ef-ccdd-4f86-ac40-0d54b8d7393d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"},"level":"info","message":"Successfully finished experiment","requestID":"386c9f79aec9045497cbdecdd6568fa2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ecea460-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ec6e326f-9a2b-46a3-984f-6e252079c590","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.0744812} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.269962,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2ecea460-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e","object_type":"device","rebac_allow":false,"scope_allow":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":"2ecea460-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ecea460-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling 200 8ms","method":"POST","requestID":"2ecea460-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ed02b00-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea43443b-dc98-4723-83e8-ce04ae688085': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fea43443b-dc98-4723-83e8-ce04ae688085","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"05b17c82-133e-4685-8db4-bebfcdff5428","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.0808737} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9f36e81e-b7f6-4b18-9dde-8b5fa7f5b70c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.0811632} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"386c9f79aec9045497cbdecdd6568fa2","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea6554c6-9a97-40d9-a4c4-8a6c583078e2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd57d616-a645-499e-bd0e-c9491b4ba377","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.0846999} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.349825,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2ed02b00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2","object_type":"device","rebac_allow":false,"scope_allow":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":"2ed02b00-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ed02b00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling 200 8ms","method":"POST","requestID":"2ed02b00-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ea43443b-dc98-4723-83e8-ce04ae688085","requestID":"386c9f79aec9045497cbdecdd6568fa2"} gateway-1 | {"time_local":"07/May/2025:16:13:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ea43443b-dc98-4723-83e8-ce04ae688085 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.236","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"386c9f79aec9045497cbdecdd6568fa2"} experiment-1 | {"level":"info","message":"DELETE /experiments/ea43443b-dc98-4723-83e8-ce04ae688085 204 234ms","method":"DELETE","requestID":"386c9f79aec9045497cbdecdd6568fa2","responseTime":234,"status":204,"url":"/experiments/ea43443b-dc98-4723-83e8-ce04ae688085"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"0f2e16f326aee557c1bb882cf16711ad","responseTime":190,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 189ms","method":"POST","requestID":"753ea98def07fddb4a16338543806e0c","responseTime":189,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.624997,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"22ed65cd41a71f1cf6e7f82b3655759c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634396,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Nn0.Y8QPtimFxd3bPN7oJmh5VtMfYTeand2TDyLtvZzbquc"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"22ed65cd41a71f1cf6e7f82b3655759c","responseTime":2,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:13:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"0f2e16f326aee557c1bb882cf16711ad"} gateway-1 | {"time_local":"07/May/2025:16:13:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"753ea98def07fddb4a16338543806e0c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Nn0.Y8QPtimFxd3bPN7oJmh5VtMfYTeand2TDyLtvZzbquc","level":"info","message":"auth send jwt","requestID":"22ed65cd41a71f1cf6e7f82b3655759c"} device-1 | {"level":"info","message":"postDevices called","requestID":"22ed65cd41a71f1cf6e7f82b3655759c"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"22ed65cd41a71f1cf6e7f82b3655759c","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2578","request_time":"1.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":"79b60a8cbfad09f84ebb60917be28129"} gateway-1 | {"time_local":"07/May/2025:16:13:16 +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.991","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e9331e95a621c81576a21f55c8e252d8"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/fc9ba40e-6f6c-4dbb-b7b9-60377ccf9d5e' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ea6554c6-9a97-40d9-a4c4-8a6c583078e2' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"261d9c91-ddbc-423d-8839-5b7a5838c8b3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.2287} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"22ed65cd41a71f1cf6e7f82b3655759c","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f29bb1af-b778-4201-a21f-e05023f7ca81","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.257215} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"22ed65cd41a71f1cf6e7f82b3655759c","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c0e2caaa-92c3-4698-92c7-f3071c4dda20","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.266892} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2061acd7-4c64-4694-bba7-9c1e8ddc6e17","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.2669895} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"22ed65cd41a71f1cf6e7f82b3655759c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.266865800Z"}]},"request_id":"3647adf3-8147-4a71-bd3e-84c3272b44c6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.2703533} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"22ed65cd41a71f1cf6e7f82b3655759c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"22ed65cd41a71f1cf6e7f82b3655759c"} gateway-1 | {"time_local":"07/May/2025:16:13:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"22ed65cd41a71f1cf6e7f82b3655759c"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"22ed65cd41a71f1cf6e7f82b3655759c","responseTime":86,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Nn0.Y8QPtimFxd3bPN7oJmh5VtMfYTeand2TDyLtvZzbquc","level":"info","message":"auth send jwt","requestID":"5f2b640021357fa847505b0c8259787b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5f2b640021357fa847505b0c8259787b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"5f2b640021357fa847505b0c8259787b"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.699156,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5f2b640021357fa847505b0c8259787b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634396,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5Nn0.Y8QPtimFxd3bPN7oJmh5VtMfYTeand2TDyLtvZzbquc"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"5f2b640021357fa847505b0c8259787b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6e9f0602-677c-4f62-a4a0-c8d59a02fdad","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.314507} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5f2b640021357fa847505b0c8259787b","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"acd05a40-9f17-4db2-abc0-d8ebb6406017","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.3183284} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"5f2b640021357fa847505b0c8259787b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"b0439fca-0595-4c82-be5c-22757d7b5a00","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.327142} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a65ddba9-b2af-47c8-92c5-e3dc7d3fcf39","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.3273876} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"5f2b640021357fa847505b0c8259787b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.327115362Z"}]},"request_id":"19b2b823-603a-45ff-9c05-d27e78625f32","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634396.3555534} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5f2b640021357fa847505b0c8259787b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"5f2b640021357fa847505b0c8259787b"} device-1 | {"level":"info","message":"POST /devices? 201 80ms","method":"POST","requestID":"5f2b640021357fa847505b0c8259787b","responseTime":80,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.084","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5f2b640021357fa847505b0c8259787b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5N30.IlfGgcbGFgkno0jr4FMbM0aFrteXDmzeB_1Zt17fV60","level":"info","message":"auth send jwt","requestID":"d52360823530fe6b67dc2158afb6ce50"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d52360823530fe6b67dc2158afb6ce50","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"d52360823530fe6b67dc2158afb6ce50"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:17Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.624296,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d52360823530fe6b67dc2158afb6ce50","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634397,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5N30.IlfGgcbGFgkno0jr4FMbM0aFrteXDmzeB_1Zt17fV60"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"d52360823530fe6b67dc2158afb6ce50","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.327115362Z"}]},"request_id":"f468777f-bda1-4c89-ac56-a0d2d40abefc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634397.3175826} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d52360823530fe6b67dc2158afb6ce50","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"94334c23-c934-41b7-a385-7010592d0f69","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634397.321355} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"d52360823530fe6b67dc2158afb6ce50","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.327115362Z"}]},"request_id":"4d2aa6eb-bd50-4769-be97-bfe234507aa7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634397.3678463} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d52360823530fe6b67dc2158afb6ce50","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"d52360823530fe6b67dc2158afb6ce50"} gateway-1 | {"time_local":"07/May/2025:16:13:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.087","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"d52360823530fe6b67dc2158afb6ce50"} device-1 | {"level":"info","message":"PATCH /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24 200 84ms","method":"PATCH","requestID":"d52360823530fe6b67dc2158afb6ce50","responseTime":84,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5N30.IlfGgcbGFgkno0jr4FMbM0aFrteXDmzeB_1Zt17fV60","level":"info","message":"auth send jwt","requestID":"67401285f0a6e31e4f619b70922baf22"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"67401285f0a6e31e4f619b70922baf22","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"67401285f0a6e31e4f619b70922baf22"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:17Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.73805,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"67401285f0a6e31e4f619b70922baf22","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634397,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5N30.IlfGgcbGFgkno0jr4FMbM0aFrteXDmzeB_1Zt17fV60"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"67401285f0a6e31e4f619b70922baf22","responseTime":2,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:13:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/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.18","requestID":"67401285f0a6e31e4f619b70922baf22"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"67401285f0a6e31e4f619b70922baf22"} device-1 | {"level":"info","message":"POST /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/websocket 200 36ms","method":"POST","requestID":"67401285f0a6e31e4f619b70922baf22","responseTime":36,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ecf0ebfb0a2a4bcf6b982243ac8e11cd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ecf0ebfb0a2a4bcf6b982243ac8e11cd","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/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":"ecf0ebfb0a2a4bcf6b982243ac8e11cd"} device-1 | {"level":"info","message":"OPTIONS /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/websocket 200 1ms","method":"OPTIONS","requestID":"ecf0ebfb0a2a4bcf6b982243ac8e11cd","responseTime":1,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8","level":"info","message":"auth send jwt","requestID":"5cc7f420b4f702b5d4c467c401ea94bf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5cc7f420b4f702b5d4c467c401ea94bf","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"5cc7f420b4f702b5d4c467c401ea94bf"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.812514,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5cc7f420b4f702b5d4c467c401ea94bf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5cc7f420b4f702b5d4c467c401ea94bf","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"5cc7f420b4f702b5d4c467c401ea94bf"} device-1 | {"level":"info","message":"POST /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/websocket 200 37ms","method":"POST","requestID":"5cc7f420b4f702b5d4c467c401ea94bf","responseTime":37,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5cc7f420b4f702b5d4c467c401ea94bf"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8","level":"info","message":"auth send jwt","requestID":"563a8d14200e4b1b7a1d669307169a93"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"563a8d14200e4b1b7a1d669307169a93","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"563a8d14200e4b1b7a1d669307169a93"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.90428,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"563a8d14200e4b1b7a1d669307169a93","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"563a8d14200e4b1b7a1d669307169a93","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.266865800Z"}]},"request_id":"8991bcfa-dc6c-4a81-beb5-111e844c1a54","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634398.801256} authorization-1 | {"level":"info","message":"POST /relations/query 200 23ms","method":"POST","requestID":"563a8d14200e4b1b7a1d669307169a93","responseTime":23,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"563a8d14200e4b1b7a1d669307169a93"} gateway-1 | {"time_local":"07/May/2025:16:13:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"563a8d14200e4b1b7a1d669307169a93"} device-1 | {"level":"info","message":"GET /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b? 200 33ms","method":"GET","requestID":"563a8d14200e4b1b7a1d669307169a93","responseTime":33,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8","level":"info","message":"auth send jwt","requestID":"70bf8b06bf882e50e41d3b5b8b34b80a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"70bf8b06bf882e50e41d3b5b8b34b80a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"70bf8b06bf882e50e41d3b5b8b34b80a"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.469868,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"70bf8b06bf882e50e41d3b5b8b34b80a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"70bf8b06bf882e50e41d3b5b8b34b80a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.327115362Z"}]},"request_id":"5af5cc1d-c5b2-45e6-8042-513a68b56c91","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634398.8181114} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"70bf8b06bf882e50e41d3b5b8b34b80a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"70bf8b06bf882e50e41d3b5b8b34b80a"} gateway-1 | {"time_local":"07/May/2025:16:13:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24? 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":"70bf8b06bf882e50e41d3b5b8b34b80a"} device-1 | {"level":"info","message":"GET /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24? 200 10ms","method":"GET","requestID":"70bf8b06bf882e50e41d3b5b8b34b80a","responseTime":10,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8","level":"info","message":"auth send jwt","requestID":"f3e83827ff802639da47b2f0800af658"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f3e83827ff802639da47b2f0800af658","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"f3e83827ff802639da47b2f0800af658"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.746801,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f3e83827ff802639da47b2f0800af658","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"f3e83827ff802639da47b2f0800af658","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Attempting to run experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Attempting to book experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully booked experiment","requestID":"f3e83827ff802639da47b2f0800af658"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"307e5030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"307e7740-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.624282,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"307e5030-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"307e5030-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.490601,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"307e7740-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"307e7740-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.266865800Z"}]},"request_id":"fbe2a952-ad2d-4369-ae9e-20fcf05818d0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634398.90665} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"307e5030-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.327115362Z"}]},"request_id":"bbca9892-c6e5-4b80-b08f-a03daed221e5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634398.907208} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"307e7740-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"307e5030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b? 200 11ms","method":"GET","requestID":"307e5030-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"307e7740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24? 200 11ms","method":"GET","requestID":"307e7740-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Setting up experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully locked booking for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Attempting to update booking for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully updated booking for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully set up experiment","requestID":"f3e83827ff802639da47b2f0800af658"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30888960-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3088d780-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"308ca810-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully running experiment","requestID":"f3e83827ff802639da47b2f0800af658"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.942887,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"30888960-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"30888960-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.80162,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3088d780-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3088d780-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.864938,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"93020a02-6dc0-474b-bd0a-0b5c72bd21fd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634398.9994051} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"308ca810-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","rebac_allow":false,"scope_allow":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":"308ca810-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.266865800Z"}]},"request_id":"5c7790a6-2036-487c-8ca9-47fd38cbc9a2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.001959} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"30888960-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.327115362Z"}]},"request_id":"12390ce6-b9f9-4780-a5f5-d6a47f14444f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.0048745} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"308ca810-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling 200 12ms","method":"POST","requestID":"308ca810-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3088d780-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3138dcaa-e394-4e4c-96dd-c5de93abe14d#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3138dcaa-e394-4e4c-96dd-c5de93abe14d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d9f31eb5-675b-4675-a093-bb371d9c2623","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.008317} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"308ef200-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8609f09d-3d67-454f-9b3a-58ef5c8862a3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.0087142} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30888960-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b? 200 44ms","method":"GET","requestID":"30888960-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3088d780-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"f3e83827ff802639da47b2f0800af658","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} device-1 | {"level":"info","message":"GET /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24? 200 43ms","method":"GET","requestID":"3088d780-2b5e-11f0-8e1f-5304d0938eae","responseTime":43,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a685fa3c-9d9b-44a1-bfa6-3a3e08adbe2c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.0126412} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.791688,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"308ef200-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","rebac_allow":false,"scope_allow":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":"308ef200-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30902a80-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"level":"info","message":"POST /experiments? 201 193ms","method":"POST","requestID":"f3e83827ff802639da47b2f0800af658","responseTime":193,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"07/May/2025:16:13:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f3e83827ff802639da47b2f0800af658"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"308ef200-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} device-1 | {"level":"info","message":"POST /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling 200 35ms","method":"POST","requestID":"308ef200-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"25f2548c-a0b9-4686-8d57-98e8724c44b6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.0451987} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.180118,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OX0.Nb5U96raCz3dMdVDXAoeIwd9JQaB7LXztqezor6N3Qg","level":"info","message":"auth send jwt","requestID":"986199c94cb7677a6c6401a2c0987988"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"30902a80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","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 26ms","method":"GET","requestID":"986199c94cb7677a6c6401a2c0987988","responseTime":26,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"30902a80-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"986199c94cb7677a6c6401a2c0987988"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30902a80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} device-1 | {"level":"info","message":"POST /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling 200 35ms","method":"POST","requestID":"30902a80-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.930119,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"986199c94cb7677a6c6401a2c0987988","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634399,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OX0.Nb5U96raCz3dMdVDXAoeIwd9JQaB7LXztqezor6N3Qg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"986199c94cb7677a6c6401a2c0987988","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3095cfd0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.266865800Z"}]},"request_id":"07891cb7-92b8-4504-94f0-1a07654173b2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.0565782} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e71196eb-5c67-4428-88a4-26fc206497a5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.0567906} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"986199c94cb7677a6c6401a2c0987988","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.277567,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3095cfd0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","rebac_allow":false,"scope_allow":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":"3095cfd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"986199c94cb7677a6c6401a2c0987988"} gateway-1 | {"time_local":"07/May/2025:16:13:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"986199c94cb7677a6c6401a2c0987988"} device-1 | {"level":"info","message":"GET /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b? 200 12ms","method":"GET","requestID":"986199c94cb7677a6c6401a2c0987988","responseTime":12,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3095cfd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling 200 8ms","method":"POST","requestID":"3095cfd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Building connection plan","requestID":"f3e83827ff802639da47b2f0800af658"} 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":"225a29f3-2dbf-46ef-aca5-48d22247f6a1"},{"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":"214fc40e-121d-4cd9-9786-a792a7c40877"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"100215d5-b471-474b-aad5-c8c88662875f"}]},"level":"info","message":"Built pairwise service configurations","requestID":"f3e83827ff802639da47b2f0800af658"} 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/1e7e3291-39ba-4bd6-9bef-1546b7007c24"},{"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/6037ec3e-bb3d-42e8-9fdb-1280ad13788b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"f3e83827ff802639da47b2f0800af658"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OX0.Nb5U96raCz3dMdVDXAoeIwd9JQaB7LXztqezor6N3Qg","level":"info","message":"auth send jwt","requestID":"62585a81840b6c06ca7ab8496e8c1ed3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"62585a81840b6c06ca7ab8496e8c1ed3","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"62585a81840b6c06ca7ab8496e8c1ed3"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"client_addr":"127.0.0.1:59568","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.938589,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634398,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OH0.4jYSzWva4rkceGQotG_aPhgMo6_wE6PbndCD6v2jGI8"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.243595,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"62585a81840b6c06ca7ab8496e8c1ed3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634399,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDM5OX0.Nb5U96raCz3dMdVDXAoeIwd9JQaB7LXztqezor6N3Qg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"62585a81840b6c06ca7ab8496e8c1ed3","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:16.327115362Z"}]},"request_id":"1acd19d9-9d24-4916-ab1b-a5818c88ff0f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.0972583} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"62585a81840b6c06ca7ab8496e8c1ed3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"62585a81840b6c06ca7ab8496e8c1ed3"} gateway-1 | {"time_local":"07/May/2025:16:13:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24? 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":"62585a81840b6c06ca7ab8496e8c1ed3"} device-1 | {"level":"info","message":"GET /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24? 200 11ms","method":"GET","requestID":"62585a81840b6c06ca7ab8496e8c1ed3","responseTime":11,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"68885a14-108b-4f1e-bbde-3d051443676e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.101213} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"71406a9a-d3e4-4b83-b610-f373414571ea","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.1015925} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf'","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf'","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"30977d80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf","device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","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/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"f3e83827ff802639da47b2f0800af658"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30ab53a0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e5fd086e-b68f-4c35-9206-6d1185a91f2a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.1993077} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.861384,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"30ab53a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","rebac_allow":false,"scope_allow":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":"30ab53a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30ab53a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling 200 10ms","method":"POST","requestID":"30ab53a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling"} device-1 | {"device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30ad4f70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"content":{"sdp":"v=0\r\no=- 2844561523345068396 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:x/Sb\r\na=ice-pwd:pFQauhF0ttQqBGVqtOj1Yl/2\r\na=ice-options:trickle\r\na=fingerprint:sha-256 35:29:07:53:DD:83:97:12:26:D9:95:E4:97:30:F3:71:6D:BA:46:15:61:51:76:3B:85:C4:E9:73:0F:C7:54:65\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cddc1300-e064-41a3-aace-2dbdcb614def","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634399.2357082} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.82043,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:19Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"30ad4f70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","rebac_allow":false,"scope_allow":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":"30ad4f70-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30ad4f70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling 200 32ms","method":"POST","requestID":"30ad4f70-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling"} device-1 | {"device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"99071549-0469-494e-805a-70dee7980acf","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/99071549-0469-494e-805a-70dee7980acf' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"99071549-0469-494e-805a-70dee7980acf","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d6f592deb7a52b9a9c8b9c9d40a6c0b4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d6f592deb7a52b9a9c8b9c9d40a6c0b4","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/1e7e3291-39ba-4bd6-9bef-1546b7007c24"},{"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/6037ec3e-bb3d-42e8-9fdb-1280ad13788b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf"}}},"level":"info","message":"received a callback","requestID":"d6f592deb7a52b9a9c8b9c9d40a6c0b4"} device-1 | {"content":{"candidate":"candidate:1182814454 1 udp 2113937151 a8abd3d2-a5ba-48cc-afbd-694c543a8143.local 43199 typ host generation 0 ufrag x/Sb network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"d6f592deb7a52b9a9c8b9c9d40a6c0b4","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"d6f592deb7a52b9a9c8b9c9d40a6c0b4"} device-1 | {"data":{"peerconnection":"99071549-0469-494e-805a-70dee7980acf","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"99071549-0469-494e-805a-70dee7980acf","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/99071549-0469-494e-805a-70dee7980acf' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"99071549-0469-494e-805a-70dee7980acf","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0e4064b59936338e450b8f6656f7b714","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0e4064b59936338e450b8f6656f7b714","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24"},{"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/6037ec3e-bb3d-42e8-9fdb-1280ad13788b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf"}}},"level":"info","message":"received a callback","requestID":"0e4064b59936338e450b8f6656f7b714"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"31e58150-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F99071549-0469-494e-805a-70dee7980acf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"995732ec-fc4d-4abc-b3ef-60c628ead886","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.2577682} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.437027,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"31e58150-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf","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":"31e58150-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"31e58150-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/99071549-0469-494e-805a-70dee7980acf 200 8ms","method":"GET","requestID":"31e58150-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/peerconnections/99071549-0469-494e-805a-70dee7980acf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"31ec3810-2b5e-11f0-8e1f-5304d0938eae"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"0e4064b59936338e450b8f6656f7b714"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"0e4064b59936338e450b8f6656f7b714","responseTime":51,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fd31db20-f3d4-473a-a4be-27c0e7c5ba27","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.30129} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.751353,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"31ec3810-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","rebac_allow":false,"scope_allow":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":"31ec3810-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"31ec3810-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling 200 8ms","method":"POST","requestID":"31ec3810-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"31edbeb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"534f8f33-273a-4707-8839-7fd770cce7f5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.3109827} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.131124,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"31edbeb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","rebac_allow":false,"scope_allow":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":"31edbeb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"31edbeb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling 200 7ms","method":"POST","requestID":"31edbeb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI","level":"info","message":"auth send jwt","requestID":"c584c3b88c35a19e9b015ab3fec41080"} authentication-1 | {"level":"info","message":"GET /auth 200 22ms","method":"GET","requestID":"c584c3b88c35a19e9b015ab3fec41080","responseTime":22,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","requestID":"c584c3b88c35a19e9b015ab3fec41080"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.689404,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c584c3b88c35a19e9b015ab3fec41080","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634401,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c584c3b88c35a19e9b015ab3fec41080","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","requestID":"c584c3b88c35a19e9b015ab3fec41080"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c584c3b88c35a19e9b015ab3fec41080"} experiment-1 | {"level":"info","message":"GET /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d 200 8ms","method":"GET","requestID":"c584c3b88c35a19e9b015ab3fec41080","responseTime":8,"status":200,"url":"/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI","level":"info","message":"auth send jwt","requestID":"a9d9ef2f8f75ab78b420f46c697f288f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a9d9ef2f8f75ab78b420f46c697f288f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","requestID":"a9d9ef2f8f75ab78b420f46c697f288f"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.618077,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a9d9ef2f8f75ab78b420f46c697f288f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634401,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a9d9ef2f8f75ab78b420f46c697f288f","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Attempting to finish experiment","requestID":"a9d9ef2f8f75ab78b420f46c697f288f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"31f6e670-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.877748,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"31f6e670-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634401,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"31f6e670-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf","device":"6037ec3e-bb3d-42e8-9fdb-1280ad13788b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"1e7e3291-39ba-4bd6-9bef-1546b7007c24","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/99071549-0469-494e-805a-70dee7980acf' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"99071549-0469-494e-805a-70dee7980acf","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F99071549-0469-494e-805a-70dee7980acf': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F99071549-0469-494e-805a-70dee7980acf","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"c137a8d7-0688-42bc-9c0f-4b941aba93a6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.4052377} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f52af594-9eeb-439d-8b1a-1795e12a79fe","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.4054527} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d242737f03cbbb1f150c23830a5fa617","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d242737f03cbbb1f150c23830a5fa617","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"31f6e670-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/update"} 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/1e7e3291-39ba-4bd6-9bef-1546b7007c24"},{"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/6037ec3e-bb3d-42e8-9fdb-1280ad13788b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf"}}},"level":"info","message":"received a callback","requestID":"d242737f03cbbb1f150c23830a5fa617"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"fb6ae1d5fa9f1e054ba166526b5582da","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fb6ae1d5fa9f1e054ba166526b5582da","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/1e7e3291-39ba-4bd6-9bef-1546b7007c24"},{"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/6037ec3e-bb3d-42e8-9fdb-1280ad13788b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/99071549-0469-494e-805a-70dee7980acf"}}},"level":"info","message":"received a callback","requestID":"fb6ae1d5fa9f1e054ba166526b5582da"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"31f6e670-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/99071549-0469-494e-805a-70dee7980acf 204 75ms","method":"DELETE","requestID":"31f6e670-2b5e-11f0-8e1f-5304d0938eae","responseTime":75,"status":204,"url":"/peerconnections/99071549-0469-494e-805a-70dee7980acf"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"},"level":"info","message":"Successfully finished experiment","requestID":"a9d9ef2f8f75ab78b420f46c697f288f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"32047b00-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e7e3291-39ba-4bd6-9bef-1546b7007c24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4d8b376f-cbaa-4fa5-82a0-d9e63d3fe5ba","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.4597647} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.233405,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"32047b00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24","object_type":"device","rebac_allow":false,"scope_allow":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":"32047b00-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"32047b00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling 200 7ms","method":"POST","requestID":"32047b00-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3205da90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3138dcaa-e394-4e4c-96dd-c5de93abe14d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3138dcaa-e394-4e4c-96dd-c5de93abe14d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"520f000c-150d-4995-9c20-c6f15ca1fc1b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.4941196} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c47115d8-b167-4f09-8398-5770aec2625d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.4940941} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6037ec3e-bb3d-42e8-9fdb-1280ad13788b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e1b9d58-d4c4-4576-9eba-54cb52259b94","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.494264} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"a9d9ef2f8f75ab78b420f46c697f288f","responseTime":42,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.489766,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3205da90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b","object_type":"device","rebac_allow":false,"scope_allow":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":"3205da90-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3205da90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling 200 36ms","method":"POST","requestID":"3205da90-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/6037ec3e-bb3d-42e8-9fdb-1280ad13788b/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d","requestID":"a9d9ef2f8f75ab78b420f46c697f288f"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.234","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9d9ef2f8f75ab78b420f46c697f288f"} experiment-1 | {"level":"info","message":"DELETE /experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d 204 231ms","method":"DELETE","requestID":"a9d9ef2f8f75ab78b420f46c697f288f","responseTime":231,"status":204,"url":"/experiments/3138dcaa-e394-4e4c-96dd-c5de93abe14d"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +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.178","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"e8e2f47f9749f536dce945dcd764142c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"d242737f03cbbb1f150c23830a5fa617","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch","requestID":"d242737f03cbbb1f150c23830a5fa617"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 182ms","method":"POST","requestID":"fb6ae1d5fa9f1e054ba166526b5582da","responseTime":182,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"fb6ae1d5fa9f1e054ba166526b5582da"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI","level":"info","message":"auth send jwt","requestID":"e608af8327457c36831dbe1a127a5f7a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e608af8327457c36831dbe1a127a5f7a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e608af8327457c36831dbe1a127a5f7a"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2784","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":"d6b9228e080730dc67369672b182c576"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1e7e3291-39ba-4bd6-9bef-1546b7007c24' closed"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.088211,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e608af8327457c36831dbe1a127a5f7a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634401,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"e608af8327457c36831dbe1a127a5f7a","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/6037ec3e-bb3d-42e8-9fdb-1280ad13788b' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"aa90454a-5c9b-4044-ac39-f8bc2bb2f315","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.6450799} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e608af8327457c36831dbe1a127a5f7a","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4669b709-5e26-4203-8cab-8721c35164a6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.6502888} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e608af8327457c36831dbe1a127a5f7a","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"ed6b37a8-9a87-49f5-b031-f7a8f44a8366","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.682558} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e96ae61b-ede6-4713-8c87-c069bdadcd93","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.6835306} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"e608af8327457c36831dbe1a127a5f7a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.682530914Z"}]},"request_id":"884799ee-0c54-48f2-a8fe-0446586295ff","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.6889598} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e608af8327457c36831dbe1a127a5f7a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e608af8327457c36831dbe1a127a5f7a"} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"e608af8327457c36831dbe1a127a5f7a","responseTime":93,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.100","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e608af8327457c36831dbe1a127a5f7a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI","level":"info","message":"auth send jwt","requestID":"94c2e29915a0d96a82872948e631b07b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"94c2e29915a0d96a82872948e631b07b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"94c2e29915a0d96a82872948e631b07b"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.673901,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"94c2e29915a0d96a82872948e631b07b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634401,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMX0.KrZZaBw_QvTeTM1iObl_vz4NaKaeBPmtFANqdTonoMI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"94c2e29915a0d96a82872948e631b07b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5414cd9f-12cd-47f4-93d3-d88d8ccf3c7a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.7380645} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"94c2e29915a0d96a82872948e631b07b","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"be0c8c13-8736-4b89-bf55-120eb9103293","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.7429123} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"94c2e29915a0d96a82872948e631b07b","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"edccc244-5cb3-44e9-aba8-0e25c28eaab0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.7529764} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"18f86056-5c40-4c93-9b0e-04b103db1932","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.753234} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"94c2e29915a0d96a82872948e631b07b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.752954992Z"}]},"request_id":"4f514444-06f1-4e35-b054-36e10703f186","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634401.7834704} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"94c2e29915a0d96a82872948e631b07b","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"94c2e29915a0d96a82872948e631b07b"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"94c2e29915a0d96a82872948e631b07b","responseTime":89,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"94c2e29915a0d96a82872948e631b07b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMn0.ZjP1FwYtTFHK8MU026skuLQmayC9Q5xjIzCEfC-exv0","level":"info","message":"auth send jwt","requestID":"a601de281c6bcc10264a17564155e414"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"a601de281c6bcc10264a17564155e414","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"a601de281c6bcc10264a17564155e414"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:22Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685748,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a601de281c6bcc10264a17564155e414","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634402,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMn0.ZjP1FwYtTFHK8MU026skuLQmayC9Q5xjIzCEfC-exv0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a601de281c6bcc10264a17564155e414","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.752954992Z"}]},"request_id":"e125de14-19f5-4065-9c3d-277f3d65d6b7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634402.7459435} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a601de281c6bcc10264a17564155e414","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9e21ffb-1f06-437b-9e01-279f64438c86","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634402.749899} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"a601de281c6bcc10264a17564155e414","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.752954992Z"}]},"request_id":"903c2fef-c0f6-4253-8ee7-f46f5cde1222","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634402.7597532} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a601de281c6bcc10264a17564155e414","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"a601de281c6bcc10264a17564155e414"} gateway-1 | {"time_local":"07/May/2025:16:13:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a542ae94-e796-4dee-8e8f-2489486fd891 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.075","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"a601de281c6bcc10264a17564155e414"} device-1 | {"level":"info","message":"PATCH /devices/a542ae94-e796-4dee-8e8f-2489486fd891 200 47ms","method":"PATCH","requestID":"a601de281c6bcc10264a17564155e414","responseTime":47,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMn0.ZjP1FwYtTFHK8MU026skuLQmayC9Q5xjIzCEfC-exv0","level":"info","message":"auth send jwt","requestID":"854c053b25474dc9693b0291756883ef"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"854c053b25474dc9693b0291756883ef","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"854c053b25474dc9693b0291756883ef"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:22Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.596613,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:22Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"854c053b25474dc9693b0291756883ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634402,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwMn0.ZjP1FwYtTFHK8MU026skuLQmayC9Q5xjIzCEfC-exv0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"854c053b25474dc9693b0291756883ef","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"854c053b25474dc9693b0291756883ef"} gateway-1 | {"time_local":"07/May/2025:16:13:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a542ae94-e796-4dee-8e8f-2489486fd891/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.18","requestID":"854c053b25474dc9693b0291756883ef"} device-1 | {"level":"info","message":"POST /devices/a542ae94-e796-4dee-8e8f-2489486fd891/websocket 200 15ms","method":"POST","requestID":"854c053b25474dc9693b0291756883ef","responseTime":15,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"15199ef69346677d4449aed1e9008310","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"15199ef69346677d4449aed1e9008310","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/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":"15199ef69346677d4449aed1e9008310"} device-1 | {"level":"info","message":"OPTIONS /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/websocket 200 1ms","method":"OPTIONS","requestID":"15199ef69346677d4449aed1e9008310","responseTime":1,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE","level":"info","message":"auth send jwt","requestID":"8a3e30702480fa62577f9036221ff73f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8a3e30702480fa62577f9036221ff73f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8a3e30702480fa62577f9036221ff73f"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.896278,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8a3e30702480fa62577f9036221ff73f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8a3e30702480fa62577f9036221ff73f","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8a3e30702480fa62577f9036221ff73f"} gateway-1 | {"time_local":"07/May/2025:16:13:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8a3e30702480fa62577f9036221ff73f"} device-1 | {"level":"info","message":"POST /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/websocket 200 37ms","method":"POST","requestID":"8a3e30702480fa62577f9036221ff73f","responseTime":37,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE","level":"info","message":"auth send jwt","requestID":"3c6caca6592a3160a3a12cdf13da05e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3c6caca6592a3160a3a12cdf13da05e5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c6caca6592a3160a3a12cdf13da05e5"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.660029,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3c6caca6592a3160a3a12cdf13da05e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3c6caca6592a3160a3a12cdf13da05e5","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.682530914Z"}]},"request_id":"c93c1e95-5334-4b26-a3c5-ca8953b96810","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.2252772} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"3c6caca6592a3160a3a12cdf13da05e5","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c6caca6592a3160a3a12cdf13da05e5"} gateway-1 | {"time_local":"07/May/2025:16:13:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2? 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":"3c6caca6592a3160a3a12cdf13da05e5"} device-1 | {"level":"info","message":"GET /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2? 200 33ms","method":"GET","requestID":"3c6caca6592a3160a3a12cdf13da05e5","responseTime":33,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE","level":"info","message":"auth send jwt","requestID":"f4bed5a7c04752b880e768c15fc3a28e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f4bed5a7c04752b880e768c15fc3a28e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f4bed5a7c04752b880e768c15fc3a28e"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701416,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f4bed5a7c04752b880e768c15fc3a28e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f4bed5a7c04752b880e768c15fc3a28e","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.752954992Z"}]},"request_id":"c1179d3a-52ad-40b0-b85f-4dfb6eca28e1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.2382147} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f4bed5a7c04752b880e768c15fc3a28e","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f4bed5a7c04752b880e768c15fc3a28e"} device-1 | {"level":"info","message":"GET /devices/a542ae94-e796-4dee-8e8f-2489486fd891? 200 9ms","method":"GET","requestID":"f4bed5a7c04752b880e768c15fc3a28e","responseTime":9,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891?"} gateway-1 | {"time_local":"07/May/2025:16:13:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a542ae94-e796-4dee-8e8f-2489486fd891? 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":"f4bed5a7c04752b880e768c15fc3a28e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE","level":"info","message":"auth send jwt","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.69203,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f6dbdbc31b50032f6f1cee7de1dd899d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Attempting to run experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Attempting to book experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully booked experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"33b5ad70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"33b5d480-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628394,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33b5ad70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"33b5ad70-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674667,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33b5d480-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"33b5d480-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.682530914Z"}]},"request_id":"e1a25fc8-0d99-4b7b-8071-53a3ac10eb64","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.3260233} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"33b5ad70-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.752954992Z"}]},"request_id":"c4988ea4-7ca1-4391-a14b-ad20d06cc5eb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.3290682} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"33b5ad70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2? 200 34ms","method":"GET","requestID":"33b5ad70-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"33b5d480-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"33b5d480-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/a542ae94-e796-4dee-8e8f-2489486fd891? 200 36ms","method":"GET","requestID":"33b5d480-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Setting up experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully locked booking for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Attempting to update booking for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully updated booking for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully set up experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"33c84b10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"33c87220-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33c8c040-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691531,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully running experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33c84b10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"33c84b10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.710945,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33c87220-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"33c87220-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f8fa25fc-c7d5-4f88-b8d8-33533f39deda","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.4270043} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.752954992Z"}]},"request_id":"7182d429-e4cd-4376-b14d-4ecae77f6381","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.4281688} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.86261,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33c8c040-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","rebac_allow":false,"scope_allow":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":"33c8c040-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"33c87220-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.682530914Z"}]},"request_id":"02f66cdb-3153-4edd-8327-bdd98d8b699a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.4288628} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"33c84b10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc792b93c-61d4-4c6e-8d00-66608750d5a9#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc792b93c-61d4-4c6e-8d00-66608750d5a9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"bd96737d-1a02-402e-85ea-45cfa496f02a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.4328783} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7bbb03db-1b07-4ab4-8e00-55b20224f25e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.433191} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33c8c040-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling 200 16ms","method":"POST","requestID":"33c8c040-2b5e-11f0-8e1f-5304d0938eae","responseTime":16,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"33c87220-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/a542ae94-e796-4dee-8e8f-2489486fd891? 200 19ms","method":"GET","requestID":"33c87220-2b5e-11f0-8e1f-5304d0938eae","responseTime":19,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"33c84b10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2? 200 22ms","method":"GET","requestID":"33c84b10-2b5e-11f0-8e1f-5304d0938eae","responseTime":22,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33cbcd80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33d06160-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"29ee489d-9ac0-4505-9ce3-4c29b7cef39e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.4714048} experiment-1 | {"level":"info","message":"POST /experiments? 201 226ms","method":"POST","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d","responseTime":226,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"07/May/2025:16:13:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.229","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} authorization-1 | {"client_addr":"127.0.0.1:34446","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.416239,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33cbcd80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","rebac_allow":false,"scope_allow":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":"33cbcd80-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE","level":"info","message":"auth send jwt","requestID":"40f6dadf3e701c58e5ac6679d2229e21"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"40f6dadf3e701c58e5ac6679d2229e21","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0615872a-fae9-4f15-a178-fe4e8169712a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.4780586} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.287789,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33d06160-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","rebac_allow":false,"scope_allow":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":"33d06160-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33cbcd80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling 200 44ms","method":"POST","requestID":"33cbcd80-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"40f6dadf3e701c58e5ac6679d2229e21"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33d06160-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling 200 17ms","method":"POST","requestID":"33d06160-2b5e-11f0-8e1f-5304d0938eae","responseTime":17,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.972512,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"40f6dadf3e701c58e5ac6679d2229e21","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"40f6dadf3e701c58e5ac6679d2229e21","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.682530914Z"}]},"request_id":"610894a8-5442-493b-850b-e90cbe434044","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.492128} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33d6f110-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"40f6dadf3e701c58e5ac6679d2229e21","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"40f6dadf3e701c58e5ac6679d2229e21"} gateway-1 | {"time_local":"07/May/2025:16:13:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"40f6dadf3e701c58e5ac6679d2229e21"} device-1 | {"level":"info","message":"GET /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2? 200 34ms","method":"GET","requestID":"40f6dadf3e701c58e5ac6679d2229e21","responseTime":34,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d01192f-cedf-48cd-8218-a5b359b85860","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.5203083} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.670617,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33d6f110-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","rebac_allow":false,"scope_allow":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":"33d6f110-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE","level":"info","message":"auth send jwt","requestID":"90e5eeba199b776b3649849af80047bd"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"90e5eeba199b776b3649849af80047bd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33d6f110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling 200 11ms","method":"POST","requestID":"33d6f110-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"90e5eeba199b776b3649849af80047bd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Building connection plan","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} 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":"23822de7-4e48-4d17-96ed-7e1a57011bff"},{"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":"a34bab52-8930-4c8d-9d8d-7642affe6a57"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e3743835-8529-4df7-a5ed-a764a3fa45f2"}]},"level":"info","message":"Built pairwise service configurations","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} 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/a542ae94-e796-4dee-8e8f-2489486fd891"},{"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/39cb9b8b-1664-480a-9d4b-5419cab18ec2"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.701485,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"90e5eeba199b776b3649849af80047bd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"90e5eeba199b776b3649849af80047bd","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.576034,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634404,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNH0.ajcJj-WV3S61bg8LrCFtUaIGuqOl0oPHPYhK-R-CQKE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:21.752954992Z"}]},"request_id":"d29df84a-0fc5-42a6-90a2-e171fd1f8f14","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.5310924} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"90e5eeba199b776b3649849af80047bd","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"90e5eeba199b776b3649849af80047bd"} device-1 | {"level":"info","message":"GET /devices/a542ae94-e796-4dee-8e8f-2489486fd891? 200 10ms","method":"GET","requestID":"90e5eeba199b776b3649849af80047bd","responseTime":10,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891?"} gateway-1 | {"time_local":"07/May/2025:16:13:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a542ae94-e796-4dee-8e8f-2489486fd891? 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":"90e5eeba199b776b3649849af80047bd"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"901796ff-cc19-4920-9f37-e542269c10bc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.5634687} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7e0c379-b3dc-4130-8ff6-a5a3a3891532","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.5635564} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f'","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f'","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"33d913f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f","device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","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/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"f6dbdbc31b50032f6f1cee7de1dd899d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33e8a450-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c9c4df3-529a-4853-8bf5-9bc3838312b8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.6573908} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.436953,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33e8a450-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","rebac_allow":false,"scope_allow":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":"33e8a450-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33e8a450-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling 200 32ms","method":"POST","requestID":"33e8a450-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33edad60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a74f79e8-c59f-4597-aae2-3084bf02b9dc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634404.6662655} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.281062,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"33edad60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","rebac_allow":false,"scope_allow":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":"33edad60-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33edad60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling 200 8ms","method":"POST","requestID":"33edad60-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling"} device-1 | {"device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 8736048049416893078 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:xmRV\r\na=ice-pwd:ycyaAbB+df45mh21qRJa5aM0\r\na=ice-options:trickle\r\na=fingerprint:sha-256 B1:C2:E5:5C:D4:F5:48:E1:1A:56:A1:D0:F0:3F:90:AC:2B:8F:3D:C8:D8:97:61:C2:15:91:C5:60:43:92:CC:16\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"deffbd12-5dc4-477c-b0ed-ef490093676f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/deffbd12-5dc4-477c-b0ed-ef490093676f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"deffbd12-5dc4-477c-b0ed-ef490093676f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2a24403d4d0d56546605602ec891edcf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2a24403d4d0d56546605602ec891edcf","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/a542ae94-e796-4dee-8e8f-2489486fd891"},{"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/39cb9b8b-1664-480a-9d4b-5419cab18ec2"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f"}}},"level":"info","message":"received a callback","requestID":"2a24403d4d0d56546605602ec891edcf"} device-1 | {"content":{"candidate":"candidate:3037481561 1 udp 2113937151 a86a3a8d-8dcd-4b11-86e5-849ed5a8e28a.local 60734 typ host generation 0 ufrag xmRV network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} gateway-1 | {"time_local":"07/May/2025:16:13: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"2a24403d4d0d56546605602ec891edcf"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"2a24403d4d0d56546605602ec891edcf","responseTime":6,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"peerconnection":"deffbd12-5dc4-477c-b0ed-ef490093676f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"deffbd12-5dc4-477c-b0ed-ef490093676f","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/deffbd12-5dc4-477c-b0ed-ef490093676f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"deffbd12-5dc4-477c-b0ed-ef490093676f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c65551c3730e6e39547750bff9943c54","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c65551c3730e6e39547750bff9943c54","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/a542ae94-e796-4dee-8e8f-2489486fd891"},{"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/39cb9b8b-1664-480a-9d4b-5419cab18ec2"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f"}}},"level":"info","message":"received a callback","requestID":"c65551c3730e6e39547750bff9943c54"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3529afd0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdeffbd12-5dc4-477c-b0ed-ef490093676f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2aa8eff8-e50c-417b-8ea5-7444bc057b91","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.7381568} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.849472,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3529afd0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f","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":"3529afd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3529afd0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f 200 9ms","method":"GET","requestID":"3529afd0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 55ms","method":"POST","requestID":"c65551c3730e6e39547750bff9943c54","responseTime":55,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.083","http_referrer":"","http_user_agent":"node-fetch","requestID":"c65551c3730e6e39547750bff9943c54"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3530b4b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c73f6582-b072-40ec-b9ce-92ecc6b64447","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.7829673} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.106402,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3530b4b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","rebac_allow":false,"scope_allow":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":"3530b4b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3530b4b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling 200 7ms","method":"POST","requestID":"3530b4b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"35321440-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"85bef2fc-8df9-4afa-bd63-1baad3876c7d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.7921455} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.524831,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNn0.h2Rpu7fQzCQZjpwhGGYPAjEMu7NVxnoqfr9jhhRNH4U","level":"info","message":"auth send jwt","requestID":"c34440ba91d3dd9de15a1bf6b488cad9"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"35321440-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","rebac_allow":false,"scope_allow":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":"35321440-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"c34440ba91d3dd9de15a1bf6b488cad9","responseTime":27,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","requestID":"c34440ba91d3dd9de15a1bf6b488cad9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"35321440-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling 200 32ms","method":"POST","requestID":"35321440-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.722431,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c34440ba91d3dd9de15a1bf6b488cad9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634406,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNn0.h2Rpu7fQzCQZjpwhGGYPAjEMu7NVxnoqfr9jhhRNH4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c34440ba91d3dd9de15a1bf6b488cad9","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","requestID":"c34440ba91d3dd9de15a1bf6b488cad9"} gateway-1 | {"time_local":"07/May/2025:16:13:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c34440ba91d3dd9de15a1bf6b488cad9"} experiment-1 | {"level":"info","message":"GET /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9 200 8ms","method":"GET","requestID":"c34440ba91d3dd9de15a1bf6b488cad9","responseTime":8,"status":200,"url":"/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNn0.h2Rpu7fQzCQZjpwhGGYPAjEMu7NVxnoqfr9jhhRNH4U","level":"info","message":"auth send jwt","requestID":"9cbbb9ed92f033b81d78bd35e1040b72"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9cbbb9ed92f033b81d78bd35e1040b72","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","requestID":"9cbbb9ed92f033b81d78bd35e1040b72"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.741147,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9cbbb9ed92f033b81d78bd35e1040b72","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634406,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNn0.h2Rpu7fQzCQZjpwhGGYPAjEMu7NVxnoqfr9jhhRNH4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"9cbbb9ed92f033b81d78bd35e1040b72","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Attempting to finish experiment","requestID":"9cbbb9ed92f033b81d78bd35e1040b72"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3539dc70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.066877,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3539dc70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634406,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwNn0.h2Rpu7fQzCQZjpwhGGYPAjEMu7NVxnoqfr9jhhRNH4U"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"3539dc70-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f","device":"39cb9b8b-1664-480a-9d4b-5419cab18ec2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"a542ae94-e796-4dee-8e8f-2489486fd891","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/deffbd12-5dc4-477c-b0ed-ef490093676f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"deffbd12-5dc4-477c-b0ed-ef490093676f","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdeffbd12-5dc4-477c-b0ed-ef490093676f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fdeffbd12-5dc4-477c-b0ed-ef490093676f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"8e80e7fd-e5f9-4ab0-a4e7-7ba200f763a6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.8770993} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ea67cf33-231c-4ffd-8c77-9c9f3d78b6b0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.8773172} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"3539dc70-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"756aaf0a39c63cbf83c309084be06904","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"756aaf0a39c63cbf83c309084be06904","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"93a6d9b61a648591dca4926a43bf332f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"93a6d9b61a648591dca4926a43bf332f","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":"connected","url":"http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891"},{"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/39cb9b8b-1664-480a-9d4b-5419cab18ec2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f"}}},"level":"info","message":"received a callback","requestID":"756aaf0a39c63cbf83c309084be06904"} 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/a542ae94-e796-4dee-8e8f-2489486fd891"},{"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/39cb9b8b-1664-480a-9d4b-5419cab18ec2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f"}}},"level":"info","message":"received a callback","requestID":"93a6d9b61a648591dca4926a43bf332f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3539dc70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f 204 80ms","method":"DELETE","requestID":"3539dc70-2b5e-11f0-8e1f-5304d0938eae","responseTime":80,"status":204,"url":"/peerconnections/deffbd12-5dc4-477c-b0ed-ef490093676f"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"},"level":"info","message":"Successfully finished experiment","requestID":"9cbbb9ed92f033b81d78bd35e1040b72"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3547e630-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa542ae94-e796-4dee-8e8f-2489486fd891","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c866e200-4c25-4bf5-949a-3b0377ff8a49","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.9358666} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.44013,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3547e630-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a542ae94-e796-4dee-8e8f-2489486fd891","object_type":"device","rebac_allow":false,"scope_allow":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":"3547e630-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3547e630-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling 200 33ms","method":"POST","requestID":"3547e630-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/a542ae94-e796-4dee-8e8f-2489486fd891/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"354d3d60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc792b93c-61d4-4c6e-8d00-66608750d5a9': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc792b93c-61d4-4c6e-8d00-66608750d5a9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"d14cc009-05e7-4e15-a1d9-8eb55bb7ba59","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.966707} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cff49988-b8ab-46c9-82b6-8dc5933d1747","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.967128} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"9cbbb9ed92f033b81d78bd35e1040b72","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39cb9b8b-1664-480a-9d4b-5419cab18ec2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a8bb919-c505-4823-802e-72efd9ff3056","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634406.9708567} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.801241,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"354d3d60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2","object_type":"device","rebac_allow":false,"scope_allow":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":"354d3d60-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"354d3d60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling 200 9ms","method":"POST","requestID":"354d3d60-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/39cb9b8b-1664-480a-9d4b-5419cab18ec2/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9","requestID":"9cbbb9ed92f033b81d78bd35e1040b72"} gateway-1 | {"time_local":"07/May/2025:16:13:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.209","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9cbbb9ed92f033b81d78bd35e1040b72"} gateway-1 | {"time_local":"07/May/2025:16:13:27 +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.251","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"3daea97e291e974b24cca9174f87f8d6"} experiment-1 | {"level":"info","message":"DELETE /experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9 204 232ms","method":"DELETE","requestID":"9cbbb9ed92f033b81d78bd35e1040b72","responseTime":232,"status":204,"url":"/experiments/c792b93c-61d4-4c6e-8d00-66608750d5a9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwN30.p6xp9H4uXXJ2JiVvXL8oIYo_sXnvFns1NUdsVpuIeEk","level":"info","message":"auth send jwt","requestID":"ceff906fba975388ed44e04d3946f599"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 183ms","method":"POST","requestID":"756aaf0a39c63cbf83c309084be06904","responseTime":183,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.186","http_referrer":"","http_user_agent":"node-fetch","requestID":"756aaf0a39c63cbf83c309084be06904"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ceff906fba975388ed44e04d3946f599","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"ceff906fba975388ed44e04d3946f599"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 187ms","method":"POST","requestID":"93a6d9b61a648591dca4926a43bf332f","responseTime":187,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2784","request_time":"2.887","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9519b3dab90a4d54b37be8e9f45b9ad9"} gateway-1 | {"time_local":"07/May/2025:16:13:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"93a6d9b61a648591dca4926a43bf332f"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:27Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.904178,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ceff906fba975388ed44e04d3946f599","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634407,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwN30.p6xp9H4uXXJ2JiVvXL8oIYo_sXnvFns1NUdsVpuIeEk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ceff906fba975388ed44e04d3946f599","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/a542ae94-e796-4dee-8e8f-2489486fd891' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"357f9d89-0f9c-48dd-9a52-319c89ae4b2e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.1107018} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ceff906fba975388ed44e04d3946f599","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/39cb9b8b-1664-480a-9d4b-5419cab18ec2' 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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e986a983-71e0-4ab0-ad4b-a2c6aecb7668","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.115419} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"ceff906fba975388ed44e04d3946f599","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"953936f8-5d28-48fb-8b3e-d81c6ce84ede","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.124221} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"074c4549-287c-45e6-b576-bb19d59c46ed","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.124322} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"ceff906fba975388ed44e04d3946f599","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.124199996Z"}]},"request_id":"5e96e4f2-4fb2-494a-8066-cb4bf5e74f0f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.1281366} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"ceff906fba975388ed44e04d3946f599","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"ceff906fba975388ed44e04d3946f599"} gateway-1 | {"time_local":"07/May/2025:16:13:27 +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":"ceff906fba975388ed44e04d3946f599"} device-1 | {"level":"info","message":"POST /devices? 201 88ms","method":"POST","requestID":"ceff906fba975388ed44e04d3946f599","responseTime":88,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwN30.p6xp9H4uXXJ2JiVvXL8oIYo_sXnvFns1NUdsVpuIeEk","level":"info","message":"auth send jwt","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:27Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.959736,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634407,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwN30.p6xp9H4uXXJ2JiVvXL8oIYo_sXnvFns1NUdsVpuIeEk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fa8a3c44-fc02-4ef4-93bd-2273769a7975","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.1751587} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7c395863-693e-482d-a568-d027846d98d8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.2039504} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"151eb1cd-e305-421a-aaf3-d98c0a5a3395","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.2152145} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3315a808-bdd7-49f8-b2fe-d787b6daec7f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.2155042} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.215188688Z"}]},"request_id":"973c2eae-8de4-47f5-9ca9-4cea549505bd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634407.2192676} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"61fe4349d1c5835f3c3d6f5fb0ba4b25","responseTime":63,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:27 +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":"61fe4349d1c5835f3c3d6f5fb0ba4b25"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOH0.GxzerORgG0APBNTMGkE_5sykil2gOq0Xni-_9cRqPBY","level":"info","message":"auth send jwt","requestID":"3a65315810be29b01342c6cec28c5bc0"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"3a65315810be29b01342c6cec28c5bc0","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"3a65315810be29b01342c6cec28c5bc0"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:28Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685866,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a65315810be29b01342c6cec28c5bc0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634408,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOH0.GxzerORgG0APBNTMGkE_5sykil2gOq0Xni-_9cRqPBY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3a65315810be29b01342c6cec28c5bc0","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.124199996Z"}]},"request_id":"e8140075-287e-4bbb-85ba-2d0c19933024","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634408.2196} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3a65315810be29b01342c6cec28c5bc0","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3199ab9c-c69b-495a-a82d-e3323b643d88","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634408.2247822} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"3a65315810be29b01342c6cec28c5bc0","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.124199996Z"}]},"request_id":"836204aa-5c15-43a5-8260-525e0be911a7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634408.2327018} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3a65315810be29b01342c6cec28c5bc0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"3a65315810be29b01342c6cec28c5bc0"} gateway-1 | {"time_local":"07/May/2025:16:13:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/44fbd38f-1267-46a5-85cb-94ff642e9155 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"3a65315810be29b01342c6cec28c5bc0"} device-1 | {"level":"info","message":"PATCH /devices/44fbd38f-1267-46a5-85cb-94ff642e9155 200 23ms","method":"PATCH","requestID":"3a65315810be29b01342c6cec28c5bc0","responseTime":23,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOH0.GxzerORgG0APBNTMGkE_5sykil2gOq0Xni-_9cRqPBY","level":"info","message":"auth send jwt","requestID":"d18a66639ae319202da8d82044a7d453"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"d18a66639ae319202da8d82044a7d453","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d18a66639ae319202da8d82044a7d453"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:28Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.730503,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d18a66639ae319202da8d82044a7d453","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634408,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOH0.GxzerORgG0APBNTMGkE_5sykil2gOq0Xni-_9cRqPBY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d18a66639ae319202da8d82044a7d453","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d18a66639ae319202da8d82044a7d453"} gateway-1 | {"time_local":"07/May/2025:16:13:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/44fbd38f-1267-46a5-85cb-94ff642e9155/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.18","requestID":"d18a66639ae319202da8d82044a7d453"} device-1 | {"level":"info","message":"POST /devices/44fbd38f-1267-46a5-85cb-94ff642e9155/websocket 200 11ms","method":"POST","requestID":"d18a66639ae319202da8d82044a7d453","responseTime":11,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"90e6498d4983ea8091c9d110e384fd53","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"90e6498d4983ea8091c9d110e384fd53","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/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":"90e6498d4983ea8091c9d110e384fd53"} device-1 | {"level":"info","message":"OPTIONS /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/websocket 200 1ms","method":"OPTIONS","requestID":"90e6498d4983ea8091c9d110e384fd53","responseTime":1,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM","level":"info","message":"auth send jwt","requestID":"41e748f8523ac3842e9320622a493d4b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"41e748f8523ac3842e9320622a493d4b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"41e748f8523ac3842e9320622a493d4b"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641706,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"41e748f8523ac3842e9320622a493d4b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"41e748f8523ac3842e9320622a493d4b","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"41e748f8523ac3842e9320622a493d4b"} device-1 | {"level":"info","message":"POST /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/websocket 200 14ms","method":"POST","requestID":"41e748f8523ac3842e9320622a493d4b","responseTime":14,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.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":"41e748f8523ac3842e9320622a493d4b"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM","level":"info","message":"auth send jwt","requestID":"aa463678a2f0b1b2ad0d82d93c957b8f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"aa463678a2f0b1b2ad0d82d93c957b8f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"aa463678a2f0b1b2ad0d82d93c957b8f"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693989,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"aa463678a2f0b1b2ad0d82d93c957b8f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"aa463678a2f0b1b2ad0d82d93c957b8f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.124199996Z"}]},"request_id":"bfe5182a-b4e6-47f7-a195-f11979b4f5f4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.626019} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"aa463678a2f0b1b2ad0d82d93c957b8f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"aa463678a2f0b1b2ad0d82d93c957b8f"} gateway-1 | {"time_local":"07/May/2025:16:13:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/44fbd38f-1267-46a5-85cb-94ff642e9155? 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":"aa463678a2f0b1b2ad0d82d93c957b8f"} device-1 | {"level":"info","message":"GET /devices/44fbd38f-1267-46a5-85cb-94ff642e9155? 200 33ms","method":"GET","requestID":"aa463678a2f0b1b2ad0d82d93c957b8f","responseTime":33,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM","level":"info","message":"auth send jwt","requestID":"eb4ccfec6fc1e88906f8419e9037fc59"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eb4ccfec6fc1e88906f8419e9037fc59","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"eb4ccfec6fc1e88906f8419e9037fc59"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.884732,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"eb4ccfec6fc1e88906f8419e9037fc59","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eb4ccfec6fc1e88906f8419e9037fc59","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.215188688Z"}]},"request_id":"384d1436-e1c1-451d-bab0-5505ace55042","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.6638412} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"eb4ccfec6fc1e88906f8419e9037fc59","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"eb4ccfec6fc1e88906f8419e9037fc59"} device-1 | {"level":"info","message":"GET /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd? 200 9ms","method":"GET","requestID":"eb4ccfec6fc1e88906f8419e9037fc59","responseTime":9,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd?"} gateway-1 | {"time_local":"07/May/2025:16:13:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd? 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":"eb4ccfec6fc1e88906f8419e9037fc59"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM","level":"info","message":"auth send jwt","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5f0fc5245b76f665e29ead7fd5f3b603","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.721941,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5f0fc5245b76f665e29ead7fd5f3b603","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5f0fc5245b76f665e29ead7fd5f3b603","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Attempting to run experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Attempting to book experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully booked experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36f63270-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"36f68090-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.961308,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"36f63270-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"36f63270-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.996646,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"36f68090-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"36f68090-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.124199996Z"}]},"request_id":"e55791d3-5a20-4476-8c61-faa099bf6042","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.7590055} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"36f63270-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.215188688Z"}]},"request_id":"f75acc7f-787f-4b1e-a298-a0165a1f4be2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.7620544} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36f63270-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/44fbd38f-1267-46a5-85cb-94ff642e9155? 200 11ms","method":"GET","requestID":"36f63270-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"36f68090-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"36f68090-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd? 200 12ms","method":"GET","requestID":"36f68090-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Setting up experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully locked booking for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Attempting to update booking for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully updated booking for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully set up experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"37052690-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"37054da0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"37059bc0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully running experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.917804,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"37052690-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"37052690-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.832084,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"37054da0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"37054da0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ac68711a-d674-4161-b71d-dff1664d71a5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.8583698} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.38843,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"37059bc0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","rebac_allow":false,"scope_allow":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":"37059bc0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.124199996Z"}]},"request_id":"8e481404-8fd1-4197-b6a5-ebd33d245663","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.8594291} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.215188688Z"}]},"request_id":"3648349b-70db-4ebe-a6ac-0a202a0d3244","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.8604293} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"37052690-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"37054da0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"37059bc0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling 200 37ms","method":"POST","requestID":"37059bc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"37052690-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/44fbd38f-1267-46a5-85cb-94ff642e9155? 200 41ms","method":"GET","requestID":"37052690-2b5e-11f0-8e1f-5304d0938eae","responseTime":41,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"37054da0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd? 200 41ms","method":"GET","requestID":"37054da0-2b5e-11f0-8e1f-5304d0938eae","responseTime":41,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F02366e76-abf1-4177-9acd-acbf21567ed2#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F02366e76-abf1-4177-9acd-acbf21567ed2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"cfd61234-6f9c-4106-94ec-214ba2699d15","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.89221} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"370bb640-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34c6bcd5-c1e4-4c36-80a9-a3b528f2eb76","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.8928087} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"5f0fc5245b76f665e29ead7fd5f3b603","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"370c5280-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e92a9688-1ae7-4f52-8c38-f489812e7b57","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.8976402} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.64872,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"370bb640-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","rebac_allow":false,"scope_allow":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":"370bb640-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"999f1cda-90b1-43d3-b257-361f606bfc14","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.9006832} experiment-1 | {"data":{"experiment":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.105973,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} gateway-1 | {"time_local":"07/May/2025:16:13:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.235","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"370bb640-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"370c5280-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","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 231ms","method":"POST","requestID":"5f0fc5245b76f665e29ead7fd5f3b603","responseTime":231,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling 200 10ms","method":"POST","requestID":"370bb640-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"370c5280-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"370c5280-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling 200 9ms","method":"POST","requestID":"370c5280-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM","level":"info","message":"auth send jwt","requestID":"02b02e54c74497723d174a2116a429dc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"02b02e54c74497723d174a2116a429dc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"02b02e54c74497723d174a2116a429dc"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"370e2740-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.730568,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"02b02e54c74497723d174a2116a429dc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"02b02e54c74497723d174a2116a429dc","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b52c5b87-16d4-4309-86ac-d8edd84fe3ac","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.911485} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.594856,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"370e2740-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","rebac_allow":false,"scope_allow":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":"370e2740-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.124199996Z"}]},"request_id":"1fcbf3f2-982b-4e81-9148-0cfe1b4cfe31","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.93778} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"02b02e54c74497723d174a2116a429dc","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"02b02e54c74497723d174a2116a429dc"} gateway-1 | {"time_local":"07/May/2025:16:13:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/44fbd38f-1267-46a5-85cb-94ff642e9155? 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":"02b02e54c74497723d174a2116a429dc"} device-1 | {"level":"info","message":"GET /devices/44fbd38f-1267-46a5-85cb-94ff642e9155? 200 36ms","method":"GET","requestID":"02b02e54c74497723d174a2116a429dc","responseTime":36,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"370e2740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling 200 35ms","method":"POST","requestID":"370e2740-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Building connection plan","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} 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":"0ec9f1e7-7144-4e80-b356-3200971c2af2"},{"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":"1333107f-74a7-4c2a-8f89-a92f5d3af3b7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e076531a-7587-4335-8c3e-e395993c5db8"}]},"level":"info","message":"Built pairwise service configurations","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} 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/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd"},{"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/44fbd38f-1267-46a5-85cb-94ff642e9155"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM","level":"info","message":"auth send jwt","requestID":"73c857efc4697c901255fed3ae88d1a0"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"73c857efc4697c901255fed3ae88d1a0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"73c857efc4697c901255fed3ae88d1a0"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"client_addr":"127.0.0.1:34448","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.899906,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708323,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"73c857efc4697c901255fed3ae88d1a0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634409,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQwOX0.vm7kNGemerby4OKYk9D2zu-Rc5SrY1rzMfEmze6a5dM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"73c857efc4697c901255fed3ae88d1a0","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:27.215188688Z"}]},"request_id":"b6ba07da-c802-4ece-8cac-ed2280d46c57","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.9543118} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"73c857efc4697c901255fed3ae88d1a0","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"73c857efc4697c901255fed3ae88d1a0"} gateway-1 | {"time_local":"07/May/2025:16:13:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd? 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":"73c857efc4697c901255fed3ae88d1a0"} device-1 | {"level":"info","message":"GET /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd? 200 9ms","method":"GET","requestID":"73c857efc4697c901255fed3ae88d1a0","responseTime":9,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c25e18c6-60cf-451b-84c3-38655c48e635","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.958945} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b9a76bf2-adee-4d1e-95fe-554e9a522ffd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634409.9592025} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8'","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8'","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae"} 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":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae","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":"3713f3a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","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} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"5f0fc5245b76f665e29ead7fd5f3b603"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3723ab10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:30Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6b1bc75c-d806-4092-8ffe-fe753591c2a7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634410.0545666} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.650187,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3723ab10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","rebac_allow":false,"scope_allow":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":"3723ab10-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3723ab10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling 200 37ms","method":"POST","requestID":"3723ab10-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"37299e80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:30Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"976f1ae9-2dbb-43b0-8eaf-e2a56bcc89e5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634410.0919445} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.507971,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"37299e80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","rebac_allow":false,"scope_allow":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":"37299e80-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"37299e80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling 200 7ms","method":"POST","requestID":"37299e80-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling"} device-1 | {"device":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 7881466590238075186 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:I9Qf\r\na=ice-pwd:O8AmHRI3BTpu1pDpo9IPX4Mi\r\na=ice-options:trickle\r\na=fingerprint:sha-256 C7:63:78:36:91:04:EC:D2:A1:E7:E9:46:B7:C6:04:EA:67:77:03:1A:F5:1F:7C:C4:C2:26:CE:29:5D:77:59:6D\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"content":{"candidate":"candidate:1755062337 1 udp 2113937151 4a8dcbdd-f087-4a44-9547-cd6f8a59e2ca.local 40915 typ host generation 0 ufrag I9Qf network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a6a9acab92dcb91160c724c6ef78329b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a6a9acab92dcb91160c724c6ef78329b","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/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd"},{"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/44fbd38f-1267-46a5-85cb-94ff642e9155"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8"}}},"level":"info","message":"received a callback","requestID":"a6a9acab92dcb91160c724c6ef78329b"} device-1 | {"device":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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 7ms","method":"POST","requestID":"a6a9acab92dcb91160c724c6ef78329b","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"a6a9acab92dcb91160c724c6ef78329b"} device-1 | {"data":{"peerconnection":"42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","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/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9e1cb9a5bd68123da10d9ddc031380ae","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9e1cb9a5bd68123da10d9ddc031380ae","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/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd"},{"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/44fbd38f-1267-46a5-85cb-94ff642e9155"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8"}}},"level":"info","message":"received a callback","requestID":"9e1cb9a5bd68123da10d9ddc031380ae"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"38637e10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3715f41d-3b62-45ba-bfdf-9e9377dd6889","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.1503153} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.572735,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"38637e10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","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":"38637e10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"38637e10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8 200 7ms","method":"GET","requestID":"38637e10-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"9e1cb9a5bd68123da10d9ddc031380ae","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.078","http_referrer":"","http_user_agent":"node-fetch","requestID":"9e1cb9a5bd68123da10d9ddc031380ae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"386ad110-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f8997c1f-c852-47ed-bfea-0a48fe2f1c44","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.1979291} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.853544,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"386ad110-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","rebac_allow":false,"scope_allow":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":"386ad110-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"386ad110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling 200 9ms","method":"POST","requestID":"386ad110-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"386c7ec0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5d618fc6-fe8c-4001-a21f-a632f763a5f8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.207834} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.306552,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"386c7ec0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","rebac_allow":false,"scope_allow":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":"386c7ec0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"386c7ec0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling 200 7ms","method":"POST","requestID":"386c7ec0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI","level":"info","message":"auth send jwt","requestID":"d316c2186692dcbccf43d20623b77f0b"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"d316c2186692dcbccf43d20623b77f0b","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/02366e76-abf1-4177-9acd-acbf21567ed2","requestID":"d316c2186692dcbccf43d20623b77f0b"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.686512,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d316c2186692dcbccf43d20623b77f0b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634412,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d316c2186692dcbccf43d20623b77f0b","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/02366e76-abf1-4177-9acd-acbf21567ed2","requestID":"d316c2186692dcbccf43d20623b77f0b"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/02366e76-abf1-4177-9acd-acbf21567ed2 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d316c2186692dcbccf43d20623b77f0b"} experiment-1 | {"level":"info","message":"GET /experiments/02366e76-abf1-4177-9acd-acbf21567ed2 200 8ms","method":"GET","requestID":"d316c2186692dcbccf43d20623b77f0b","responseTime":8,"status":200,"url":"/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI","level":"info","message":"auth send jwt","requestID":"b7c495536223a57baef228502b3fac01"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b7c495536223a57baef228502b3fac01","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/02366e76-abf1-4177-9acd-acbf21567ed2","requestID":"b7c495536223a57baef228502b3fac01"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.712444,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"b7c495536223a57baef228502b3fac01","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634412,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"b7c495536223a57baef228502b3fac01","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Attempting to finish experiment","requestID":"b7c495536223a57baef228502b3fac01"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"38757f70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.930733,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"38757f70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634412,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"38757f70-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","device":"f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"44fbd38f-1267-46a5-85cb-94ff642e9155","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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"}} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"67f363d9-194c-452e-bff3-0ddb36076d77","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.3023977} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5a2eedd2-6634-4080-8c2e-9433ad4fd3a5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.3027256} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"38757f70-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a8d79a8d9a751a6713e7277257d19f84","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a8d79a8d9a751a6713e7277257d19f84","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/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd"},{"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/44fbd38f-1267-46a5-85cb-94ff642e9155"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8"}}},"level":"info","message":"received a callback","requestID":"a8d79a8d9a751a6713e7277257d19f84"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"253ffe8726b8f14c44180ca3ffc83a7a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"38757f70-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"253ffe8726b8f14c44180ca3ffc83a7a","responseTime":0,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"DELETE /peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8 204 46ms","method":"DELETE","requestID":"38757f70-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":204,"url":"/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8"} 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/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd"},{"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/44fbd38f-1267-46a5-85cb-94ff642e9155"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/42bca155-4d2c-4e2f-bb3f-9e0ead6de8e8"}}},"level":"info","message":"received a callback","requestID":"253ffe8726b8f14c44180ca3ffc83a7a"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"},"level":"info","message":"Successfully finished experiment","requestID":"b7c495536223a57baef228502b3fac01"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"388277c0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d320d4a-7f42-40ed-bb4e-37460ff0ea1a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.352153} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.250622,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"388277c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd","object_type":"device","rebac_allow":false,"scope_allow":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":"388277c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"388277c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling 200 8ms","method":"POST","requestID":"388277c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3883fe60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F02366e76-abf1-4177-9acd-acbf21567ed2': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F02366e76-abf1-4177-9acd-acbf21567ed2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"10d53906-d4dd-49eb-95e9-291026bb9bc6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.3588805} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4582994d-aa02-4c85-9bee-e1228fcb1741","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.3591404} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"b7c495536223a57baef228502b3fac01","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44fbd38f-1267-46a5-85cb-94ff642e9155","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"57569021-8fbd-4e5f-8394-22c9c4274597","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.3871353} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.555454,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3883fe60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44fbd38f-1267-46a5-85cb-94ff642e9155","object_type":"device","rebac_allow":false,"scope_allow":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":"3883fe60-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3883fe60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling 200 33ms","method":"POST","requestID":"3883fe60-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/44fbd38f-1267-46a5-85cb-94ff642e9155/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/02366e76-abf1-4177-9acd-acbf21567ed2","requestID":"b7c495536223a57baef228502b3fac01"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/02366e76-abf1-4177-9acd-acbf21567ed2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.207","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7c495536223a57baef228502b3fac01"} experiment-1 | {"level":"info","message":"DELETE /experiments/02366e76-abf1-4177-9acd-acbf21567ed2 204 205ms","method":"DELETE","requestID":"b7c495536223a57baef228502b3fac01","responseTime":205,"status":204,"url":"/experiments/02366e76-abf1-4177-9acd-acbf21567ed2"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2531","request_time":"4.205","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"9cf45ee4ce0dc9baf4cb743a4b34ee64"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.179","http_referrer":"","http_user_agent":"node-fetch","requestID":"a8d79a8d9a751a6713e7277257d19f84"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 176ms","method":"POST","requestID":"a8d79a8d9a751a6713e7277257d19f84","responseTime":176,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 174ms","method":"POST","requestID":"253ffe8726b8f14c44180ca3ffc83a7a","responseTime":174,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.179","http_referrer":"","http_user_agent":"node-fetch","requestID":"253ffe8726b8f14c44180ca3ffc83a7a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI","level":"info","message":"auth send jwt","requestID":"1a65499a3225419c06cf55ebe270dfc3"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"1a65499a3225419c06cf55ebe270dfc3","responseTime":8,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} device-1 | {"level":"info","message":"postDevices called","requestID":"1a65499a3225419c06cf55ebe270dfc3"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2787","request_time":"2.889","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6ff232cdb92e0dbb6d494aafd577bcf4"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.830991,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a65499a3225419c06cf55ebe270dfc3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634412,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1a65499a3225419c06cf55ebe270dfc3","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/44fbd38f-1267-46a5-85cb-94ff642e9155' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4e44188c-ab33-441b-96eb-f2302b2070fe","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.5413914} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1a65499a3225419c06cf55ebe270dfc3","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/f2eabb6a-368f-40c4-907a-0c3d9e0ea0bd' 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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ab1e251c-c040-452d-964c-80ee08e3d257","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.5468743} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"1a65499a3225419c06cf55ebe270dfc3","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"58a83f59-f032-4402-b990-4d85bd21787d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.556635} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ceafa044-c216-49c1-9f13-036d5f42f8ab","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.5775945} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","method":"POST","requestID":"1a65499a3225419c06cf55ebe270dfc3","responseTime":32,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.556605516Z"}]},"request_id":"ee6dd3b4-bc75-4c3e-a1b3-e6c17b6b7f87","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.5817223} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1a65499a3225419c06cf55ebe270dfc3","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"1a65499a3225419c06cf55ebe270dfc3"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.101","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1a65499a3225419c06cf55ebe270dfc3"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"1a65499a3225419c06cf55ebe270dfc3","responseTime":90,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI","level":"info","message":"auth send jwt","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.930644,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:32Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634412,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxMn0.3waf1C5qZvz7bVM405zAlUWKVPx2TZJVnfCEFbH5QVI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fcc2c533-67e2-436c-a575-ac0c3c5b0ceb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.631185} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8a87e01f-bead-40e0-9c02-c0be2cd1a9e1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.6360254} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"38c80f6d-5483-47ce-b09e-e48ee7612430","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.646741} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3632e0d2-360f-403d-92c0-5da02dc9ff6f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.6468616} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.646719814Z"}]},"request_id":"d2fda06c-ecc1-4689-87bb-707ce13f8009","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634412.650624} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d","responseTime":63,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.068","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d00fe0f9cdec971fd99e4f9d5b574d7d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxM30.IFDQ9PC1L2z8u4Ttz_qzzHJ5gB6xOJuNDmz2KMjiFO8","level":"info","message":"auth send jwt","requestID":"879e7fad7c3f1d72655bf93ecb18da80"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"879e7fad7c3f1d72655bf93ecb18da80","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"879e7fad7c3f1d72655bf93ecb18da80"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:33Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.626128,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"879e7fad7c3f1d72655bf93ecb18da80","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634413,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxM30.IFDQ9PC1L2z8u4Ttz_qzzHJ5gB6xOJuNDmz2KMjiFO8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"879e7fad7c3f1d72655bf93ecb18da80","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.556605516Z"}]},"request_id":"8927eb6d-132f-4a60-b426-8c694e25354c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634413.5969114} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"879e7fad7c3f1d72655bf93ecb18da80","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3b0865e5-907c-4399-9dc0-f948b4f79d85","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634413.605905} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"879e7fad7c3f1d72655bf93ecb18da80","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.556605516Z"}]},"request_id":"ed3c0a64-70cb-4d4e-ac6b-b22a89ee6d08","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634413.6389194} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"879e7fad7c3f1d72655bf93ecb18da80","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"879e7fad7c3f1d72655bf93ecb18da80"} gateway-1 | {"time_local":"07/May/2025:16:13:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.077","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"879e7fad7c3f1d72655bf93ecb18da80"} device-1 | {"level":"info","message":"PATCH /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432 200 53ms","method":"PATCH","requestID":"879e7fad7c3f1d72655bf93ecb18da80","responseTime":53,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxM30.IFDQ9PC1L2z8u4Ttz_qzzHJ5gB6xOJuNDmz2KMjiFO8","level":"info","message":"auth send jwt","requestID":"67cf46ba9cfe6209266bf32590b98704"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"67cf46ba9cfe6209266bf32590b98704","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"67cf46ba9cfe6209266bf32590b98704"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:33Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689522,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"67cf46ba9cfe6209266bf32590b98704","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634413,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxM30.IFDQ9PC1L2z8u4Ttz_qzzHJ5gB6xOJuNDmz2KMjiFO8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"67cf46ba9cfe6209266bf32590b98704","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"67cf46ba9cfe6209266bf32590b98704"} device-1 | {"level":"info","message":"POST /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/websocket 200 40ms","method":"POST","requestID":"67cf46ba9cfe6209266bf32590b98704","responseTime":40,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"67cf46ba9cfe6209266bf32590b98704"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b580cca3511c778eeaf4de7a864c5f9b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b580cca3511c778eeaf4de7a864c5f9b","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/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":"b580cca3511c778eeaf4de7a864c5f9b"} device-1 | {"level":"info","message":"OPTIONS /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/websocket 200 1ms","method":"OPTIONS","requestID":"b580cca3511c778eeaf4de7a864c5f9b","responseTime":1,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNH0.0crFDF3zP_lO5hr1EhhiSE97t9OO8M3fL4WhrjWAxv4","level":"info","message":"auth send jwt","requestID":"c35e3c91b854f5cfdda850a1a75125b2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c35e3c91b854f5cfdda850a1a75125b2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c35e3c91b854f5cfdda850a1a75125b2"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:34Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693077,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c35e3c91b854f5cfdda850a1a75125b2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634414,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNH0.0crFDF3zP_lO5hr1EhhiSE97t9OO8M3fL4WhrjWAxv4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c35e3c91b854f5cfdda850a1a75125b2","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c35e3c91b854f5cfdda850a1a75125b2"} device-1 | {"level":"info","message":"POST /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/websocket 200 40ms","method":"POST","requestID":"c35e3c91b854f5cfdda850a1a75125b2","responseTime":40,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c35e3c91b854f5cfdda850a1a75125b2"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNH0.0crFDF3zP_lO5hr1EhhiSE97t9OO8M3fL4WhrjWAxv4","level":"info","message":"auth send jwt","requestID":"e3d99c16c471b185804e707775e29589"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e3d99c16c471b185804e707775e29589","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e3d99c16c471b185804e707775e29589"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.968777,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e3d99c16c471b185804e707775e29589","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634414,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNH0.0crFDF3zP_lO5hr1EhhiSE97t9OO8M3fL4WhrjWAxv4"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"e3d99c16c471b185804e707775e29589","responseTime":29,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.556605516Z"}]},"request_id":"ce8232df-7544-46a2-90f3-2dfdd7d4025b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.033623} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e3d99c16c471b185804e707775e29589","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e3d99c16c471b185804e707775e29589"} gateway-1 | {"time_local":"07/May/2025:16:13:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e3d99c16c471b185804e707775e29589"} device-1 | {"level":"info","message":"GET /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432? 200 38ms","method":"GET","requestID":"e3d99c16c471b185804e707775e29589","responseTime":38,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY","level":"info","message":"auth send jwt","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.323134,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f3d82ab1675b2705d7f7676a8cd01ff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.646719814Z"}]},"request_id":"875dbdd1-7d82-4b6d-80d4-c5abfd431e70","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.050412} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff"} gateway-1 | {"time_local":"07/May/2025:16:13:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff"} device-1 | {"level":"info","message":"GET /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981? 200 34ms","method":"GET","requestID":"3f3d82ab1675b2705d7f7676a8cd01ff","responseTime":34,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY","level":"info","message":"auth send jwt","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.653275,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Attempting to run experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Attempting to book experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully booked experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3a2b1eb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3a2b45c0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.93201,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a2b1eb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3a2b1eb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.796894,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a2b45c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3a2b45c0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.556605516Z"}]},"request_id":"bb19c4ca-b663-4acb-b271-213c97342c56","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.1386085} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3a2b1eb0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.646719814Z"}]},"request_id":"5572e507-010e-4093-bfa9-5aa26d55ad62","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.142382} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3a2b1eb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3a2b45c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432? 200 12ms","method":"GET","requestID":"3a2b1eb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3a2b45c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981? 200 38ms","method":"GET","requestID":"3a2b45c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Setting up experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully locked booking for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Attempting to update booking for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully updated booking for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully set up experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3a3a60f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3a3a8800-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a3ad620-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.943187,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a3a60f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3a3a60f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully running experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.953132,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a3a8800-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3a3a8800-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.691961,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da966259-d0f1-42af-b4a7-2826e429f1cb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.2402806} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a3ad620-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","rebac_allow":false,"scope_allow":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":"3a3ad620-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.646719814Z"}]},"request_id":"27707c50-aa6b-4441-8e23-b21e5b469773","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.2678156} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a3ad620-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"3a3a8800-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.556605516Z"}]},"request_id":"e587820a-b060-4434-8995-f5f5e064e54f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.2705498} device-1 | {"level":"info","message":"POST /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling 200 37ms","method":"POST","requestID":"3a3ad620-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3a3a60f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a40c990-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3a3a8800-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981? 200 44ms","method":"GET","requestID":"3a3a8800-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981?"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3a3a60f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432? 200 46ms","method":"GET","requestID":"3a3a60f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a41b3f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"52422f5d-1432-4d24-988a-580095915a4c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.2780843} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe481e711-5210-4cb9-b981-d24701866423#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe481e711-5210-4cb9-b981-d24701866423","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"e6bed102-4210-4c74-98cc-a85941b6f79d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.2802613} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.578396,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a40c990-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","method":"POST","requestID":"3a40c990-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a40c990-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"980c1cef-d9e6-4897-8807-efdcf7ded15e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.2855773} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} device-1 | {"level":"info","message":"POST /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling 200 15ms","method":"POST","requestID":"3a40c990-2b5e-11f0-8e1f-5304d0938eae","responseTime":15,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 49ms","method":"POST","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55","responseTime":49,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0c2fb28a-8475-405e-a416-ae2a54d713c8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.317663} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":31.015292,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a41b3f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","rebac_allow":false,"scope_allow":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":"3a41b3f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a41b3f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling 200 42ms","method":"POST","requestID":"3a41b3f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":42,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} gateway-1 | {"time_local":"07/May/2025:16:13:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.244","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"level":"info","message":"POST /experiments? 201 241ms","method":"POST","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55","responseTime":241,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a4891c0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY","level":"info","message":"auth send jwt","requestID":"eacebb8d9af2be286479afc963e998b1"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"eacebb8d9af2be286479afc963e998b1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"eacebb8d9af2be286479afc963e998b1"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea6ce0b8-bfe6-40d1-a601-c2ea720afdac","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.329125} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.554275,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a4891c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","rebac_allow":false,"scope_allow":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":"3a4891c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.791791,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"eacebb8d9af2be286479afc963e998b1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eacebb8d9af2be286479afc963e998b1","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a4891c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling 200 10ms","method":"POST","requestID":"3a4891c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.556605516Z"}]},"request_id":"fb2d9044-0171-4d65-8436-4f8074857a32","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.3350573} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Building connection plan","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} 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":"85c7b5ce-ad81-4db5-a9d1-64cfa40633cc"},{"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":"0450027d-6e3d-4e0f-8a61-93d941738d05"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"51f775ef-6275-4ee3-905b-73e0a8a664dc"}]},"level":"info","message":"Built pairwise service configurations","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} 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/e6ee3e39-a4d0-4eb0-8047-9c550f893981"},{"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/6f4582ca-d170-4ab3-9b1b-f47c800ff432"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"eacebb8d9af2be286479afc963e998b1","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"eacebb8d9af2be286479afc963e998b1"} gateway-1 | {"time_local":"07/May/2025:16:13:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432? 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":"eacebb8d9af2be286479afc963e998b1"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} device-1 | {"level":"info","message":"GET /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432? 200 36ms","method":"GET","requestID":"eacebb8d9af2be286479afc963e998b1","responseTime":36,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432?"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.808103,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY","level":"info","message":"auth send jwt","requestID":"a05409bafd6c7ab1aadb9782988ce4c5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a05409bafd6c7ab1aadb9782988ce4c5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a05409bafd6c7ab1aadb9782988ce4c5"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.618891,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a05409bafd6c7ab1aadb9782988ce4c5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634415,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxNX0.-VnPveaWVOmDHsTlRzpo_Xpg5o1tNI1sIi-_F34xXzY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a05409bafd6c7ab1aadb9782988ce4c5","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"8e72aa45-720d-4239-b05e-9b8d07c69574","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.3734457} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"82937c77-bc84-45c3-b74d-813d3c67c6ed","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.3737185} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:32.646719814Z"}]},"request_id":"4acbed8e-f3ca-4aed-8726-5a4ebb4b4387","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.3787525} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a05409bafd6c7ab1aadb9782988ce4c5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb'","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb'","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae"} 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":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae","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":"a05409bafd6c7ab1aadb9782988ce4c5"} gateway-1 | {"time_local":"07/May/2025:16:13:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a05409bafd6c7ab1aadb9782988ce4c5"} device-1 | {"level":"info","message":"GET /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981? 200 42ms","method":"GET","requestID":"a05409bafd6c7ab1aadb9782988ce4c5","responseTime":42,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981?"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"3a4e5e20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb","device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","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} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"0448ff9b5ad55ca50f1b6fa7a2763b55"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a5d7950-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f8a272b3-b328-42d4-87e5-f8fef0560402","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.4648318} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.392842,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a5d7950-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","rebac_allow":false,"scope_allow":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":"3a5d7950-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a5d7950-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling 200 7ms","method":"POST","requestID":"3a5d7950-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a5ed8e0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b6021131-4612-4f23-8543-7e07038ca5ba","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634415.4739156} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.30212,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:35Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a5ed8e0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","rebac_allow":false,"scope_allow":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":"3a5ed8e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a5ed8e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling 200 7ms","method":"POST","requestID":"3a5ed8e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling"} device-1 | {"device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2622f29e-7891-4576-8cd3-a13743c56dbb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 7762225517152417529 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:j0E0\r\na=ice-pwd:G5XHpPhD4RMBnAjD3sYlx3ui\r\na=ice-options:trickle\r\na=fingerprint:sha-256 C8:39:6A:67:79:C1:74:D6:90:7E:C7:75:7F:43:40:CA:E5:E4:C7:26:08:0D:86:87:57:E1:69:4C:4B:72:30:57\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3990750188 1 udp 2113937151 273378e7-1307-419b-91e2-e381cd932cd7.local 47200 typ host generation 0 ufrag j0E0 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","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/2622f29e-7891-4576-8cd3-a13743c56dbb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2622f29e-7891-4576-8cd3-a13743c56dbb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"454406803e731768dafa21fb05da0d1f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"454406803e731768dafa21fb05da0d1f","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/e6ee3e39-a4d0-4eb0-8047-9c550f893981"},{"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/6f4582ca-d170-4ab3-9b1b-f47c800ff432"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb"}}},"level":"info","message":"received a callback","requestID":"454406803e731768dafa21fb05da0d1f"} device-1 | {"device":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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 29ms","method":"POST","requestID":"454406803e731768dafa21fb05da0d1f","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"454406803e731768dafa21fb05da0d1f"} device-1 | {"device":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"2622f29e-7891-4576-8cd3-a13743c56dbb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"2622f29e-7891-4576-8cd3-a13743c56dbb","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/2622f29e-7891-4576-8cd3-a13743c56dbb' to 'http://localhost/callbacks/experiment'"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3060a4b269ccbcfd7036a06458417edf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3060a4b269ccbcfd7036a06458417edf","responseTime":1,"status":200,"url":"/auth"} device-1 | {"data":{"peerconnection":"2622f29e-7891-4576-8cd3-a13743c56dbb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"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/e6ee3e39-a4d0-4eb0-8047-9c550f893981"},{"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/6f4582ca-d170-4ab3-9b1b-f47c800ff432"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb"}}},"level":"info","message":"received a callback","requestID":"3060a4b269ccbcfd7036a06458417edf"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3b992da0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2622f29e-7891-4576-8cd3-a13743c56dbb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ace8cb76-0d77-4ce7-9d43-188d87edcd44","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.5338995} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.435156,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3b992da0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb","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":"3b992da0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3b992da0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb 200 7ms","method":"GET","requestID":"3b992da0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"3060a4b269ccbcfd7036a06458417edf","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.075","http_referrer":"","http_user_agent":"node-fetch","requestID":"3060a4b269ccbcfd7036a06458417edf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3ba00b70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"631d558d-4416-4147-bc1d-b38f1bccc9b1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.5794334} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.262516,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3ba00b70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","rebac_allow":false,"scope_allow":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":"3ba00b70-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3ba00b70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling 200 8ms","method":"POST","requestID":"3ba00b70-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3ba19210-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"56989d54-9e45-4580-93c7-f0b3a9e505bc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.5885274} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.17481,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3ba19210-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","rebac_allow":false,"scope_allow":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":"3ba19210-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3ba19210-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling 200 7ms","method":"POST","requestID":"3ba19210-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg","level":"info","message":"auth send jwt","requestID":"cfea66853c796ab3ed9ee87677e21543"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"cfea66853c796ab3ed9ee87677e21543","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e481e711-5210-4cb9-b981-d24701866423","requestID":"cfea66853c796ab3ed9ee87677e21543"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.655059,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cfea66853c796ab3ed9ee87677e21543","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634417,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cfea66853c796ab3ed9ee87677e21543","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/e481e711-5210-4cb9-b981-d24701866423","requestID":"cfea66853c796ab3ed9ee87677e21543"} gateway-1 | {"time_local":"07/May/2025:16:13:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e481e711-5210-4cb9-b981-d24701866423 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cfea66853c796ab3ed9ee87677e21543"} experiment-1 | {"level":"info","message":"GET /experiments/e481e711-5210-4cb9-b981-d24701866423 200 8ms","method":"GET","requestID":"cfea66853c796ab3ed9ee87677e21543","responseTime":8,"status":200,"url":"/experiments/e481e711-5210-4cb9-b981-d24701866423"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg","level":"info","message":"auth send jwt","requestID":"0c0cce51b919592f22692f9d4c80eb6d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0c0cce51b919592f22692f9d4c80eb6d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e481e711-5210-4cb9-b981-d24701866423","requestID":"0c0cce51b919592f22692f9d4c80eb6d"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.901035,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0c0cce51b919592f22692f9d4c80eb6d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634417,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0c0cce51b919592f22692f9d4c80eb6d","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Attempting to finish experiment","requestID":"0c0cce51b919592f22692f9d4c80eb6d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3badee20-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.771115,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3badee20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634417,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3badee20-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb","device":"e6ee3e39-a4d0-4eb0-8047-9c550f893981","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"6f4582ca-d170-4ab3-9b1b-f47c800ff432","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/2622f29e-7891-4576-8cd3-a13743c56dbb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2622f29e-7891-4576-8cd3-a13743c56dbb","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b0d39d6437792e9c3e354629fda3f1c4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b0d39d6437792e9c3e354629fda3f1c4","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2622f29e-7891-4576-8cd3-a13743c56dbb': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2622f29e-7891-4576-8cd3-a13743c56dbb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"9081fc62-e921-4fad-b9c3-72876e5413c6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.6809676} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"723fbe815fb0d0f8a8bb139bd75e52aa","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/e6ee3e39-a4d0-4eb0-8047-9c550f893981"},{"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/6f4582ca-d170-4ab3-9b1b-f47c800ff432"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb"}}},"level":"info","message":"received a callback","requestID":"b0d39d6437792e9c3e354629fda3f1c4"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"723fbe815fb0d0f8a8bb139bd75e52aa","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"051a506a-f703-4de8-89aa-664381927181","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.6813319} 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/e6ee3e39-a4d0-4eb0-8047-9c550f893981"},{"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/6f4582ca-d170-4ab3-9b1b-f47c800ff432"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb"}}},"level":"info","message":"received a callback","requestID":"723fbe815fb0d0f8a8bb139bd75e52aa"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"3badee20-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"2622f29e-7891-4576-8cd3-a13743c56dbb","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3badee20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb 204 51ms","method":"DELETE","requestID":"3badee20-2b5e-11f0-8e1f-5304d0938eae","responseTime":51,"status":204,"url":"/peerconnections/2622f29e-7891-4576-8cd3-a13743c56dbb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e481e711-5210-4cb9-b981-d24701866423"},"level":"info","message":"Successfully finished experiment","requestID":"0c0cce51b919592f22692f9d4c80eb6d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3bb80040-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe6ee3e39-a4d0-4eb0-8047-9c550f893981","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"66ba2d16-e6a7-4c64-844f-b1514c241364","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.7357833} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.045986,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3bb80040-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981","object_type":"device","rebac_allow":false,"scope_allow":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":"3bb80040-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3bb80040-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling 200 33ms","method":"POST","requestID":"3bb80040-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/e6ee3e39-a4d0-4eb0-8047-9c550f893981/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3bbd3060-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe481e711-5210-4cb9-b981-d24701866423': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe481e711-5210-4cb9-b981-d24701866423","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"3b1a2fb5-ec6e-4cca-91c8-96d58169df37","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.769758} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7dbe9d37-3a6c-400e-827a-460c80c3af90","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.7701313} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"0c0cce51b919592f22692f9d4c80eb6d","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6f4582ca-d170-4ab3-9b1b-f47c800ff432","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7449a785-8609-4eed-afee-04f138a34f41","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.7723234} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.573235,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3bbd3060-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432","object_type":"device","rebac_allow":false,"scope_allow":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":"3bbd3060-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3bbd3060-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling 200 9ms","method":"POST","requestID":"3bbd3060-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e481e711-5210-4cb9-b981-d24701866423","requestID":"0c0cce51b919592f22692f9d4c80eb6d"} gateway-1 | {"time_local":"07/May/2025:16:13:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e481e711-5210-4cb9-b981-d24701866423 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.234","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c0cce51b919592f22692f9d4c80eb6d"} experiment-1 | {"level":"info","message":"DELETE /experiments/e481e711-5210-4cb9-b981-d24701866423 204 231ms","method":"DELETE","requestID":"0c0cce51b919592f22692f9d4c80eb6d","responseTime":231,"status":204,"url":"/experiments/e481e711-5210-4cb9-b981-d24701866423"} gateway-1 | {"time_local":"07/May/2025:16:13:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2531","request_time":"4.177","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"86c638ef3cc2b0eab305194a0b82abfa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg","level":"info","message":"auth send jwt","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"b0d39d6437792e9c3e354629fda3f1c4","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"b0d39d6437792e9c3e354629fda3f1c4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"723fbe815fb0d0f8a8bb139bd75e52aa","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"723fbe815fb0d0f8a8bb139bd75e52aa"} device-1 | {"level":"info","message":"postDevices called","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.15621,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6f4582ca-d170-4ab3-9b1b-f47c800ff432' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634417,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:13:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2787","request_time":"2.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":"e531e93f47354ef6e2ec9160a48e0883"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e0702399-3463-4808-bdd4-6de892a1c6b8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.9150472} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"33587bf1-3504-43a8-a10b-29842cb667e9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.9198017} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","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/e6ee3e39-a4d0-4eb0-8047-9c550f893981' closed"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"2eb0d5fa-ffcd-4c72-b89d-1ea975f75318","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.9567075} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c8b8542c-abf2-44e5-a84b-b1e1486a58ab","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.9569736} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:37.956685777Z"}]},"request_id":"626bccf5-d905-4c1a-a126-86099d9e7eaf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634417.9613833} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99"} gateway-1 | {"time_local":"07/May/2025:16:13:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.098","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99"} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"e54ee359fa88e6fd9ed5d1b8e35f4c99","responseTime":93,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg","level":"info","message":"auth send jwt","requestID":"3f40b5b7948b690f97b3e31a7a55f63a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3f40b5b7948b690f97b3e31a7a55f63a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3f40b5b7948b690f97b3e31a7a55f63a"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.697007,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f40b5b7948b690f97b3e31a7a55f63a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634417,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxN30.h2aqxBT3G1XdzIV1HnJcZWUvkiLpIk05CfWTFMzoNjg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3f40b5b7948b690f97b3e31a7a55f63a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e22afeb9-08f2-4f64-a2a7-974d7f391109","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.0089142} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3f40b5b7948b690f97b3e31a7a55f63a","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1b4f769d-4087-4d81-8b35-f540eaa6783a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.014127} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3f40b5b7948b690f97b3e31a7a55f63a","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"2cccf8bb-ad01-4621-b32d-91adac37829a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.0245523} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5308ea6f-c925-4c05-a6d6-bccc476fe507","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.0246685} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"3f40b5b7948b690f97b3e31a7a55f63a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:38.024531137Z"}]},"request_id":"83e0cbaf-a888-4481-874f-73464ce7af2a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.053647} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3f40b5b7948b690f97b3e31a7a55f63a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3f40b5b7948b690f97b3e31a7a55f63a"} gateway-1 | {"time_local":"07/May/2025:16:13:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.090","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3f40b5b7948b690f97b3e31a7a55f63a"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"3f40b5b7948b690f97b3e31a7a55f63a","responseTime":87,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOH0.ouMv9lt1XVPTG4EWa1cnPfREzjYE8oBpTI0q-CpVUvI","level":"info","message":"auth send jwt","requestID":"810ce7e8f114018280833c73a7b4158c"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"810ce7e8f114018280833c73a7b4158c","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOH0.ouMv9lt1XVPTG4EWa1cnPfREzjYE8oBpTI0q-CpVUvI","level":"info","message":"auth send jwt","requestID":"758ef9a5788d4a34fa41c481484d15d9"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"758ef9a5788d4a34fa41c481484d15d9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"810ce7e8f114018280833c73a7b4158c"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"758ef9a5788d4a34fa41c481484d15d9"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:38Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645779,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:38Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"810ce7e8f114018280833c73a7b4158c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634418,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOH0.ouMv9lt1XVPTG4EWa1cnPfREzjYE8oBpTI0q-CpVUvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"810ce7e8f114018280833c73a7b4158c","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.783826,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"758ef9a5788d4a34fa41c481484d15d9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634418,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOH0.ouMv9lt1XVPTG4EWa1cnPfREzjYE8oBpTI0q-CpVUvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"758ef9a5788d4a34fa41c481484d15d9","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:37.956685777Z"}]},"request_id":"5e7a0579-52c3-4928-b163-80e4dbb8b364","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.9712882} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"810ce7e8f114018280833c73a7b4158c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:38.024531137Z"}]},"request_id":"3b4dbe54-db42-492a-8e7c-af508607d0b4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.9722626} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"758ef9a5788d4a34fa41c481484d15d9","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3dac475-f7e3-4b5c-b2e1-5a94ff4f2268","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.9768195} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"810ce7e8f114018280833c73a7b4158c","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"84ec4440-c27a-45b1-8379-0aa1c1e88256","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.9780843} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"758ef9a5788d4a34fa41c481484d15d9","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:38.024531137Z"}]},"request_id":"20d92325-fc11-40db-b5e0-70df428d5c41","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634418.980925} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"758ef9a5788d4a34fa41c481484d15d9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"758ef9a5788d4a34fa41c481484d15d9"} gateway-1 | {"time_local":"07/May/2025:16:13:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.051","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"758ef9a5788d4a34fa41c481484d15d9"} device-1 | {"level":"info","message":"PATCH /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090 200 22ms","method":"PATCH","requestID":"758ef9a5788d4a34fa41c481484d15d9","responseTime":22,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI","level":"info","message":"auth send jwt","requestID":"f1cbefe1a294b44223b777a7592939c4"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"f1cbefe1a294b44223b777a7592939c4","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f1cbefe1a294b44223b777a7592939c4"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.633718,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f1cbefe1a294b44223b777a7592939c4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f1cbefe1a294b44223b777a7592939c4","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:37.956685777Z"}]},"request_id":"1e33e5e4-62af-4e69-a882-b21a266c64bf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.0155468} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"810ce7e8f114018280833c73a7b4158c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"810ce7e8f114018280833c73a7b4158c"} device-1 | {"level":"info","message":"PATCH /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c 200 83ms","method":"PATCH","requestID":"810ce7e8f114018280833c73a7b4158c","responseTime":83,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.088","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"810ce7e8f114018280833c73a7b4158c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI","level":"info","message":"auth send jwt","requestID":"6c4076a58015a25c290b109f3a05c7e2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6c4076a58015a25c290b109f3a05c7e2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6c4076a58015a25c290b109f3a05c7e2"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.698392,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6c4076a58015a25c290b109f3a05c7e2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6c4076a58015a25c290b109f3a05c7e2","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f1cbefe1a294b44223b777a7592939c4"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/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.18","requestID":"f1cbefe1a294b44223b777a7592939c4"} device-1 | {"level":"info","message":"POST /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/websocket 200 19ms","method":"POST","requestID":"f1cbefe1a294b44223b777a7592939c4","responseTime":19,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6c4076a58015a25c290b109f3a05c7e2"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/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.18","requestID":"6c4076a58015a25c290b109f3a05c7e2"} device-1 | {"level":"info","message":"POST /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/websocket 200 39ms","method":"POST","requestID":"6c4076a58015a25c290b109f3a05c7e2","responseTime":39,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI","level":"info","message":"auth send jwt","requestID":"3e3960feec320d6ef386189fe04fcf76"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e3960feec320d6ef386189fe04fcf76","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e3960feec320d6ef386189fe04fcf76"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.588268,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3e3960feec320d6ef386189fe04fcf76","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3e3960feec320d6ef386189fe04fcf76","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:37.956685777Z"}]},"request_id":"a022b72e-bb85-438c-b6e7-a1e12db32e2c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.111905} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e3960feec320d6ef386189fe04fcf76","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e3960feec320d6ef386189fe04fcf76"} device-1 | {"level":"info","message":"GET /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c? 200 10ms","method":"GET","requestID":"3e3960feec320d6ef386189fe04fcf76","responseTime":10,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c?"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c? 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":"3e3960feec320d6ef386189fe04fcf76"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI","level":"info","message":"auth send jwt","requestID":"1a8b1423b1bbcbe1429992875dc4a64c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1a8b1423b1bbcbe1429992875dc4a64c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1a8b1423b1bbcbe1429992875dc4a64c"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.660398,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1a8b1423b1bbcbe1429992875dc4a64c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1a8b1423b1bbcbe1429992875dc4a64c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:38.024531137Z"}]},"request_id":"c7c1f97f-6b7e-4a4d-9930-a0e2dd95f63f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.1250112} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1a8b1423b1bbcbe1429992875dc4a64c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1a8b1423b1bbcbe1429992875dc4a64c"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1a8b1423b1bbcbe1429992875dc4a64c"} device-1 | {"level":"info","message":"GET /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090? 200 8ms","method":"GET","requestID":"1a8b1423b1bbcbe1429992875dc4a64c","responseTime":8,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI","level":"info","message":"auth send jwt","requestID":"099de6daa95649f31b3d41fe166d57fe"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"099de6daa95649f31b3d41fe166d57fe","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"099de6daa95649f31b3d41fe166d57fe"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.646461,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"099de6daa95649f31b3d41fe166d57fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"099de6daa95649f31b3d41fe166d57fe","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Attempting to run experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Attempting to book experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully booked experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c991170-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3c993880-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.588212,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3c991170-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3c991170-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.533112,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3c993880-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3c993880-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:37.956685777Z"}]},"request_id":"bb7fc14f-bac3-423d-8d8d-ec0610a96a5a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.2135975} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3c991170-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:38.024531137Z"}]},"request_id":"98f14567-5610-4621-8b7f-5b2d4077c19c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.2141237} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3c993880-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c991170-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c? 200 10ms","method":"GET","requestID":"3c991170-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3c993880-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090? 200 10ms","method":"GET","requestID":"3c993880-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Setting up experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully locked booking for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Attempting to update booking for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully updated booking for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully set up experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3ca71b30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3ca76950-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3ca79060-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully running experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:50550","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.61804,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3ca71b30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3ca71b30-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.71677,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3ca76950-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"3ca76950-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"27f05bc3-b3de-40e1-bf24-15384b6ac8d1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.3118234} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:38.024531137Z"}]},"request_id":"4a6868c0-2210-4269-9c16-6e85697c6d91","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.3122413} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"3ca76950-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.900308,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3ca79060-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","rebac_allow":false,"scope_allow":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":"3ca79060-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:37.956685777Z"}]},"request_id":"39320b88-94a4-4141-a236-4eaeaae84700","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.313416} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"3ca71b30-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3ca76950-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090? 200 16ms","method":"GET","requestID":"3ca76950-2b5e-11f0-8e1f-5304d0938eae","responseTime":16,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96984777-0bc2-45c6-add1-c4e5581e72bd#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96984777-0bc2-45c6-add1-c4e5581e72bd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"e156d974-79be-4cca-be98-9435a2030920","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.3184037} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cbd16c11-ffe9-4558-ae14-83bbb2ed0249","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.318771} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3ca79060-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"099de6daa95649f31b3d41fe166d57fe","responseTime":14,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"POST /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling 200 18ms","method":"POST","requestID":"3ca79060-2b5e-11f0-8e1f-5304d0938eae","responseTime":18,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3ca71b30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c? 200 46ms","method":"GET","requestID":"3ca71b30-2b5e-11f0-8e1f-5304d0938eae","responseTime":46,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3cae6e30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3caebc50-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"099de6daa95649f31b3d41fe166d57fe"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"level":"info","message":"POST /experiments? 201 195ms","method":"POST","requestID":"099de6daa95649f31b3d41fe166d57fe","responseTime":195,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"70445bb9-a982-493a-b69d-75a0c1645333","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.3548324} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9db0c905-5751-49f6-9588-05d783cd85b6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.3548489} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.744834,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.745682,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3cae6e30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","rebac_allow":false,"scope_allow":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":"3cae6e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3caebc50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","rebac_allow":false,"scope_allow":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":"3caebc50-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3cae6e30-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI","level":"info","message":"auth send jwt","requestID":"2328f77219b808aa7c4405c535583f92"} device-1 | {"level":"info","message":"POST /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling 200 14ms","method":"POST","requestID":"3cae6e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3caebc50-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"2328f77219b808aa7c4405c535583f92","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling 200 12ms","method":"POST","requestID":"3caebc50-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2328f77219b808aa7c4405c535583f92"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.906241,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2328f77219b808aa7c4405c535583f92","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3cb17b70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2328f77219b808aa7c4405c535583f92","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e67f7a14-b5f1-4966-bb6e-0d4d7de68011","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.3951597} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:37.956685777Z"}]},"request_id":"f53e4d19-1ff1-4240-809c-18d5ede626c6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.395532} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2328f77219b808aa7c4405c535583f92","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.421911,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3cb17b70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","rebac_allow":false,"scope_allow":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":"3cb17b70-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2328f77219b808aa7c4405c535583f92"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2328f77219b808aa7c4405c535583f92"} device-1 | {"level":"info","message":"GET /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c? 200 38ms","method":"GET","requestID":"2328f77219b808aa7c4405c535583f92","responseTime":38,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3cb17b70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling 200 34ms","method":"POST","requestID":"3cb17b70-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Building connection plan","requestID":"099de6daa95649f31b3d41fe166d57fe"} 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":"89ff1d66-ec51-4df2-b692-957630c8a798"},{"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":"1de2eb89-f3d2-499a-b4cc-324280123854"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8c928c7f-cb68-4b52-8565-2fb8f3663c98"}]},"level":"info","message":"Built pairwise service configurations","requestID":"099de6daa95649f31b3d41fe166d57fe"} 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/f68389a9-6f86-4406-b9b7-324f365e8a3c"},{"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/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"099de6daa95649f31b3d41fe166d57fe"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI","level":"info","message":"auth send jwt","requestID":"65d482f47b21f514c3f01f342eb34e91"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"65d482f47b21f514c3f01f342eb34e91","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"65d482f47b21f514c3f01f342eb34e91"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.688988,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.741648,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"65d482f47b21f514c3f01f342eb34e91","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634419,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQxOX0.A2SXQk0aj0kI886Fyg_IQjVOYdv31bVh82P6JpebJlI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"65d482f47b21f514c3f01f342eb34e91","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:38.024531137Z"}]},"request_id":"d185bb55-8a86-4bcb-91f6-83e2d1df3909","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.4128685} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"65d482f47b21f514c3f01f342eb34e91","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"65d482f47b21f514c3f01f342eb34e91"} gateway-1 | {"time_local":"07/May/2025:16:13:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090? 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":"65d482f47b21f514c3f01f342eb34e91"} device-1 | {"level":"info","message":"GET /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090? 200 11ms","method":"GET","requestID":"65d482f47b21f514c3f01f342eb34e91","responseTime":11,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"93f1e987-1cc4-4dcc-960b-2d82352ed2dd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.417199} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ca1324d-62b5-4602-9beb-8512810ca70d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.4173288} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e'","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e'","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae"} 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":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae","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":"3cb6f9b0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"099de6daa95649f31b3d41fe166d57fe"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3cc68a10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2f4e68fb-5b2a-496e-a1b5-d5bf7ca30980","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.509385} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.198154,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3cc68a10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","rebac_allow":false,"scope_allow":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":"3cc68a10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3cc68a10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling 200 10ms","method":"POST","requestID":"3cc68a10-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3ccb9320-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9acd53d9-63dd-4f96-a273-9b09332205a9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634419.5434356} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.319529,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3ccb9320-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","rebac_allow":false,"scope_allow":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":"3ccb9320-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3ccb9320-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling 200 9ms","method":"POST","requestID":"3ccb9320-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling"} device-1 | {"device":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d7b5b938-dff6-4985-a36d-fbae6854107e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d7b5b938-dff6-4985-a36d-fbae6854107e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/d7b5b938-dff6-4985-a36d-fbae6854107e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d7b5b938-dff6-4985-a36d-fbae6854107e","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"16154f0ebebee0473f06d68d8b1a3b00","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"16154f0ebebee0473f06d68d8b1a3b00","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/f68389a9-6f86-4406-b9b7-324f365e8a3c"},{"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/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e"}}},"level":"info","message":"received a callback","requestID":"16154f0ebebee0473f06d68d8b1a3b00"} device-1 | {"device":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"16154f0ebebee0473f06d68d8b1a3b00","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"16154f0ebebee0473f06d68d8b1a3b00"} device-1 | {"data":{"peerconnection":"d7b5b938-dff6-4985-a36d-fbae6854107e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d7b5b938-dff6-4985-a36d-fbae6854107e","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/d7b5b938-dff6-4985-a36d-fbae6854107e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d7b5b938-dff6-4985-a36d-fbae6854107e","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"43225286ed49e92c91ed5b34fc97131f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"43225286ed49e92c91ed5b34fc97131f","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/f68389a9-6f86-4406-b9b7-324f365e8a3c"},{"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/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e"}}},"level":"info","message":"received a callback","requestID":"43225286ed49e92c91ed5b34fc97131f"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3e068420-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd7b5b938-dff6-4985-a36d-fbae6854107e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6fedbe73-07da-4231-87a4-c598afc237f2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.606545} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.490523,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3e068420-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e","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":"3e068420-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3e068420-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e 200 8ms","method":"GET","requestID":"3e068420-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 48ms","method":"POST","requestID":"43225286ed49e92c91ed5b34fc97131f","responseTime":48,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.050","http_referrer":"","http_user_agent":"node-fetch","requestID":"43225286ed49e92c91ed5b34fc97131f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e09b870-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c0009d30-c61b-47d4-9cff-9bbf40067c7b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.6514325} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.25979,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3e09b870-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","rebac_allow":false,"scope_allow":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":"3e09b870-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e09b870-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling 200 32ms","method":"POST","requestID":"3e09b870-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e0ee890-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a3427e1a-4f35-4d66-a296-86a658a88770","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.6617444} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.467762,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3e0ee890-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","rebac_allow":false,"scope_allow":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":"3e0ee890-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e0ee890-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling 200 8ms","method":"POST","requestID":"3e0ee890-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMX0.nGx1b0jAEgTN5JpEiliKJ3VHEeAjDHgzO5dLMFyFwDA","level":"info","message":"auth send jwt","requestID":"2fb18cd56677c566cf41a74e5bbcc59c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2fb18cd56677c566cf41a74e5bbcc59c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","requestID":"2fb18cd56677c566cf41a74e5bbcc59c"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.665554,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2fb18cd56677c566cf41a74e5bbcc59c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634421,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMX0.nGx1b0jAEgTN5JpEiliKJ3VHEeAjDHgzO5dLMFyFwDA"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"2fb18cd56677c566cf41a74e5bbcc59c","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","requestID":"2fb18cd56677c566cf41a74e5bbcc59c"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2fb18cd56677c566cf41a74e5bbcc59c"} experiment-1 | {"level":"info","message":"GET /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd 200 9ms","method":"GET","requestID":"2fb18cd56677c566cf41a74e5bbcc59c","responseTime":9,"status":200,"url":"/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMX0.nGx1b0jAEgTN5JpEiliKJ3VHEeAjDHgzO5dLMFyFwDA","level":"info","message":"auth send jwt","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8","responseTime":27,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.899543,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634421,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMX0.nGx1b0jAEgTN5JpEiliKJ3VHEeAjDHgzO5dLMFyFwDA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Attempting to finish experiment","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3e174d00-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.692768,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3e174d00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634421,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMX0.nGx1b0jAEgTN5JpEiliKJ3VHEeAjDHgzO5dLMFyFwDA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3e174d00-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"f68389a9-6f86-4406-b9b7-324f365e8a3c","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/d7b5b938-dff6-4985-a36d-fbae6854107e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d7b5b938-dff6-4985-a36d-fbae6854107e","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd7b5b938-dff6-4985-a36d-fbae6854107e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd7b5b938-dff6-4985-a36d-fbae6854107e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"2e97ea11-ae3d-40cf-8083-8317389ecd88","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.7489867} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bebc5dc8-1ecc-4678-83c5-88aa5078c9a1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.7491589} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d06f5b24ace01bfd958523d716404dd8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"3e174d00-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d06f5b24ace01bfd958523d716404dd8","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/f68389a9-6f86-4406-b9b7-324f365e8a3c"},{"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/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e"}}},"level":"info","message":"received a callback","requestID":"d06f5b24ace01bfd958523d716404dd8"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a97e76e33680bf0b4f589e8e1203ca27","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a97e76e33680bf0b4f589e8e1203ca27","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/f68389a9-6f86-4406-b9b7-324f365e8a3c"},{"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/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e"}}},"level":"info","message":"received a callback","requestID":"a97e76e33680bf0b4f589e8e1203ca27"} device-1 | {"data":{"peerconnection":"d7b5b938-dff6-4985-a36d-fbae6854107e","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3e174d00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e 204 55ms","method":"DELETE","requestID":"3e174d00-2b5e-11f0-8e1f-5304d0938eae","responseTime":55,"status":204,"url":"/peerconnections/d7b5b938-dff6-4985-a36d-fbae6854107e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"},"level":"info","message":"Successfully finished experiment","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e25f300-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff68389a9-6f86-4406-b9b7-324f365e8a3c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c508da42-f3e7-481b-b5cf-10202593948f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.8126233} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.373629,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3e25f300-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c","object_type":"device","rebac_allow":false,"scope_allow":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":"3e25f300-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e25f300-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling 200 8ms","method":"POST","requestID":"3e25f300-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/f68389a9-6f86-4406-b9b7-324f365e8a3c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e2b2320-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96984777-0bc2-45c6-add1-c4e5581e72bd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96984777-0bc2-45c6-add1-c4e5581e72bd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"daa6001f-6b59-4cad-bb44-dd2055738405","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.8435895} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38212aa0-67b9-43d0-800b-b6d0ace0b956","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.8437595} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9cf0020-f9f1-4e9e-beff-eb36cd8f9090","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"33d2a212-7e46-4292-8659-ba2153e6985d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.8461432} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.247671,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3e2b2320-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090","object_type":"device","rebac_allow":false,"scope_allow":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":"3e2b2320-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e2b2320-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling 200 8ms","method":"POST","requestID":"3e2b2320-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.265","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8"} experiment-1 | {"level":"info","message":"DELETE /experiments/96984777-0bc2-45c6-add1-c4e5581e72bd 204 237ms","method":"DELETE","requestID":"deb69a8affe0c4d1ea1f1ace1ce9d0a8","responseTime":237,"status":204,"url":"/experiments/96984777-0bc2-45c6-add1-c4e5581e72bd"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2787","request_time":"2.909","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"1ecac47235b6437318bedda06ff4cbe9"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2789","request_time":"2.878","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"ad2139a54384b03e98da3e26901ab276"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 192ms","method":"POST","requestID":"d06f5b24ace01bfd958523d716404dd8","responseTime":192,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"d06f5b24ace01bfd958523d716404dd8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 192ms","method":"POST","requestID":"a97e76e33680bf0b4f589e8e1203ca27","responseTime":192,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch","requestID":"a97e76e33680bf0b4f589e8e1203ca27"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMX0.nGx1b0jAEgTN5JpEiliKJ3VHEeAjDHgzO5dLMFyFwDA","level":"info","message":"auth send jwt","requestID":"0e323382942f7eb868b8374e6a5f264c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0e323382942f7eb868b8374e6a5f264c","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/f68389a9-6f86-4406-b9b7-324f365e8a3c' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"0e323382942f7eb868b8374e6a5f264c"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.012726,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0e323382942f7eb868b8374e6a5f264c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634421,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMX0.nGx1b0jAEgTN5JpEiliKJ3VHEeAjDHgzO5dLMFyFwDA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0e323382942f7eb868b8374e6a5f264c","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/e9cf0020-f9f1-4e9e-beff-eb36cd8f9090' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d81bfd73-e3da-4adb-a6df-5ac3aaac3390","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634421.9943027} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0e323382942f7eb868b8374e6a5f264c","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2a539ca8-513a-41a0-9478-927a1ebd478d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.000491} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"0e323382942f7eb868b8374e6a5f264c","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"77846137-3266-4d84-a323-62b1a20d0c5b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.0355494} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"75b14735-b786-4440-a617-8c85517a775c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.03561} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"0e323382942f7eb868b8374e6a5f264c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.035517808Z"}]},"request_id":"e9cd3d13-5453-4dc6-8d3e-7503d604a66d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.0408869} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0e323382942f7eb868b8374e6a5f264c","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0e323382942f7eb868b8374e6a5f264c"} gateway-1 | {"time_local":"07/May/2025:16:13:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.101","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0e323382942f7eb868b8374e6a5f264c"} device-1 | {"level":"info","message":"POST /devices? 201 94ms","method":"POST","requestID":"0e323382942f7eb868b8374e6a5f264c","responseTime":94,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMn0.TpfhNjN-XzEqJSkcO6F17-FRnT_LzRpJn3lQi2R3FvQ","level":"info","message":"auth send jwt","requestID":"672a2e098191f620a2dfb210a6d17276"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"672a2e098191f620a2dfb210a6d17276","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"672a2e098191f620a2dfb210a6d17276"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:42Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.910395,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"672a2e098191f620a2dfb210a6d17276","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634422,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyMn0.TpfhNjN-XzEqJSkcO6F17-FRnT_LzRpJn3lQi2R3FvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"672a2e098191f620a2dfb210a6d17276","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c1d8c65c-7624-4d35-bb45-ee213252a44c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.089902} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"672a2e098191f620a2dfb210a6d17276","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e320a84-213b-467e-8b94-046b6daaf8b0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.0954897} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"672a2e098191f620a2dfb210a6d17276","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"11452922-96ca-4e4c-bd03-bdbc8dcd542e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.1294682} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25cd71ba-1590-49f9-a768-416d9a7a1346","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.1297183} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"672a2e098191f620a2dfb210a6d17276","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.129437812Z"}]},"request_id":"be4bf002-9f46-48cc-8287-b00f0672fbd1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634422.1342113} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"672a2e098191f620a2dfb210a6d17276","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"672a2e098191f620a2dfb210a6d17276"} gateway-1 | {"time_local":"07/May/2025:16:13:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.092","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"672a2e098191f620a2dfb210a6d17276"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"672a2e098191f620a2dfb210a6d17276","responseTime":87,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6689,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"f2c61c81a0122e2458fbb3f753469e3f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f2c61c81a0122e2458fbb3f753469e3f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"f2c61c81a0122e2458fbb3f753469e3f"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.035517808Z"}]},"request_id":"0af6d9e9-c497-4ac7-b08c-16f8de765ac2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.0161521} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.005484,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f2c61c81a0122e2458fbb3f753469e3f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"f2c61c81a0122e2458fbb3f753469e3f","responseTime":27,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e1f5ff4b-05a8-47f1-a6f4-d586fc08138f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.0449345} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.129437812Z"}]},"request_id":"8167b91e-2c04-4c30-bf9a-7c4a5f9cc1ad","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.0477312} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f2c61c81a0122e2458fbb3f753469e3f","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"466234d8-44cf-4290-bfb4-33480851b35a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.0513287} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"f2c61c81a0122e2458fbb3f753469e3f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.035517808Z"}]},"request_id":"4971b284-cf80-41c6-a03f-42f0cb540034","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.058027} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3"} device-1 | {"level":"info","message":"PATCH /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171 200 54ms","method":"PATCH","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3","responseTime":54,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.058","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"fabd0fd1eab7cbe8490bbd17946cfbc3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"7a9d3497e8f3c50db86c1414b67279f2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7a9d3497e8f3c50db86c1414b67279f2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"7a9d3497e8f3c50db86c1414b67279f2"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647519,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"7a9d3497e8f3c50db86c1414b67279f2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7a9d3497e8f3c50db86c1414b67279f2","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.129437812Z"}]},"request_id":"94a76853-57f8-4b1c-8fef-785d1a9e5547","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.0925853} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f2c61c81a0122e2458fbb3f753469e3f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"f2c61c81a0122e2458fbb3f753469e3f"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d78351e5-b62c-48a1-b180-13935b23e8f8 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.083","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"f2c61c81a0122e2458fbb3f753469e3f"} device-1 | {"level":"info","message":"PATCH /devices/d78351e5-b62c-48a1-b180-13935b23e8f8 200 80ms","method":"PATCH","requestID":"f2c61c81a0122e2458fbb3f753469e3f","responseTime":80,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"a2433109681b57a57581c8f58a563b21"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a2433109681b57a57581c8f58a563b21","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"a2433109681b57a57581c8f58a563b21"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"7a9d3497e8f3c50db86c1414b67279f2"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/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.18","requestID":"7a9d3497e8f3c50db86c1414b67279f2"} device-1 | {"level":"info","message":"POST /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/websocket 200 13ms","method":"POST","requestID":"7a9d3497e8f3c50db86c1414b67279f2","responseTime":13,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/websocket"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.412673,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a2433109681b57a57581c8f58a563b21","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a2433109681b57a57581c8f58a563b21","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"a2433109681b57a57581c8f58a563b21"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d78351e5-b62c-48a1-b180-13935b23e8f8/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.18","requestID":"a2433109681b57a57581c8f58a563b21"} device-1 | {"level":"info","message":"POST /devices/d78351e5-b62c-48a1-b180-13935b23e8f8/websocket 200 37ms","method":"POST","requestID":"a2433109681b57a57581c8f58a563b21","responseTime":37,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"e210c0308b27922f31640c05892bba97"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e210c0308b27922f31640c05892bba97","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e210c0308b27922f31640c05892bba97"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.66747,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e210c0308b27922f31640c05892bba97","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"e210c0308b27922f31640c05892bba97","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.035517808Z"}]},"request_id":"7f14860d-9986-4263-aa7a-897d28098543","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.1590137} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e210c0308b27922f31640c05892bba97","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e210c0308b27922f31640c05892bba97"} device-1 | {"level":"info","message":"GET /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171? 200 33ms","method":"GET","requestID":"e210c0308b27922f31640c05892bba97","responseTime":33,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171?"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171? 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":"e210c0308b27922f31640c05892bba97"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691261,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0ab4e8d341f2436dad480fd9fc1c95e0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.129437812Z"}]},"request_id":"7404371f-ba8d-455c-aed6-a0ba7fdf932c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.1960025} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d78351e5-b62c-48a1-b180-13935b23e8f8? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0"} device-1 | {"level":"info","message":"GET /devices/d78351e5-b62c-48a1-b180-13935b23e8f8? 200 9ms","method":"GET","requestID":"0ab4e8d341f2436dad480fd9fc1c95e0","responseTime":9,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"31c64b7e5dc9138599cd3a26ee4f8522","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.818721,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"31c64b7e5dc9138599cd3a26ee4f8522","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"31c64b7e5dc9138599cd3a26ee4f8522","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Attempting to run experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Attempting to book experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully booked experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3f06b610-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3f06dd20-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.930402,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f06b610-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3f06b610-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904911,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f06dd20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3f06dd20-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.035517808Z"}]},"request_id":"0b4f45eb-070e-4ec9-94ae-b0266165aa55","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.289398} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3f06b610-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.129437812Z"}]},"request_id":"870e5cab-e6f4-4550-b5a4-104467570f01","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.2901027} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3f06dd20-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3f06b610-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171? 200 12ms","method":"GET","requestID":"3f06b610-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3f06dd20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/d78351e5-b62c-48a1-b180-13935b23e8f8? 200 12ms","method":"GET","requestID":"3f06dd20-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Setting up experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully locked booking for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Attempting to update booking for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully updated booking for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully set up experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3f15f850-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3f161f60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f166d80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.98003,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully running experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f15f850-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3f15f850-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.155734,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f161f60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3f161f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bed747fe-b65c-4d10-a51d-7ffc0b5e3c52","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.3906322} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.129437812Z"}]},"request_id":"0af8dc16-0e23-4979-bd65-1e9be86f0e24","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.3927352} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.969197,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f166d80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","rebac_allow":false,"scope_allow":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":"3f166d80-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3f161f60-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.035517808Z"}]},"request_id":"01118c5f-4b24-49c4-adb2-17a9547a9ecb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.3933063} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3f15f850-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f166d80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling 200 15ms","method":"POST","requestID":"3f166d80-2b5e-11f0-8e1f-5304d0938eae","responseTime":15,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3f161f60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/d78351e5-b62c-48a1-b180-13935b23e8f8? 200 17ms","method":"GET","requestID":"3f161f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":17,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3f15f850-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171? 200 19ms","method":"GET","requestID":"3f15f850-2b5e-11f0-8e1f-5304d0938eae","responseTime":19,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f1caf10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f1cfd30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F859a96a5-9378-46c2-9e56-02e5ac5e87e1#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F859a96a5-9378-46c2-9e56-02e5ac5e87e1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"ab00d34f-e439-44d8-9d2d-e3e6a8b99443","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.4279673} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"835ad49d-1683-4357-a70b-61077b2e5c74","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.4283428} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 45ms","method":"POST","requestID":"31c64b7e5dc9138599cd3a26ee4f8522","responseTime":45,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"487329af-8e8a-4371-be36-9071afb47b80","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.4336607} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"94172294-8ffc-4d61-816f-248e54945913","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.433722} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.62037,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.970044,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f1caf10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","rebac_allow":false,"scope_allow":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":"3f1caf10-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f1cfd30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","rebac_allow":false,"scope_allow":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":"3f1cfd30-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f1caf10-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} device-1 | {"level":"info","message":"POST /devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling 200 14ms","method":"POST","requestID":"3f1caf10-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f1cfd30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling 200 13ms","method":"POST","requestID":"3f1cfd30-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.241","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"level":"info","message":"POST /experiments? 201 237ms","method":"POST","requestID":"31c64b7e5dc9138599cd3a26ee4f8522","responseTime":237,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f1f4720-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"2e6096f94e8bda9c0537f36b26fede63"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2e6096f94e8bda9c0537f36b26fede63","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e6096f94e8bda9c0537f36b26fede63"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8892f270-6e3d-4115-bf58-2324126966ae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.447834} authorization-1 | {"client_addr":"127.0.0.1:37598","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.566585,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f1f4720-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","rebac_allow":false,"scope_allow":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":"3f1f4720-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.850094,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2e6096f94e8bda9c0537f36b26fede63","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2e6096f94e8bda9c0537f36b26fede63","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f1f4720-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling 200 36ms","method":"POST","requestID":"3f1f4720-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.035517808Z"}]},"request_id":"91311fcc-9f4b-46ac-a1b3-886a37fb5e7f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.4786458} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Building connection plan","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} 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":"a463aa65-1a5a-4f0b-a9d3-457d7bbeabed"},{"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":"b9432658-7ce6-42c8-9055-b497b1234e4c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"7680e778-35d6-406c-8ce5-1d61015c975f"}]},"level":"info","message":"Built pairwise service configurations","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2e6096f94e8bda9c0537f36b26fede63","responseTime":3,"status":200,"url":"/relations/query"} 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/9b68aa4b-a244-400e-a2a9-fa7c14bfb171"},{"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/d78351e5-b62c-48a1-b180-13935b23e8f8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e6096f94e8bda9c0537f36b26fede63"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171? 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":"2e6096f94e8bda9c0537f36b26fede63"} device-1 | {"level":"info","message":"GET /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171? 200 38ms","method":"GET","requestID":"2e6096f94e8bda9c0537f36b26fede63","responseTime":38,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171?"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.858549,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU","level":"info","message":"auth send jwt","requestID":"55e81f63d07d9b1420cd0c13b93d42d1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"55e81f63d07d9b1420cd0c13b93d42d1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"55e81f63d07d9b1420cd0c13b93d42d1"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.636546,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"55e81f63d07d9b1420cd0c13b93d42d1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634423,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyM30.ws34pM-47YzFcwGpoEb7EvW4XUq6UELBvJOl8r1_3gU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"55e81f63d07d9b1420cd0c13b93d42d1","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"1c775d8b-7c31-44ea-b8f0-d940389839d3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.4931579} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a74c3ba1-6a09-4154-97fa-994104ee0449","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.4934359} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:42.129437812Z"}]},"request_id":"f02ca7a1-7553-43ce-85be-55680f637573","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.4951925} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"55e81f63d07d9b1420cd0c13b93d42d1","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"55e81f63d07d9b1420cd0c13b93d42d1"} gateway-1 | {"time_local":"07/May/2025:16:13:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d78351e5-b62c-48a1-b180-13935b23e8f8? 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":"55e81f63d07d9b1420cd0c13b93d42d1"} device-1 | {"level":"info","message":"GET /devices/d78351e5-b62c-48a1-b180-13935b23e8f8? 200 38ms","method":"GET","requestID":"55e81f63d07d9b1420cd0c13b93d42d1","responseTime":38,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa'","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa'","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 54ms","method":"POST","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae","responseTime":54,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"3f253a90-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"31c64b7e5dc9138599cd3a26ee4f8522"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f34f200-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"17b81f90-5e38-419c-9bae-ca4d4ab418c2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.5881534} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.39003,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f34f200-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","rebac_allow":false,"scope_allow":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":"3f34f200-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f34f200-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling 200 7ms","method":"POST","requestID":"3f34f200-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:43Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f39fb10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e640702-0f98-4b2b-b0cc-893caa37b615","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634423.6215417} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.485124,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3f39fb10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","rebac_allow":false,"scope_allow":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":"3f39fb10-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f39fb10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling 200 8ms","method":"POST","requestID":"3f39fb10-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling"} device-1 | {"device":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"996d827f-fd97-45d8-9065-1446e4a66faa","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"996d827f-fd97-45d8-9065-1446e4a66faa","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/996d827f-fd97-45d8-9065-1446e4a66faa' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"996d827f-fd97-45d8-9065-1446e4a66faa","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"65f35ddbc5f23ce506b9a624a4a6f7d3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"65f35ddbc5f23ce506b9a624a4a6f7d3","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/9b68aa4b-a244-400e-a2a9-fa7c14bfb171"},{"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/d78351e5-b62c-48a1-b180-13935b23e8f8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa"}}},"level":"info","message":"received a callback","requestID":"65f35ddbc5f23ce506b9a624a4a6f7d3"} device-1 | {"device":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"65f35ddbc5f23ce506b9a624a4a6f7d3","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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":"65f35ddbc5f23ce506b9a624a4a6f7d3"} device-1 | {"device":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"996d827f-fd97-45d8-9065-1446e4a66faa","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"996d827f-fd97-45d8-9065-1446e4a66faa","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/996d827f-fd97-45d8-9065-1446e4a66faa' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"996d827f-fd97-45d8-9065-1446e4a66faa","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7d5c9a577e180e4c168c9ad525fef104","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"7d5c9a577e180e4c168c9ad525fef104","responseTime":25,"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/9b68aa4b-a244-400e-a2a9-fa7c14bfb171"},{"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/d78351e5-b62c-48a1-b180-13935b23e8f8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa"}}},"level":"info","message":"received a callback","requestID":"7d5c9a577e180e4c168c9ad525fef104"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"4075d670-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F996d827f-fd97-45d8-9065-1446e4a66faa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"759dafad-f602-4192-9871-79ffe221fbce","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.691258} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.297063,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4075d670-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa","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":"4075d670-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"4075d670-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa 200 7ms","method":"GET","requestID":"4075d670-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 24ms","method":"POST","requestID":"7d5c9a577e180e4c168c9ad525fef104","responseTime":24,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"7d5c9a577e180e4c168c9ad525fef104"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4078e3b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47a91f73-bdec-49c9-a361-795fdb9e13ff","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.7354279} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.358772,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4078e3b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","rebac_allow":false,"scope_allow":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":"4078e3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4078e3b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling 200 32ms","method":"POST","requestID":"4078e3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"407e13d0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b765d85e-47db-4a00-9049-95108139d169","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.7450757} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.466753,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"407e13d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","rebac_allow":false,"scope_allow":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":"407e13d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNX0.MAMyT2BvbPPl0CrxHMnD0jQehbf4tQSWOACExyfN6LA","level":"info","message":"auth send jwt","requestID":"2854c6e67a4c00dd51b9a6420a3b5121"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2854c6e67a4c00dd51b9a6420a3b5121","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","requestID":"2854c6e67a4c00dd51b9a6420a3b5121"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"407e13d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling 200 8ms","method":"POST","requestID":"407e13d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.660691,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2854c6e67a4c00dd51b9a6420a3b5121","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634425,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNX0.MAMyT2BvbPPl0CrxHMnD0jQehbf4tQSWOACExyfN6LA"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"2854c6e67a4c00dd51b9a6420a3b5121","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","requestID":"2854c6e67a4c00dd51b9a6420a3b5121"} gateway-1 | {"time_local":"07/May/2025:16:13:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1 HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2854c6e67a4c00dd51b9a6420a3b5121"} experiment-1 | {"level":"info","message":"GET /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1 200 31ms","method":"GET","requestID":"2854c6e67a4c00dd51b9a6420a3b5121","responseTime":31,"status":200,"url":"/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNX0.MAMyT2BvbPPl0CrxHMnD0jQehbf4tQSWOACExyfN6LA","level":"info","message":"auth send jwt","requestID":"46e8eca4812de69a646ccd074575e100"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"46e8eca4812de69a646ccd074575e100","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","requestID":"46e8eca4812de69a646ccd074575e100"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.701339,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"46e8eca4812de69a646ccd074575e100","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634425,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNX0.MAMyT2BvbPPl0CrxHMnD0jQehbf4tQSWOACExyfN6LA"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"46e8eca4812de69a646ccd074575e100","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Attempting to finish experiment","requestID":"46e8eca4812de69a646ccd074575e100"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4085b4f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.77226,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4085b4f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634425,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNX0.MAMyT2BvbPPl0CrxHMnD0jQehbf4tQSWOACExyfN6LA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4085b4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9b68aa4b-a244-400e-a2a9-fa7c14bfb171","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"d78351e5-b62c-48a1-b180-13935b23e8f8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/996d827f-fd97-45d8-9065-1446e4a66faa' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"996d827f-fd97-45d8-9065-1446e4a66faa","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bf03bb1b34fd78598a5c9cc5f10e203c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bf03bb1b34fd78598a5c9cc5f10e203c","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F996d827f-fd97-45d8-9065-1446e4a66faa': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F996d827f-fd97-45d8-9065-1446e4a66faa","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"67816d55-f2d7-498f-a66d-14f5d94038da","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.832451} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1ff5bdb94251eae200e84e4e4dc00c06","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/9b68aa4b-a244-400e-a2a9-fa7c14bfb171"},{"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/d78351e5-b62c-48a1-b180-13935b23e8f8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa"}}},"level":"info","message":"received a callback","requestID":"bf03bb1b34fd78598a5c9cc5f10e203c"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1ff5bdb94251eae200e84e4e4dc00c06","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"82f8f3f2-1047-431d-a898-95cb021e5977","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.8331387} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"4085b4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"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/9b68aa4b-a244-400e-a2a9-fa7c14bfb171"},{"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/d78351e5-b62c-48a1-b180-13935b23e8f8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa"}}},"level":"info","message":"received a callback","requestID":"1ff5bdb94251eae200e84e4e4dc00c06"} device-1 | {"data":{"peerconnection":"996d827f-fd97-45d8-9065-1446e4a66faa","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4085b4f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa 204 84ms","method":"DELETE","requestID":"4085b4f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":84,"status":204,"url":"/peerconnections/996d827f-fd97-45d8-9065-1446e4a66faa"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"},"level":"info","message":"Successfully finished experiment","requestID":"46e8eca4812de69a646ccd074575e100"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"40948200-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9b68aa4b-a244-400e-a2a9-fa7c14bfb171","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9777fec1-edfe-487e-902e-7df49e5afd9a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.8929222} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.123767,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"40948200-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171","object_type":"device","rebac_allow":false,"scope_allow":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":"40948200-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"40948200-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling 200 33ms","method":"POST","requestID":"40948200-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/9b68aa4b-a244-400e-a2a9-fa7c14bfb171/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F859a96a5-9378-46c2-9e56-02e5ac5e87e1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F859a96a5-9378-46c2-9e56-02e5ac5e87e1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"179012fc-c61a-4476-9873-5377cd9c8edd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.9229202} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4099d930-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68bc64ef-e2a6-4e4f-9ad9-a8d8442af2d7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.923161} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"46e8eca4812de69a646ccd074575e100","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd78351e5-b62c-48a1-b180-13935b23e8f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c3d7d95f-0342-4a8f-954a-1387734e746e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634425.9274187} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.327506,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4099d930-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8","object_type":"device","rebac_allow":false,"scope_allow":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":"4099d930-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4099d930-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling 200 8ms","method":"POST","requestID":"4099d930-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/d78351e5-b62c-48a1-b180-13935b23e8f8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1","requestID":"46e8eca4812de69a646ccd074575e100"} gateway-1 | {"time_local":"07/May/2025:16:13:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.212","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"46e8eca4812de69a646ccd074575e100"} experiment-1 | {"level":"info","message":"DELETE /experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1 204 234ms","method":"DELETE","requestID":"46e8eca4812de69a646ccd074575e100","responseTime":234,"status":204,"url":"/experiments/859a96a5-9378-46c2-9e56-02e5ac5e87e1"} gateway-1 | {"time_local":"07/May/2025:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2787","request_time":"2.877","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"bc052e7d8980c55abfe46147e87d3b74"} gateway-1 | {"time_local":"07/May/2025:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2789","request_time":"2.912","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"7feeb2890914ee88e2587b0848197500"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d78351e5-b62c-48a1-b180-13935b23e8f8' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 189ms","method":"POST","requestID":"bf03bb1b34fd78598a5c9cc5f10e203c","responseTime":189,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"bf03bb1b34fd78598a5c9cc5f10e203c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNn0.uQLooDg5F3bavj_HAd0tVj8XVkCEAivupglIVWT01B4","level":"info","message":"auth send jwt","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 189ms","method":"POST","requestID":"1ff5bdb94251eae200e84e4e4dc00c06","responseTime":189,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"1ff5bdb94251eae200e84e4e4dc00c06"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:46Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.843073,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634426,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNn0.uQLooDg5F3bavj_HAd0tVj8XVkCEAivupglIVWT01B4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","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/9b68aa4b-a244-400e-a2a9-fa7c14bfb171' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fc0b77e3-5d75-405d-854d-628cd4108206","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.0659544} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e53a7850-9663-40c4-a556-79f6bf9e2d47","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.0737782} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"c460fe57-5173-46e3-a8ca-9af234addd3c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.0844798} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ceb9838d-dcdd-4ca2-a09b-fce997009629","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.0846868} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.084447380Z"}]},"request_id":"49896795-1b5f-4e0d-b103-d9d5f0e8cef9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.0891354} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a"} gateway-1 | {"time_local":"07/May/2025:16:13:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.073","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a"} device-1 | {"level":"info","message":"POST /devices? 201 69ms","method":"POST","requestID":"6bcba7bcaa4bcdb7fa47a3170b43975a","responseTime":69,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNn0.uQLooDg5F3bavj_HAd0tVj8XVkCEAivupglIVWT01B4","level":"info","message":"auth send jwt","requestID":"488881d87c1a9024acc918f279ea31ee"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"488881d87c1a9024acc918f279ea31ee","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"488881d87c1a9024acc918f279ea31ee"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:46Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.863217,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"488881d87c1a9024acc918f279ea31ee","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634426,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyNn0.uQLooDg5F3bavj_HAd0tVj8XVkCEAivupglIVWT01B4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"488881d87c1a9024acc918f279ea31ee","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9b502544-fc07-493c-b905-a266d1999393","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.1333954} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"488881d87c1a9024acc918f279ea31ee","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"95e6ff16-d524-490f-8a2b-fe97bc762c39","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.1623316} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"488881d87c1a9024acc918f279ea31ee","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d9007651-90ae-4114-b675-2cf81b681b42","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.1729198} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad555ea6-3b31-4f31-b3cd-155892fffb06","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.1731882} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"488881d87c1a9024acc918f279ea31ee","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.172895008Z"}]},"request_id":"17845493-0b22-46d5-9024-171180a6bda0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634426.1774035} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"488881d87c1a9024acc918f279ea31ee","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"488881d87c1a9024acc918f279ea31ee"} gateway-1 | {"time_local":"07/May/2025:16:13:46 +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":"488881d87c1a9024acc918f279ea31ee"} device-1 | {"level":"info","message":"POST /devices? 201 61ms","method":"POST","requestID":"488881d87c1a9024acc918f279ea31ee","responseTime":61,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1bc597d319d96778a6c7443b50160000","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1bc597d319d96778a6c7443b50160000","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f98d4ab90ec22f2c58c4ee928c722546","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f98d4ab90ec22f2c58c4ee928c722546","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/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":"1bc597d319d96778a6c7443b50160000"} device-1 | {"level":"info","message":"OPTIONS /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/websocket 200 1ms","method":"OPTIONS","requestID":"1bc597d319d96778a6c7443b50160000","responseTime":1,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1df335c9-35f4-492c-90d3-8dddd462d026/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":"f98d4ab90ec22f2c58c4ee928c722546"} device-1 | {"level":"info","message":"OPTIONS /devices/1df335c9-35f4-492c-90d3-8dddd462d026/websocket 200 0ms","method":"OPTIONS","requestID":"f98d4ab90ec22f2c58c4ee928c722546","responseTime":0,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM","level":"info","message":"auth send jwt","requestID":"8920b2b02a928c4979d58adc38a662b8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8920b2b02a928c4979d58adc38a662b8","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM","level":"info","message":"auth send jwt","requestID":"0f4ef286b89518688ff01e5d262acba8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0f4ef286b89518688ff01e5d262acba8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8920b2b02a928c4979d58adc38a662b8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0f4ef286b89518688ff01e5d262acba8"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.608455,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8920b2b02a928c4979d58adc38a662b8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8920b2b02a928c4979d58adc38a662b8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.029347,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"0f4ef286b89518688ff01e5d262acba8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0f4ef286b89518688ff01e5d262acba8","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8920b2b02a928c4979d58adc38a662b8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8920b2b02a928c4979d58adc38a662b8"} device-1 | {"level":"info","message":"POST /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/websocket 200 37ms","method":"POST","requestID":"8920b2b02a928c4979d58adc38a662b8","responseTime":37,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0f4ef286b89518688ff01e5d262acba8"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1df335c9-35f4-492c-90d3-8dddd462d026/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.049","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0f4ef286b89518688ff01e5d262acba8"} device-1 | {"level":"info","message":"POST /devices/1df335c9-35f4-492c-90d3-8dddd462d026/websocket 200 45ms","method":"POST","requestID":"0f4ef286b89518688ff01e5d262acba8","responseTime":45,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM","level":"info","message":"auth send jwt","requestID":"3a1ee9df1810b1614e4ff16399eab1c1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3a1ee9df1810b1614e4ff16399eab1c1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3a1ee9df1810b1614e4ff16399eab1c1"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.639329,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3a1ee9df1810b1614e4ff16399eab1c1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3a1ee9df1810b1614e4ff16399eab1c1","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.084447380Z"}]},"request_id":"585a6e69-6502-4b37-a045-2f71af615df3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.6700468} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3a1ee9df1810b1614e4ff16399eab1c1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3a1ee9df1810b1614e4ff16399eab1c1"} device-1 | {"level":"info","message":"GET /devices/e5810092-16cc-4a27-bb6e-9e543f2be708? 200 8ms","method":"GET","requestID":"3a1ee9df1810b1614e4ff16399eab1c1","responseTime":8,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708?"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e5810092-16cc-4a27-bb6e-9e543f2be708? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a1ee9df1810b1614e4ff16399eab1c1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM","level":"info","message":"auth send jwt","requestID":"ec76cb9f422f1b198fdae1252429bc4c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ec76cb9f422f1b198fdae1252429bc4c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ec76cb9f422f1b198fdae1252429bc4c"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904408,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ec76cb9f422f1b198fdae1252429bc4c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ec76cb9f422f1b198fdae1252429bc4c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.172895008Z"}]},"request_id":"e726c1e0-457c-43cc-b333-80c689304363","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.7073126} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ec76cb9f422f1b198fdae1252429bc4c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ec76cb9f422f1b198fdae1252429bc4c"} device-1 | {"level":"info","message":"GET /devices/1df335c9-35f4-492c-90d3-8dddd462d026? 200 34ms","method":"GET","requestID":"ec76cb9f422f1b198fdae1252429bc4c","responseTime":34,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026?"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1df335c9-35f4-492c-90d3-8dddd462d026? 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":"ec76cb9f422f1b198fdae1252429bc4c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM","level":"info","message":"auth send jwt","requestID":"36743c2ba5d340870a8059933bf0ab34"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"36743c2ba5d340870a8059933bf0ab34","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"36743c2ba5d340870a8059933bf0ab34"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.646437,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"36743c2ba5d340870a8059933bf0ab34","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"36743c2ba5d340870a8059933bf0ab34","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Attempting to run experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Attempting to book experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully booked experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"424bf600-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"424c1d10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.633647,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"424bf600-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"424bf600-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.571902,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"424c1d10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"424c1d10-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.084447380Z"}]},"request_id":"548a7d01-92eb-4a00-b159-77f25ed8a2ce","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.7746363} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"424bf600-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.172895008Z"}]},"request_id":"ec4ee132-7eb7-4fda-8a66-13d1b1c48c67","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.7753768} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"424c1d10-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"424c1d10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/1df335c9-35f4-492c-90d3-8dddd462d026? 200 34ms","method":"GET","requestID":"424c1d10-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"424bf600-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/e5810092-16cc-4a27-bb6e-9e543f2be708? 200 35ms","method":"GET","requestID":"424bf600-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Setting up experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully locked booking for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Attempting to update booking for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully updated booking for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully set up experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4259d8b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4259ffc0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"425a4de0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully running experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.969959,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4259d8b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4259d8b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.460903,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4259ffc0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4259ffc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5e0b0788-f127-4387-8d84-a53c8b967fa9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.8673377} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.688228,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"425a4de0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","rebac_allow":false,"scope_allow":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":"425a4de0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.084447380Z"}]},"request_id":"528390a8-4116-44d7-8d68-dcbbdba8544c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.869395} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"425a4de0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"4259d8b0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.172895008Z"}]},"request_id":"b48753ea-b04c-4f15-945f-2df4450e7697","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.871458} device-1 | {"level":"info","message":"POST /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling 200 10ms","method":"POST","requestID":"425a4de0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"4259ffc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"42606860-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c980b42-a06d-4ddc-b5df-9140c6a88f08#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c980b42-a06d-4ddc-b5df-9140c6a88f08","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"8f7f5e9f-62e1-4d5f-a44b-d1f6f00810aa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.903979} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4259d8b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ba75ec9c-da73-4d40-a8b1-fefe69142cf1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9041057} device-1 | {"level":"info","message":"GET /devices/e5810092-16cc-4a27-bb6e-9e543f2be708? 200 47ms","method":"GET","requestID":"4259d8b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":47,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4259ffc0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/1df335c9-35f4-492c-90d3-8dddd462d026? 200 47ms","method":"GET","requestID":"4259ffc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":47,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"36743c2ba5d340870a8059933bf0ab34","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8d24c31e-3225-4f56-94b1-a30f8ef0b63c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9074304} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.12203,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"42606860-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","rebac_allow":false,"scope_allow":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":"42606860-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4261c7f0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"36743c2ba5d340870a8059933bf0ab34"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.203","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"36743c2ba5d340870a8059933bf0ab34"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"42606860-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"level":"info","message":"POST /experiments? 201 200ms","method":"POST","requestID":"36743c2ba5d340870a8059933bf0ab34","responseTime":200,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} device-1 | {"level":"info","message":"POST /devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling 200 14ms","method":"POST","requestID":"42606860-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ab44e447-7fb1-462a-9825-50c30b6e94bd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9163728} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.688093,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4261c7f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","rebac_allow":false,"scope_allow":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":"4261c7f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM","level":"info","message":"auth send jwt","requestID":"bf34cf807e7801d224701b54f7a41d6b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bf34cf807e7801d224701b54f7a41d6b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"bf34cf807e7801d224701b54f7a41d6b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4261c7f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} device-1 | {"level":"info","message":"POST /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling 200 34ms","method":"POST","requestID":"4261c7f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.887497,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bf34cf807e7801d224701b54f7a41d6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bf34cf807e7801d224701b54f7a41d6b","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"42679450-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13: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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.084447380Z"}]},"request_id":"adeafe7d-052c-4944-a467-4c7f8df71c73","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9533558} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5c27a74a-70b0-49f5-a061-e2872cbdc88b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9534228} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bf34cf807e7801d224701b54f7a41d6b","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.333548,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"42679450-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","rebac_allow":false,"scope_allow":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":"42679450-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"bf34cf807e7801d224701b54f7a41d6b"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e5810092-16cc-4a27-bb6e-9e543f2be708? 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":"bf34cf807e7801d224701b54f7a41d6b"} device-1 | {"level":"info","message":"GET /devices/e5810092-16cc-4a27-bb6e-9e543f2be708? 200 38ms","method":"GET","requestID":"bf34cf807e7801d224701b54f7a41d6b","responseTime":38,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"42679450-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling 200 10ms","method":"POST","requestID":"42679450-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Building connection plan","requestID":"36743c2ba5d340870a8059933bf0ab34"} 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":"f4d9f8da-762d-4bc7-8566-8b72717adb47"},{"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":"6c6383f8-93dc-4155-ab6b-2303df3dd49b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8e5c50cb-2dca-4cc7-a028-195d5a8849e5"}]},"level":"info","message":"Built pairwise service configurations","requestID":"36743c2ba5d340870a8059933bf0ab34"} 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/1df335c9-35f4-492c-90d3-8dddd462d026"},{"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/e5810092-16cc-4a27-bb6e-9e543f2be708"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"36743c2ba5d340870a8059933bf0ab34"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM","level":"info","message":"auth send jwt","requestID":"3970c7cacd5ba18babcf22f032e58ba1"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3970c7cacd5ba18babcf22f032e58ba1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3970c7cacd5ba18babcf22f032e58ba1"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.640528,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.738345,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3970c7cacd5ba18babcf22f032e58ba1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634428,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOH0.JAzVBoCBX08T6BipBBAuxM5Ek5PnWJ662S3WXmjWlSM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3970c7cacd5ba18babcf22f032e58ba1","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:46.172895008Z"}]},"request_id":"c5be9f5a-59a2-4cbb-b4f9-fd0a095750e8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9940286} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"3970c7cacd5ba18babcf22f032e58ba1","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3970c7cacd5ba18babcf22f032e58ba1"} gateway-1 | {"time_local":"07/May/2025:16:13:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1df335c9-35f4-492c-90d3-8dddd462d026? 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":"3970c7cacd5ba18babcf22f032e58ba1"} device-1 | {"level":"info","message":"GET /devices/1df335c9-35f4-492c-90d3-8dddd462d026? 200 33ms","method":"GET","requestID":"3970c7cacd5ba18babcf22f032e58ba1","responseTime":33,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"808191ea-b0f5-46bc-a5ba-9efbba400744","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9975603} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc7fc0c8-6d4c-4a0a-b315-5145e5173987","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634428.9978404} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee'","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee'","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"42699020-2b5e-11f0-8e1f-5304d0938eae"} 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":"42699020-2b5e-11f0-8e1f-5304d0938eae","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":"42699020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee","device":"1df335c9-35f4-492c-90d3-8dddd462d026","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/f114ec13-5fba-496a-871d-bc3d9c0856ee","device":"e5810092-16cc-4a27-bb6e-9e543f2be708","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/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"36743c2ba5d340870a8059933bf0ab34"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4277e800-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"10f15772-2d69-486e-82cc-6fcc67585681","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.060572} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.006194,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4277e800-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","rebac_allow":false,"scope_allow":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":"4277e800-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4277e800-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling 200 34ms","method":"POST","requestID":"4277e800-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"427d6640-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} device-1 | {"device":"1df335c9-35f4-492c-90d3-8dddd462d026","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"1df335c9-35f4-492c-90d3-8dddd462d026","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"e5810092-16cc-4a27-bb6e-9e543f2be708","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"e5810092-16cc-4a27-bb6e-9e543f2be708","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d9f5110-0a03-4f38-aba2-490721cb82ff","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.1010764} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.310522,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"427d6640-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","rebac_allow":false,"scope_allow":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":"427d6640-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"427d6640-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling 200 13ms","method":"POST","requestID":"427d6640-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 6545814888728743101 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:XO39\r\na=ice-pwd:a+RIEa8gatKFJhJ2cKfDEGyc\r\na=ice-options:trickle\r\na=fingerprint:sha-256 20:B8:FF:10:3E:62:53:6F:A6:8F:88:CF:38:2F:56:03:45:27:3A:D2:56:3E:D4:7D:ED:0F:1C:20:EC:65:25: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":"e5810092-16cc-4a27-bb6e-9e543f2be708","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 1109819827108142180 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:wOXx\r\na=ice-pwd:KmuP3/JNnoCqfB0Hkf2hXqE9\r\na=ice-options:trickle\r\na=fingerprint:sha-256 FB:DC:C1:F1:20:BA:4C:AB:3E:0E:2D:86:51:93:4D:7B:22:CC:55:A0:2E:61:24:50:16:C9:AB:10:18:6F:B6:98\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"1df335c9-35f4-492c-90d3-8dddd462d026","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1442941389 1 udp 2113937151 d0c3d8ae-cdf0-48e1-b3d7-1572e0ef68a3.local 47373 typ host generation 0 ufrag wOXx network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"1df335c9-35f4-492c-90d3-8dddd462d026","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/1df335c9-35f4-492c-90d3-8dddd462d026'"} device-1 | {"content":{"candidate":"candidate:1943604932 1 udp 2113937151 5eab10f4-5fcc-40fc-b390-31da82489f37.local 60559 typ host generation 0 ufrag XO39 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"e5810092-16cc-4a27-bb6e-9e543f2be708","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"e5810092-16cc-4a27-bb6e-9e543f2be708","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"1df335c9-35f4-492c-90d3-8dddd462d026","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/f114ec13-5fba-496a-871d-bc3d9c0856ee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f114ec13-5fba-496a-871d-bc3d9c0856ee","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"e5810092-16cc-4a27-bb6e-9e543f2be708","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a68f2cce25dcee8a81df4f8472ab41cd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a68f2cce25dcee8a81df4f8472ab41cd","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"1df335c9-35f4-492c-90d3-8dddd462d026","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} 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/1df335c9-35f4-492c-90d3-8dddd462d026"},{"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/e5810092-16cc-4a27-bb6e-9e543f2be708"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee"}}},"level":"info","message":"received a callback","requestID":"a68f2cce25dcee8a81df4f8472ab41cd"} device-1 | {"device":"e5810092-16cc-4a27-bb6e-9e543f2be708","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"1df335c9-35f4-492c-90d3-8dddd462d026","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} gateway-1 | {"time_local":"07/May/2025:16:13: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.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"a68f2cce25dcee8a81df4f8472ab41cd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 34ms","method":"POST","requestID":"a68f2cce25dcee8a81df4f8472ab41cd","responseTime":34,"status":200,"url":"/callbacks/experiment"} device-1 | {"data":{"peerconnection":"f114ec13-5fba-496a-871d-bc3d9c0856ee","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"1df335c9-35f4-492c-90d3-8dddd462d026","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"f114ec13-5fba-496a-871d-bc3d9c0856ee","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/f114ec13-5fba-496a-871d-bc3d9c0856ee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f114ec13-5fba-496a-871d-bc3d9c0856ee","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4824368850ac67890a65bb57ab85c23a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4824368850ac67890a65bb57ab85c23a","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/1df335c9-35f4-492c-90d3-8dddd462d026"},{"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/e5810092-16cc-4a27-bb6e-9e543f2be708"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee"}}},"level":"info","message":"received a callback","requestID":"4824368850ac67890a65bb57ab85c23a"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"429497c0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff114ec13-5fba-496a-871d-bc3d9c0856ee","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e207f523-ba24-47d5-8bbb-07510ddea421","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.2481112} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.080144,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"429497c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee","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":"429497c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"429497c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee 200 7ms","method":"GET","requestID":"429497c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"4824368850ac67890a65bb57ab85c23a","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"4824368850ac67890a65bb57ab85c23a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"429bc3b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"16d57eab-7095-4317-9890-9e5d2210c172","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.2949207} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.180653,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"429bc3b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","rebac_allow":false,"scope_allow":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":"429bc3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"429bc3b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling 200 7ms","method":"POST","requestID":"429bc3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"429d4a50-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg","level":"info","message":"auth send jwt","requestID":"ec6fd69e36329086a86a91fab0930bd1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ec6fd69e36329086a86a91fab0930bd1","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","requestID":"ec6fd69e36329086a86a91fab0930bd1"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15667b9c-a2b3-4ddb-908c-80c86ccf4a64","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.329408} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.855253,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ec6fd69e36329086a86a91fab0930bd1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634429,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"ec6fd69e36329086a86a91fab0930bd1","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.154711,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"429d4a50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","rebac_allow":false,"scope_allow":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":"429d4a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"429d4a50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling 200 33ms","method":"POST","requestID":"429d4a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","requestID":"ec6fd69e36329086a86a91fab0930bd1"} gateway-1 | {"time_local":"07/May/2025:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ec6fd69e36329086a86a91fab0930bd1"} experiment-1 | {"level":"info","message":"GET /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08 200 32ms","method":"GET","requestID":"ec6fd69e36329086a86a91fab0930bd1","responseTime":32,"status":200,"url":"/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg","level":"info","message":"auth send jwt","requestID":"7a958a007cb6ca87fea41bbe9f3a6893"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7a958a007cb6ca87fea41bbe9f3a6893","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","requestID":"7a958a007cb6ca87fea41bbe9f3a6893"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.651963,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"7a958a007cb6ca87fea41bbe9f3a6893","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634429,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"7a958a007cb6ca87fea41bbe9f3a6893","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Attempting to finish experiment","requestID":"7a958a007cb6ca87fea41bbe9f3a6893"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"42a44f30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.716591,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"42a44f30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634429,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"42a44f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee","device":"1df335c9-35f4-492c-90d3-8dddd462d026","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee","device":"e5810092-16cc-4a27-bb6e-9e543f2be708","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/f114ec13-5fba-496a-871d-bc3d9c0856ee' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f114ec13-5fba-496a-871d-bc3d9c0856ee","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff114ec13-5fba-496a-871d-bc3d9c0856ee': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff114ec13-5fba-496a-871d-bc3d9c0856ee","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"70ce8b38-49fd-4987-a980-a59a4dced782","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.388307} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ecf15fb-e673-4399-b434-db903ae50cd9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.388593} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e301142864945e6e56e3463ef4b0f356","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e301142864945e6e56e3463ef4b0f356","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"42a44f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"348081b3f6005d11e694cc1135469092","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/1df335c9-35f4-492c-90d3-8dddd462d026"},{"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/e5810092-16cc-4a27-bb6e-9e543f2be708"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee"}}},"level":"info","message":"received a callback","requestID":"e301142864945e6e56e3463ef4b0f356"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"348081b3f6005d11e694cc1135469092","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/1df335c9-35f4-492c-90d3-8dddd462d026"},{"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/e5810092-16cc-4a27-bb6e-9e543f2be708"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee"}}},"level":"info","message":"received a callback","requestID":"348081b3f6005d11e694cc1135469092"} device-1 | {"data":{"peerconnection":"f114ec13-5fba-496a-871d-bc3d9c0856ee","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"42a44f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee 204 84ms","method":"DELETE","requestID":"42a44f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":84,"status":204,"url":"/peerconnections/f114ec13-5fba-496a-871d-bc3d9c0856ee"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"},"level":"info","message":"Successfully finished experiment","requestID":"7a958a007cb6ca87fea41bbe9f3a6893"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"42b3b880-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1df335c9-35f4-492c-90d3-8dddd462d026","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"63cc6c42-069c-4491-b887-4d419416b3d8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.4757345} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.15966,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"42b3b880-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026","object_type":"device","rebac_allow":false,"scope_allow":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":"42b3b880-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"42b3b880-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling 200 31ms","method":"POST","requestID":"42b3b880-2b5e-11f0-8e1f-5304d0938eae","responseTime":31,"status":200,"url":"/devices/1df335c9-35f4-492c-90d3-8dddd462d026/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"42b8c190-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c980b42-a06d-4ddc-b5df-9140c6a88f08': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4c980b42-a06d-4ddc-b5df-9140c6a88f08","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"645ab9e5-837b-4846-8297-ca8795e16041","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.4830635} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7ef27527-dda9-489d-b681-d02491bf7ebe","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.483253} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"7a958a007cb6ca87fea41bbe9f3a6893","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5810092-16cc-4a27-bb6e-9e543f2be708","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b1e4312-4004-494a-a6f8-d82d7f1c9342","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.485542} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.374557,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"42b8c190-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5810092-16cc-4a27-bb6e-9e543f2be708","object_type":"device","rebac_allow":false,"scope_allow":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":"42b8c190-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"42b8c190-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling 200 8ms","method":"POST","requestID":"42b8c190-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/e5810092-16cc-4a27-bb6e-9e543f2be708/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08","requestID":"7a958a007cb6ca87fea41bbe9f3a6893"} gateway-1 | {"time_local":"07/May/2025:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.243","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a958a007cb6ca87fea41bbe9f3a6893"} experiment-1 | {"level":"info","message":"DELETE /experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08 204 240ms","method":"DELETE","requestID":"7a958a007cb6ca87fea41bbe9f3a6893","responseTime":240,"status":204,"url":"/experiments/4c980b42-a06d-4ddc-b5df-9140c6a88f08"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 192ms","method":"POST","requestID":"e301142864945e6e56e3463ef4b0f356","responseTime":192,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"e301142864945e6e56e3463ef4b0f356"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"348081b3f6005d11e694cc1135469092","responseTime":191,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"348081b3f6005d11e694cc1135469092"} gateway-1 | {"time_local":"07/May/2025:16:13:49 +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.971","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dc5b07741f66e9e7a15a2b4d6f368411"} gateway-1 | {"time_local":"07/May/2025:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2544","request_time":"0.965","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c34d91a4f8c79166a34ed9685a64ce09"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1df335c9-35f4-492c-90d3-8dddd462d026' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"6e53ecb184353d1cd4175a6bd5667471"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg","level":"info","message":"auth send jwt","requestID":"6e53ecb184353d1cd4175a6bd5667471"} authentication-1 | {"level":"info","message":"GET /auth 200 35ms","method":"GET","requestID":"6e53ecb184353d1cd4175a6bd5667471","responseTime":35,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.119291,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6e53ecb184353d1cd4175a6bd5667471","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634429,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6e53ecb184353d1cd4175a6bd5667471","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/e5810092-16cc-4a27-bb6e-9e543f2be708' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3f269b79-e5b8-42a6-9683-f6115a47b390","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.6370547} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6e53ecb184353d1cd4175a6bd5667471","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"230ef611-8c2a-4a67-a253-9e49b74fbc4f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.6652052} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"6e53ecb184353d1cd4175a6bd5667471","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"f6d8be56-d86e-421c-89df-f4c6dfaa2307","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.6741304} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"855dcb4f-386b-4b89-9f8a-abff3ad9806f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.6743865} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"6e53ecb184353d1cd4175a6bd5667471","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.674101070Z"}]},"request_id":"5608a70d-d35b-4777-89e6-138c823b50c2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.6778219} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6e53ecb184353d1cd4175a6bd5667471","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6e53ecb184353d1cd4175a6bd5667471"} gateway-1 | {"time_local":"07/May/2025:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.098","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e53ecb184353d1cd4175a6bd5667471"} device-1 | {"level":"info","message":"POST /devices? 201 61ms","method":"POST","requestID":"6e53ecb184353d1cd4175a6bd5667471","responseTime":61,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg","level":"info","message":"auth send jwt","requestID":"eac1d22d53fb1b73f3eb8f09463798c6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eac1d22d53fb1b73f3eb8f09463798c6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"eac1d22d53fb1b73f3eb8f09463798c6"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.929141,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"eac1d22d53fb1b73f3eb8f09463798c6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634429,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQyOX0.TFLeI_aegwV33wnAYZKYeYbSUuE0Fxg2p9Nj1Wi0omg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eac1d22d53fb1b73f3eb8f09463798c6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e3bd1959-fcac-47ca-b572-71a503f383fa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.7251573} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"eac1d22d53fb1b73f3eb8f09463798c6","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"54be4fc1-e527-4f8e-91b0-e090b9a9e96c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.7296484} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"eac1d22d53fb1b73f3eb8f09463798c6","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"5b59512d-31c8-41d4-9a37-bd6f320156fd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.7638068} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d467d116-8d3c-43f6-b619-3bb1cb316c4f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.7639537} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"eac1d22d53fb1b73f3eb8f09463798c6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.763777240Z"}]},"request_id":"addfa892-329e-4f0f-acb5-460f633ef209","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634429.7673779} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"eac1d22d53fb1b73f3eb8f09463798c6","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"eac1d22d53fb1b73f3eb8f09463798c6"} device-1 | {"level":"info","message":"POST /devices? 201 84ms","method":"POST","requestID":"eac1d22d53fb1b73f3eb8f09463798c6","responseTime":84,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.088","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eac1d22d53fb1b73f3eb8f09463798c6"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"05d62b793a0f1925467eed44f3a9eca5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"05d62b793a0f1925467eed44f3a9eca5","responseTime":0,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/74246819-4e86-4fd9-acfe-019113065ed1/websocket 200 0ms","method":"OPTIONS","requestID":"05d62b793a0f1925467eed44f3a9eca5","responseTime":0,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/74246819-4e86-4fd9-acfe-019113065ed1/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":"05d62b793a0f1925467eed44f3a9eca5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"cbdd1849961a71b11bb81b3822aa0389"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cbdd1849961a71b11bb81b3822aa0389","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cbdd1849961a71b11bb81b3822aa0389"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.608259,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cbdd1849961a71b11bb81b3822aa0389","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cbdd1849961a71b11bb81b3822aa0389","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cbdd1849961a71b11bb81b3822aa0389"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/74246819-4e86-4fd9-acfe-019113065ed1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cbdd1849961a71b11bb81b3822aa0389"} device-1 | {"level":"info","message":"POST /devices/74246819-4e86-4fd9-acfe-019113065ed1/websocket 200 13ms","method":"POST","requestID":"cbdd1849961a71b11bb81b3822aa0389","responseTime":13,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cf64c68ee012ffd9296f06a1bd0e9291","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cf64c68ee012ffd9296f06a1bd0e9291","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/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":"cf64c68ee012ffd9296f06a1bd0e9291"} device-1 | {"level":"info","message":"OPTIONS /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/websocket 200 1ms","method":"OPTIONS","requestID":"cf64c68ee012ffd9296f06a1bd0e9291","responseTime":1,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"57752902a3189af5a836a55561109442"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"57752902a3189af5a836a55561109442","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"57752902a3189af5a836a55561109442"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.132394,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"57752902a3189af5a836a55561109442","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"57752902a3189af5a836a55561109442","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"57752902a3189af5a836a55561109442"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"57752902a3189af5a836a55561109442"} device-1 | {"level":"info","message":"POST /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/websocket 200 39ms","method":"POST","requestID":"57752902a3189af5a836a55561109442","responseTime":39,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.721103,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.674101070Z"}]},"request_id":"5d8f8595-d98a-4ae3-8ffd-7c7e424c6911","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.2365384} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/88da6edf-5db9-45c7-a25f-96988a3e463e? 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":"5d00bcd8e2bc55dccac8e7beb5132fc6"} device-1 | {"level":"info","message":"GET /devices/88da6edf-5db9-45c7-a25f-96988a3e463e? 200 35ms","method":"GET","requestID":"5d00bcd8e2bc55dccac8e7beb5132fc6","responseTime":35,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"fd81e1cfca18d4271394671f09d72ce7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fd81e1cfca18d4271394671f09d72ce7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fd81e1cfca18d4271394671f09d72ce7"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68591,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"fd81e1cfca18d4271394671f09d72ce7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"fd81e1cfca18d4271394671f09d72ce7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.763777240Z"}]},"request_id":"652d2561-d0d8-400b-8fb1-ed9d71238451","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.274753} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fd81e1cfca18d4271394671f09d72ce7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fd81e1cfca18d4271394671f09d72ce7"} device-1 | {"level":"info","message":"GET /devices/74246819-4e86-4fd9-acfe-019113065ed1? 200 8ms","method":"GET","requestID":"fd81e1cfca18d4271394671f09d72ce7","responseTime":8,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1?"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/74246819-4e86-4fd9-acfe-019113065ed1? 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":"fd81e1cfca18d4271394671f09d72ce7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"c27a99f9f8de28eed7f604481c77f150"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"c27a99f9f8de28eed7f604481c77f150","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"c27a99f9f8de28eed7f604481c77f150"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.658935,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c27a99f9f8de28eed7f604481c77f150","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c27a99f9f8de28eed7f604481c77f150","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Attempting to run experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Attempting to book experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully booked experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"446fc060-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"446fe770-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.823846,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"446fc060-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"446fc060-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.973065,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"446fe770-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"446fe770-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.674101070Z"}]},"request_id":"f480f609-e857-4d40-b516-9c0efe295c90","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.3673036} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"446fc060-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.763777240Z"}]},"request_id":"2660b9c8-c31d-4526-ac46-2ef9844e77e5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.368098} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"446fe770-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"446fc060-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/88da6edf-5db9-45c7-a25f-96988a3e463e? 200 14ms","method":"GET","requestID":"446fc060-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"446fe770-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/74246819-4e86-4fd9-acfe-019113065ed1? 200 13ms","method":"GET","requestID":"446fe770-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Setting up experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully locked booking for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Attempting to update booking for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully updated booking for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully set up experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"447e3f50-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully running experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"447e6660-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"447e8d70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.720696,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"447e3f50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"447e3f50-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.581891,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"447e6660-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"447e6660-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"10fd6dc0-378a-4d1a-988c-4514184695c5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.4615133} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.446551,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"447e8d70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","rebac_allow":false,"scope_allow":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":"447e8d70-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.674101070Z"}]},"request_id":"4ef0e11e-044a-4709-937e-c8bc03f1f31a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.4631226} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.763777240Z"}]},"request_id":"bfd0ceee-7e5c-46c3-85f4-ec4c30e3308a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.464389} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"447e3f50-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"447e6660-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"447e8d70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling 200 15ms","method":"POST","requestID":"447e8d70-2b5e-11f0-8e1f-5304d0938eae","responseTime":15,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"447e3f50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/88da6edf-5db9-45c7-a25f-96988a3e463e? 200 19ms","method":"GET","requestID":"447e3f50-2b5e-11f0-8e1f-5304d0938eae","responseTime":19,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F10d1c5ab-eb72-4689-99cb-51f4641b9c71#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F10d1c5ab-eb72-4689-99cb-51f4641b9c71","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"7024793c-dbb0-49a5-8e4c-a89b44eaa534","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.4718428} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"759ab804-d5fa-4f1d-8be0-d6db0349c946","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.4723005} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4484f610-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"447e6660-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/74246819-4e86-4fd9-acfe-019113065ed1? 200 45ms","method":"GET","requestID":"447e6660-2b5e-11f0-8e1f-5304d0938eae","responseTime":45,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1?"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44859250-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/update 200 47ms","method":"POST","requestID":"c27a99f9f8de28eed7f604481c77f150","responseTime":47,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"25a1b313-4732-4389-a1b8-ac1fc5703ef3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.5014179} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.707196,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4484f610-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"4484f610-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4484f610-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling 200 10ms","method":"POST","requestID":"4484f610-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"953f4e5d-a2b9-4810-9be0-876881ec0db7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.508924} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.248068,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"c27a99f9f8de28eed7f604481c77f150"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44859250-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","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":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.232","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"level":"info","message":"POST /experiments? 201 204ms","method":"POST","requestID":"c27a99f9f8de28eed7f604481c77f150","responseTime":204,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"44859250-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44859250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling 200 12ms","method":"POST","requestID":"44859250-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"b33d189176719126f3b3baa2806515ab"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b33d189176719126f3b3baa2806515ab","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4487b530-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b33d189176719126f3b3baa2806515ab"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.788464,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"b33d189176719126f3b3baa2806515ab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"b33d189176719126f3b3baa2806515ab","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8fc97a67-1fd5-4c7b-8d1e-1cd6a5bb7fd6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.5451343} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":28.490208,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4487b530-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"4487b530-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.674101070Z"}]},"request_id":"a5d451f7-2206-4fe1-abda-11ab7c058437","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.5480804} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"b33d189176719126f3b3baa2806515ab","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4487b530-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling 200 37ms","method":"POST","requestID":"4487b530-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b33d189176719126f3b3baa2806515ab"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/88da6edf-5db9-45c7-a25f-96988a3e463e? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b33d189176719126f3b3baa2806515ab"} device-1 | {"level":"info","message":"GET /devices/88da6edf-5db9-45c7-a25f-96988a3e463e? 200 36ms","method":"GET","requestID":"b33d189176719126f3b3baa2806515ab","responseTime":36,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Building connection plan","requestID":"c27a99f9f8de28eed7f604481c77f150"} 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":"12b272c1-7790-4cce-9a5e-0b82bf5b85bb"},{"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":"922abb4e-85ec-4908-98e8-2230750cbf3a"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"f27c44e0-9b5e-465c-9368-10164c82b3b4"}]},"level":"info","message":"Built pairwise service configurations","requestID":"c27a99f9f8de28eed7f604481c77f150"} 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/74246819-4e86-4fd9-acfe-019113065ed1"},{"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/88da6edf-5db9-45c7-a25f-96988a3e463e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"c27a99f9f8de28eed7f604481c77f150"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"e8b6b10a663481b6c72eeafb0aff8f1c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e8b6b10a663481b6c72eeafb0aff8f1c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e8b6b10a663481b6c72eeafb0aff8f1c"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":2.191744,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.706422,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e8b6b10a663481b6c72eeafb0aff8f1c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e8b6b10a663481b6c72eeafb0aff8f1c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:49.763777240Z"}]},"request_id":"8643c746-3618-4482-956c-087dcdeff521","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.565092} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e8b6b10a663481b6c72eeafb0aff8f1c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e8b6b10a663481b6c72eeafb0aff8f1c"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/74246819-4e86-4fd9-acfe-019113065ed1? 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":"e8b6b10a663481b6c72eeafb0aff8f1c"} device-1 | {"level":"info","message":"GET /devices/74246819-4e86-4fd9-acfe-019113065ed1? 200 35ms","method":"GET","requestID":"e8b6b10a663481b6c72eeafb0aff8f1c","responseTime":35,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"2fb871e6-1d99-42a6-9ff4-c0ea2469ef7b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.593581} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a1eb39f7-08c3-4444-875f-f746500b5b88","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.593825} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475'","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475'","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"448da8a0-2b5e-11f0-8e1f-5304d0938eae"} 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":"448da8a0-2b5e-11f0-8e1f-5304d0938eae","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":"448da8a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475","device":"74246819-4e86-4fd9-acfe-019113065ed1","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/9f6e71ac-5d95-48cf-b104-8eefe6a87475","device":"88da6edf-5db9-45c7-a25f-96988a3e463e","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/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"c27a99f9f8de28eed7f604481c77f150"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"449c4ea0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f039af49-7261-4cec-be8f-3ca5f58955ac","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.6548586} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.238641,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"449c4ea0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","rebac_allow":false,"scope_allow":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":"449c4ea0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"449c4ea0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling 200 10ms","method":"POST","requestID":"449c4ea0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"449e4a70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"device":"74246819-4e86-4fd9-acfe-019113065ed1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"74246819-4e86-4fd9-acfe-019113065ed1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4c1d9e8c-ba80-43ba-bd6a-6db8b7631841","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.6952126} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.088671,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"449e4a70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","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 | {"device":"88da6edf-5db9-45c7-a25f-96988a3e463e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"88da6edf-5db9-45c7-a25f-96988a3e463e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"449e4a70-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"449e4a70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling 200 38ms","method":"POST","requestID":"449e4a70-2b5e-11f0-8e1f-5304d0938eae","responseTime":38,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 2138040855610225121 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:VQbF\r\na=ice-pwd:r5uekxZ8A8D/6KYts6zIoszg\r\na=ice-options:trickle\r\na=fingerprint:sha-256 2F:2F:E4:89:97:B5:0F:C0:39:EE:E7:29:27:57:B7:E4:18:6B:6E:57:B3:78:89:E5:F0:D2:78:83:A0:72:72:02\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"88da6edf-5db9-45c7-a25f-96988a3e463e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 728396497280127193 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:pXjx\r\na=ice-pwd:0sFULdagCLNMYo+fMpHLsTLJ\r\na=ice-options:trickle\r\na=fingerprint:sha-256 64:D4:BE:CA:4A:73:52:A7:59:86:D8:51:0F:AA:C5:17:46:B6:2B:35:07:0A:A1:CB:57:25:A3:78:F2:00:84:80\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"74246819-4e86-4fd9-acfe-019113065ed1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:2793689648 1 udp 2113937151 3d69f189-6ebd-4212-9fe1-77f2c59a60d3.local 55307 typ host generation 0 ufrag pXjx network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"74246819-4e86-4fd9-acfe-019113065ed1","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/74246819-4e86-4fd9-acfe-019113065ed1'"} device-1 | {"content":{"candidate":"candidate:2486964178 1 udp 2113937151 8a92bd0d-8217-49ac-ab32-a54c6a33b86b.local 57641 typ host generation 0 ufrag VQbF network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"88da6edf-5db9-45c7-a25f-96988a3e463e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"88da6edf-5db9-45c7-a25f-96988a3e463e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"74246819-4e86-4fd9-acfe-019113065ed1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"88da6edf-5db9-45c7-a25f-96988a3e463e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"74246819-4e86-4fd9-acfe-019113065ed1","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/9f6e71ac-5d95-48cf-b104-8eefe6a87475' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9f6e71ac-5d95-48cf-b104-8eefe6a87475","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"534b86f38d42f648bdefd05373f63691","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"534b86f38d42f648bdefd05373f63691","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/74246819-4e86-4fd9-acfe-019113065ed1"},{"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/88da6edf-5db9-45c7-a25f-96988a3e463e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475"}}},"level":"info","message":"received a callback","requestID":"534b86f38d42f648bdefd05373f63691"} device-1 | {"device":"88da6edf-5db9-45c7-a25f-96988a3e463e","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"74246819-4e86-4fd9-acfe-019113065ed1","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":"534b86f38d42f648bdefd05373f63691","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"534b86f38d42f648bdefd05373f63691"} device-1 | {"data":{"peerconnection":"9f6e71ac-5d95-48cf-b104-8eefe6a87475","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"74246819-4e86-4fd9-acfe-019113065ed1","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"9f6e71ac-5d95-48cf-b104-8eefe6a87475","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/9f6e71ac-5d95-48cf-b104-8eefe6a87475' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9f6e71ac-5d95-48cf-b104-8eefe6a87475","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"89b5f17148a6ae02058920bebd6d2ef1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"89b5f17148a6ae02058920bebd6d2ef1","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/74246819-4e86-4fd9-acfe-019113065ed1"},{"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/88da6edf-5db9-45c7-a25f-96988a3e463e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475"}}},"level":"info","message":"received a callback","requestID":"89b5f17148a6ae02058920bebd6d2ef1"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"44b44370-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9f6e71ac-5d95-48cf-b104-8eefe6a87475","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d2b5375-8100-4e27-91e6-33dc1997afe1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.8108683} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.329909,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44b44370-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475","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 25ms","method":"POST","requestID":"44b44370-2b5e-11f0-8e1f-5304d0938eae","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"44b44370-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475 200 27ms","method":"GET","requestID":"44b44370-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 47ms","method":"POST","requestID":"89b5f17148a6ae02058920bebd6d2ef1","responseTime":47,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13: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.050","http_referrer":"","http_user_agent":"node-fetch","requestID":"89b5f17148a6ae02058920bebd6d2ef1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44baac10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9814646e-d9b9-4032-9ac9-a654e8e7d9fe","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.8538706} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.202321,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44baac10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"44baac10-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44baac10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling 200 33ms","method":"POST","requestID":"44baac10-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44c00340-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf74ed51-e833-4eec-9b26-9332926a047e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.8885834} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.797213,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44c00340-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","rebac_allow":false,"scope_allow":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":"44c00340-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"775dd7bcfac523d4271a9a5932a0e867"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"775dd7bcfac523d4271a9a5932a0e867","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44c00340-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","requestID":"775dd7bcfac523d4271a9a5932a0e867"} device-1 | {"level":"info","message":"POST /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling 200 9ms","method":"POST","requestID":"44c00340-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.644775,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"775dd7bcfac523d4271a9a5932a0e867","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"775dd7bcfac523d4271a9a5932a0e867","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","requestID":"775dd7bcfac523d4271a9a5932a0e867"} gateway-1 | {"time_local":"07/May/2025:16:13:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71 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":"775dd7bcfac523d4271a9a5932a0e867"} experiment-1 | {"level":"info","message":"GET /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71 200 9ms","method":"GET","requestID":"775dd7bcfac523d4271a9a5932a0e867","responseTime":9,"status":200,"url":"/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM","level":"info","message":"auth send jwt","requestID":"c1060ebe70077a1c9d248581528ef2dd"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"c1060ebe70077a1c9d248581528ef2dd","responseTime":27,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","requestID":"c1060ebe70077a1c9d248581528ef2dd"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.700725,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c1060ebe70077a1c9d248581528ef2dd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c1060ebe70077a1c9d248581528ef2dd","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Attempting to finish experiment","requestID":"c1060ebe70077a1c9d248581528ef2dd"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"44c840a0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.810461,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:52Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44c840a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634432,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzMn0.fTemsN2qiDxhomqBEHdaHLCqflUq0dQkhALp0xJk_OM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"44c840a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475","device":"74246819-4e86-4fd9-acfe-019113065ed1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475","device":"88da6edf-5db9-45c7-a25f-96988a3e463e","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/9f6e71ac-5d95-48cf-b104-8eefe6a87475' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9f6e71ac-5d95-48cf-b104-8eefe6a87475","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9f6e71ac-5d95-48cf-b104-8eefe6a87475': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9f6e71ac-5d95-48cf-b104-8eefe6a87475","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"22c66d61-c64f-4d29-8a32-f30d7a368176","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.950946} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"db91cf9413c088cf3794e8cf87889f87","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"db91cf9413c088cf3794e8cf87889f87","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"385fa962-92e5-4796-997c-5269dd3b5091","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634432.9513278} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"44c840a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":31,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b4b3beb382e0a1440266137e5cb8f48b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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-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/74246819-4e86-4fd9-acfe-019113065ed1"},{"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/88da6edf-5db9-45c7-a25f-96988a3e463e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475"}}},"level":"info","message":"received a callback","requestID":"db91cf9413c088cf3794e8cf87889f87"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"b4b3beb382e0a1440266137e5cb8f48b","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/74246819-4e86-4fd9-acfe-019113065ed1"},{"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/88da6edf-5db9-45c7-a25f-96988a3e463e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475"}}},"level":"info","message":"received a callback","requestID":"b4b3beb382e0a1440266137e5cb8f48b"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"44c840a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475 204 56ms","method":"DELETE","requestID":"44c840a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":56,"status":204,"url":"/peerconnections/9f6e71ac-5d95-48cf-b104-8eefe6a87475"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"},"level":"info","message":"Successfully finished experiment","requestID":"c1060ebe70077a1c9d248581528ef2dd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44d5d530-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:53Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F74246819-4e86-4fd9-acfe-019113065ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e537a709-68a0-4f36-ab71-cb041b62fb08","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.0305326} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.299677,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44d5d530-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"44d5d530-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44d5d530-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling 200 7ms","method":"POST","requestID":"44d5d530-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/74246819-4e86-4fd9-acfe-019113065ed1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44d734c0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F10d1c5ab-eb72-4689-99cb-51f4641b9c71': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F10d1c5ab-eb72-4689-99cb-51f4641b9c71","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"b195f62f-8dab-4dce-a55c-f01c4708e310","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.0366933} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc941214-db19-4ac2-9e4b-e168a0180de3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.0370557} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"c1060ebe70077a1c9d248581528ef2dd","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:53Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F88da6edf-5db9-45c7-a25f-96988a3e463e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"269bfa9e-070a-4650-8d76-49a73b3da377","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.0426092} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.873281,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"44d734c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e","object_type":"device","rebac_allow":false,"scope_allow":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":"44d734c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44d734c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling 200 10ms","method":"POST","requestID":"44d734c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/88da6edf-5db9-45c7-a25f-96988a3e463e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71","requestID":"c1060ebe70077a1c9d248581528ef2dd"} gateway-1 | {"time_local":"07/May/2025:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.230","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c1060ebe70077a1c9d248581528ef2dd"} experiment-1 | {"level":"info","message":"DELETE /experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71 204 203ms","method":"DELETE","requestID":"c1060ebe70077a1c9d248581528ef2dd","responseTime":203,"status":204,"url":"/experiments/10d1c5ab-eb72-4689-99cb-51f4641b9c71"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 158ms","method":"POST","requestID":"db91cf9413c088cf3794e8cf87889f87","responseTime":158,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.186","http_referrer":"","http_user_agent":"node-fetch","requestID":"db91cf9413c088cf3794e8cf87889f87"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 158ms","method":"POST","requestID":"b4b3beb382e0a1440266137e5cb8f48b","responseTime":158,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.186","http_referrer":"","http_user_agent":"node-fetch","requestID":"b4b3beb382e0a1440266137e5cb8f48b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzM30.yf4obx6Dnmthg-D2V_3tOeIhAgojbE_tlpqV8_D6Sn4","level":"info","message":"auth send jwt","requestID":"bd77ff4f01467897a3487ecacdc64626"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bd77ff4f01467897a3487ecacdc64626","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:53Z"} device-1 | {"level":"info","message":"postDevices called","requestID":"bd77ff4f01467897a3487ecacdc64626"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.876394,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:53Z"} gateway-1 | {"time_local":"07/May/2025:16:13:53 +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.955","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9681a9adc48333f51070cfd8101543f1"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bd77ff4f01467897a3487ecacdc64626","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634433,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzM30.yf4obx6Dnmthg-D2V_3tOeIhAgojbE_tlpqV8_D6Sn4"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"bd77ff4f01467897a3487ecacdc64626","responseTime":28,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2540","request_time":"1.005","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4aaece6baded82dfaadea9389859e156"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/74246819-4e86-4fd9-acfe-019113065ed1' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/88da6edf-5db9-45c7-a25f-96988a3e463e' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a835387e-515c-468e-9bd8-4d1208347710","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.1893768} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bd77ff4f01467897a3487ecacdc64626","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"26065f95-710f-49c6-af66-bd4001e8ab10","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2169254} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"bd77ff4f01467897a3487ecacdc64626","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"14905a82-c215-4bd4-95c7-133e2ae02c40","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2268853} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"96701cb6-27aa-42dc-9032-a68d6299f404","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2269926} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"bd77ff4f01467897a3487ecacdc64626","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.226864127Z"}]},"request_id":"9e19352d-2282-43ab-b435-c1769bbb5b99","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2302177} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","method":"POST","requestID":"bd77ff4f01467897a3487ecacdc64626","responseTime":1,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"bd77ff4f01467897a3487ecacdc64626"} gateway-1 | {"time_local":"07/May/2025:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.097","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd77ff4f01467897a3487ecacdc64626"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"bd77ff4f01467897a3487ecacdc64626","responseTime":89,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzM30.yf4obx6Dnmthg-D2V_3tOeIhAgojbE_tlpqV8_D6Sn4","level":"info","message":"auth send jwt","requestID":"a07271d8744f95cc57bd26aefbc646ce"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a07271d8744f95cc57bd26aefbc646ce","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a07271d8744f95cc57bd26aefbc646ce"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.651663,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a07271d8744f95cc57bd26aefbc646ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634433,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzM30.yf4obx6Dnmthg-D2V_3tOeIhAgojbE_tlpqV8_D6Sn4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a07271d8744f95cc57bd26aefbc646ce","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d9c87863-373a-4ddf-9917-d805a3f33622","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2722685} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a07271d8744f95cc57bd26aefbc646ce","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"16b8151e-08ca-4ef6-8390-86d76dca21ef","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2755203} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"a07271d8744f95cc57bd26aefbc646ce","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"3eb807d4-5344-4e76-b8dd-f9a91da3690d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2842445} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c5f01e38-cb8a-43ae-9f83-51bdeb589b52","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.2844372} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"a07271d8744f95cc57bd26aefbc646ce","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.284215953Z"}]},"request_id":"7eb54c46-cbd7-436c-b372-1294029e146b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634433.287414} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a07271d8744f95cc57bd26aefbc646ce","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a07271d8744f95cc57bd26aefbc646ce"} device-1 | {"level":"info","message":"POST /devices? 201 78ms","method":"POST","requestID":"a07271d8744f95cc57bd26aefbc646ce","responseTime":78,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.081","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a07271d8744f95cc57bd26aefbc646ce"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNH0.X4z4FOEqO34FYSJeCQfYG0hIi2kix-mxhcutWP7JuDY","level":"info","message":"auth send jwt","requestID":"3fdee8d92771522a478446451eeea546"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3fdee8d92771522a478446451eeea546","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"3fdee8d92771522a478446451eeea546"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:54Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704396,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3fdee8d92771522a478446451eeea546","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634434,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNH0.X4z4FOEqO34FYSJeCQfYG0hIi2kix-mxhcutWP7JuDY"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"3fdee8d92771522a478446451eeea546","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.284215953Z"}]},"request_id":"c001ee1d-2709-4098-9611-3c710bf246ec","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634434.2776663} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3fdee8d92771522a478446451eeea546","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b30d2d06-e7c0-4a46-a527-abf2184c4c21","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634434.2816722} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"3fdee8d92771522a478446451eeea546","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.284215953Z"}]},"request_id":"15e63747-5df6-44bc-a2f4-76ad51c74f9c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634434.2930834} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3fdee8d92771522a478446451eeea546","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"3fdee8d92771522a478446451eeea546"} gateway-1 | {"time_local":"07/May/2025:16:13:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"3fdee8d92771522a478446451eeea546"} device-1 | {"level":"info","message":"PATCH /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3 200 48ms","method":"PATCH","requestID":"3fdee8d92771522a478446451eeea546","responseTime":48,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNH0.X4z4FOEqO34FYSJeCQfYG0hIi2kix-mxhcutWP7JuDY","level":"info","message":"auth send jwt","requestID":"5d23702792337c230786f20a22bfee49"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5d23702792337c230786f20a22bfee49","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"5d23702792337c230786f20a22bfee49"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:54Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.891758,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d23702792337c230786f20a22bfee49","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634434,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNH0.X4z4FOEqO34FYSJeCQfYG0hIi2kix-mxhcutWP7JuDY"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"5d23702792337c230786f20a22bfee49","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"5d23702792337c230786f20a22bfee49"} device-1 | {"level":"info","message":"POST /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/websocket 200 36ms","method":"POST","requestID":"5d23702792337c230786f20a22bfee49","responseTime":36,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/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.18","requestID":"5d23702792337c230786f20a22bfee49"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6f53acb7f8f0b2e4eee8451f79269c52","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6f53acb7f8f0b2e4eee8451f79269c52","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/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":"6f53acb7f8f0b2e4eee8451f79269c52"} device-1 | {"level":"info","message":"OPTIONS /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/websocket 200 1ms","method":"OPTIONS","requestID":"6f53acb7f8f0b2e4eee8451f79269c52","responseTime":1,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU","level":"info","message":"auth send jwt","requestID":"a6baadbb496916892f61ede30accd8fe"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a6baadbb496916892f61ede30accd8fe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"a6baadbb496916892f61ede30accd8fe"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.889859,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a6baadbb496916892f61ede30accd8fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"a6baadbb496916892f61ede30accd8fe","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"a6baadbb496916892f61ede30accd8fe"} gateway-1 | {"time_local":"07/May/2025:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/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":"a6baadbb496916892f61ede30accd8fe"} device-1 | {"level":"info","message":"POST /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/websocket 200 38ms","method":"POST","requestID":"a6baadbb496916892f61ede30accd8fe","responseTime":38,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU","level":"info","message":"auth send jwt","requestID":"156c03272bc225075bc3273418f61b28"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"156c03272bc225075bc3273418f61b28","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"156c03272bc225075bc3273418f61b28"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.691722,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"156c03272bc225075bc3273418f61b28","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"156c03272bc225075bc3273418f61b28","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.226864127Z"}]},"request_id":"09eabd32-a5de-49d2-b596-e6ad71b3fad7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.7621944} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"156c03272bc225075bc3273418f61b28","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"156c03272bc225075bc3273418f61b28"} device-1 | {"level":"info","message":"GET /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41? 200 33ms","method":"GET","requestID":"156c03272bc225075bc3273418f61b28","responseTime":33,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41?"} gateway-1 | {"time_local":"07/May/2025:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"156c03272bc225075bc3273418f61b28"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU","level":"info","message":"auth send jwt","requestID":"bdb952070d5650650bb021620d8659f0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bdb952070d5650650bb021620d8659f0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"bdb952070d5650650bb021620d8659f0"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638964,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bdb952070d5650650bb021620d8659f0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"bdb952070d5650650bb021620d8659f0","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.284215953Z"}]},"request_id":"501fde8e-26b8-49dd-8888-7672d60d19a4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.7748785} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bdb952070d5650650bb021620d8659f0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"bdb952070d5650650bb021620d8659f0"} device-1 | {"level":"info","message":"GET /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3? 200 8ms","method":"GET","requestID":"bdb952070d5650650bb021620d8659f0","responseTime":8,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3?"} gateway-1 | {"time_local":"07/May/2025:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bdb952070d5650650bb021620d8659f0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU","level":"info","message":"auth send jwt","requestID":"5db0568a1c6206def779831ed09aae9b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5db0568a1c6206def779831ed09aae9b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"5db0568a1c6206def779831ed09aae9b"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":24.809985,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5db0568a1c6206def779831ed09aae9b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"5db0568a1c6206def779831ed09aae9b","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Attempting to run experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Attempting to book experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully booked experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"468225a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"46824cb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.901244,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"468225a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"468225a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":23,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.876518,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"46824cb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"46824cb0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.226864127Z"}]},"request_id":"823e3f44-d86c-4313-98d4-1ae151e360e6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.8615258} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"468225a0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.284215953Z"}]},"request_id":"365b30ca-a74f-4b57-a0dc-236cdb81f2eb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.862395} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"46824cb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"468225a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41? 200 32ms","method":"GET","requestID":"468225a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"46824cb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3? 200 32ms","method":"GET","requestID":"46824cb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Setting up experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully locked booking for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Attempting to update booking for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully updated booking for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully set up experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"468f6c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"468f9320-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"468fba30-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully running experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:37596","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.956598,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"468f6c10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"468f6c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.782682,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"468f9320-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"468f9320-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.226864127Z"}]},"request_id":"4db8ed41-4d9d-4061-aa5b-c176d65fe388","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.956972} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"468f6c10-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.284215953Z"}]},"request_id":"9d011f91-b257-4446-940f-e334d55462a9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.9583266} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"be6122b6-979a-47fc-b64f-7b425e03db30","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.9586563} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"468f9320-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.007437,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"468fba30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 36ms","method":"POST","requestID":"468fba30-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"468f6c10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41? 200 43ms","method":"GET","requestID":"468f6c10-2b5e-11f0-8e1f-5304d0938eae","responseTime":43,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"468f9320-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F059a2d61-0fc8-43cd-8bb5-2543d12fd9ff#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"137ea184-9d69-43a0-b243-b9d0f082260a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.9642794} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac1dfb18-795b-4601-b8b5-4e7a5a29bce6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.9644957} device-1 | {"level":"info","message":"GET /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3? 200 42ms","method":"GET","requestID":"468f9320-2b5e-11f0-8e1f-5304d0938eae","responseTime":42,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"5db0568a1c6206def779831ed09aae9b","responseTime":38,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"468fba30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling 200 43ms","method":"POST","requestID":"468fba30-2b5e-11f0-8e1f-5304d0938eae","responseTime":43,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"469670f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4696e620-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"17f74194-dafa-4533-b19c-fd590bccb0d4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.9716153} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.734769,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:55Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"5db0568a1c6206def779831ed09aae9b"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"469670f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","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":"07/May/2025:16:13:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5db0568a1c6206def779831ed09aae9b"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"469670f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /experiments? 201 192ms","method":"POST","requestID":"5db0568a1c6206def779831ed09aae9b","responseTime":192,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e357cf1b-e1b7-4e96-8de8-7024605b6111","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634435.9754546} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.001581,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4696e620-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","rebac_allow":false,"scope_allow":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":"4696e620-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNn0.hWvJRPJf-QHQFye1GAAr6tSdc_yVrJ-Itc8L2UW7hlE","level":"info","message":"auth send jwt","requestID":"032f68731037e400feb6993d52606e73"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"032f68731037e400feb6993d52606e73","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"469670f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling 200 34ms","method":"POST","requestID":"469670f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"469c1640-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"032f68731037e400feb6993d52606e73"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4696e620-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling 200 37ms","method":"POST","requestID":"4696e620-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.911192,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"032f68731037e400feb6993d52606e73","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634436,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNn0.hWvJRPJf-QHQFye1GAAr6tSdc_yVrJ-Itc8L2UW7hlE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"032f68731037e400feb6993d52606e73","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c794d852-10c0-4a78-b7b4-d27dae08bfed","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634436.0099847} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.296646,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"469c1640-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","rebac_allow":false,"scope_allow":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":"469c1640-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.226864127Z"}]},"request_id":"eeecae09-9750-40aa-accb-acb608b32436","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634436.0134897} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"032f68731037e400feb6993d52606e73","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"469c1640-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling 200 12ms","method":"POST","requestID":"469c1640-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Building connection plan","requestID":"5db0568a1c6206def779831ed09aae9b"} 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":"571fb363-eb26-439f-80b1-4567731431da"},{"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":"daa1b17b-5028-4bae-8b9f-41ba9544f4d7"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"64435c4e-42ba-4687-887c-bd3c6b5a2fb3"}]},"level":"info","message":"Built pairwise service configurations","requestID":"5db0568a1c6206def779831ed09aae9b"} 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/dbcd9079-a83f-4350-bc19-30ac609a8a41"},{"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/4c231e78-cfe8-4772-a864-571dbcc21cf3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"5db0568a1c6206def779831ed09aae9b"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"032f68731037e400feb6993d52606e73"} gateway-1 | {"time_local":"07/May/2025:16:13:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41? 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":"032f68731037e400feb6993d52606e73"} device-1 | {"level":"info","message":"GET /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41? 200 13ms","method":"GET","requestID":"032f68731037e400feb6993d52606e73","responseTime":13,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41?"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:56Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNn0.hWvJRPJf-QHQFye1GAAr6tSdc_yVrJ-Itc8L2UW7hlE","level":"info","message":"auth send jwt","requestID":"519ecbfaa496a0e9462091977a39a680"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"519ecbfaa496a0e9462091977a39a680","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.820621,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:56Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"519ecbfaa496a0e9462091977a39a680"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634435,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNX0.ytN3aYiqi4ii2dyTgdcc7kaIaDcxlpGHvlP7sd3IzxU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.912804,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"519ecbfaa496a0e9462091977a39a680","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634436,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzNn0.hWvJRPJf-QHQFye1GAAr6tSdc_yVrJ-Itc8L2UW7hlE"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"519ecbfaa496a0e9462091977a39a680","responseTime":30,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:53.284215953Z"}]},"request_id":"516224d0-6eed-4349-b493-2b58cb85d20a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634436.0563843} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"519ecbfaa496a0e9462091977a39a680","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"e2c1f5b1-8ef7-4812-aed9-45627ca57b29","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634436.0574958} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7926216e-6f58-4a28-b7c9-62759ac13f4e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634436.0577388} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"519ecbfaa496a0e9462091977a39a680"} gateway-1 | {"time_local":"07/May/2025:16:13:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3? 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":"519ecbfaa496a0e9462091977a39a680"} device-1 | {"level":"info","message":"GET /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3? 200 37ms","method":"GET","requestID":"519ecbfaa496a0e9462091977a39a680","responseTime":37,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae'","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae'","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"469e6030-2b5e-11f0-8e1f-5304d0938eae"} 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":"469e6030-2b5e-11f0-8e1f-5304d0938eae","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":"469e6030-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","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/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"5db0568a1c6206def779831ed09aae9b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"46ad7b60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5aef2ef9-76d5-40e8-9722-af26beb2b365","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634436.1226285} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.603513,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"46ad7b60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","rebac_allow":false,"scope_allow":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":"46ad7b60-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"46ad7b60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling 200 32ms","method":"POST","requestID":"46ad7b60-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"46b2ab80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3191057d-2f79-44f7-a330-013656b70af7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634436.156058} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.524126,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"46b2ab80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","rebac_allow":false,"scope_allow":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":"46b2ab80-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"46b2ab80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling 200 8ms","method":"POST","requestID":"46b2ab80-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling"} device-1 | {"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 7614471930901347769 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:S4mG\r\na=ice-pwd:CTMAO9UQgIWiR9LiAQ/k6OXG\r\na=ice-options:trickle\r\na=fingerprint:sha-256 63:BE:1E:81:2D:94:76:B6:B1:8A:C8:D2:AB:58:6C:E5:80:67:77:4B:CA:F5:E0:A7:24:C4:24:CE:95:0C:B1:CD\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1028885985 1 udp 2113937151 80b9817f-66cf-426b-8cc0-5a98afc265cb.local 35720 typ host generation 0 ufrag S4mG network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","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/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"5059eb7e424bdd4663060d6dc7e3e781","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5059eb7e424bdd4663060d6dc7e3e781","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/dbcd9079-a83f-4350-bc19-30ac609a8a41"},{"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/4c231e78-cfe8-4772-a864-571dbcc21cf3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae"}}},"level":"info","message":"received a callback","requestID":"5059eb7e424bdd4663060d6dc7e3e781"} device-1 | {"device":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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 29ms","method":"POST","requestID":"5059eb7e424bdd4663060d6dc7e3e781","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"5059eb7e424bdd4663060d6dc7e3e781"} device-1 | {"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","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/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"82ab8a98dcb94fba8c3cdd66de74dfdb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"82ab8a98dcb94fba8c3cdd66de74dfdb","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/dbcd9079-a83f-4350-bc19-30ac609a8a41"},{"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/4c231e78-cfe8-4772-a864-571dbcc21cf3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae"}}},"level":"info","message":"received a callback","requestID":"82ab8a98dcb94fba8c3cdd66de74dfdb"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"47eed500-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8a2b86f1-a8d9-4d8e-a847-3fe01feb80e4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.2292438} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.984083,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"47eed500-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","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":"47eed500-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"47eed500-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae 200 7ms","method":"GET","requestID":"47eed500-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 49ms","method":"POST","requestID":"82ab8a98dcb94fba8c3cdd66de74dfdb","responseTime":49,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"82ab8a98dcb94fba8c3cdd66de74dfdb"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47f600f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9988ad6-8042-4e3c-a3ee-e971f0e6fa4c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.2748933} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.139998,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"47f600f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","rebac_allow":false,"scope_allow":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":"47f600f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47f600f0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE","level":"info","message":"auth send jwt","requestID":"e7cb585bad322e3d065511732d829ea6"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"e7cb585bad322e3d065511732d829ea6","responseTime":27,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","requestID":"e7cb585bad322e3d065511732d829ea6"} device-1 | {"level":"info","message":"POST /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling 200 34ms","method":"POST","requestID":"47f600f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"47fb7f30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.910116,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e7cb585bad322e3d065511732d829ea6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634438,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e7cb585bad322e3d065511732d829ea6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a6a0679e-1087-4f94-be28-8f559351cf9b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.3127723} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.225698,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"47fb7f30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","rebac_allow":false,"scope_allow":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":"47fb7f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","requestID":"e7cb585bad322e3d065511732d829ea6"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e7cb585bad322e3d065511732d829ea6"} experiment-1 | {"level":"info","message":"GET /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff 200 12ms","method":"GET","requestID":"e7cb585bad322e3d065511732d829ea6","responseTime":12,"status":200,"url":"/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"47fb7f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling 200 12ms","method":"POST","requestID":"47fb7f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE","level":"info","message":"auth send jwt","requestID":"72c8419dc558d9bce6530b1a3c986fa1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"72c8419dc558d9bce6530b1a3c986fa1","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","requestID":"72c8419dc558d9bce6530b1a3c986fa1"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.685424,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"72c8419dc558d9bce6530b1a3c986fa1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634438,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"72c8419dc558d9bce6530b1a3c986fa1","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Attempting to finish experiment","requestID":"72c8419dc558d9bce6530b1a3c986fa1"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"48032050-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.932862,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"48032050-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634438,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"48032050-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","device":"dbcd9079-a83f-4350-bc19-30ac609a8a41","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c231e78-cfe8-4772-a864-571dbcc21cf3","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a2eea34c97b39ff90f9eee8cd1c28f74","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51c2bcba-b6c2-4504-b7ee-78b90a89a0ae': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"c99b6fa8-e084-42f7-bce2-ba2bb3911fdc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.3711462} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a2eea34c97b39ff90f9eee8cd1c28f74","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4d0d3d701f6e7e23056ab3333a4267d8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/dbcd9079-a83f-4350-bc19-30ac609a8a41"},{"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/4c231e78-cfe8-4772-a864-571dbcc21cf3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae"}}},"level":"info","message":"received a callback","requestID":"a2eea34c97b39ff90f9eee8cd1c28f74"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4d0d3d701f6e7e23056ab3333a4267d8","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b43db403-f2e8-47dd-ba4c-3c234e3c4cdf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.3722503} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"48032050-2b5e-11f0-8e1f-5304d0938eae","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","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/dbcd9079-a83f-4350-bc19-30ac609a8a41"},{"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/4c231e78-cfe8-4772-a864-571dbcc21cf3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae"}}},"level":"info","message":"received a callback","requestID":"4d0d3d701f6e7e23056ab3333a4267d8"} device-1 | {"data":{"peerconnection":"51c2bcba-b6c2-4504-b7ee-78b90a89a0ae","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"48032050-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae 204 58ms","method":"DELETE","requestID":"48032050-2b5e-11f0-8e1f-5304d0938eae","responseTime":58,"status":204,"url":"/peerconnections/51c2bcba-b6c2-4504-b7ee-78b90a89a0ae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"},"level":"info","message":"Successfully finished experiment","requestID":"72c8419dc558d9bce6530b1a3c986fa1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"48117830-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdbcd9079-a83f-4350-bc19-30ac609a8a41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"93c783fb-4604-4e25-bd9a-49155cb00291","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.455395} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.288195,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"48117830-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41","object_type":"device","rebac_allow":false,"scope_allow":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":"48117830-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"48117830-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling 200 8ms","method":"POST","requestID":"48117830-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4812fed0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F059a2d61-0fc8-43cd-8bb5-2543d12fd9ff': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"6eb5caa1-8a59-4a67-966b-a86669ff466d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.4623444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02becd56-e7e3-46ec-80d1-7f6b5a403dce","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.4626136} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"72c8419dc558d9bce6530b1a3c986fa1","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c231e78-cfe8-4772-a864-571dbcc21cf3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7d08de6-90fe-4ece-91d6-970df1e1a28b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.4656932} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.675983,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4812fed0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3","object_type":"device","rebac_allow":false,"scope_allow":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":"4812fed0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4812fed0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling 200 9ms","method":"POST","requestID":"4812fed0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff","requestID":"72c8419dc558d9bce6530b1a3c986fa1"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff 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":"72c8419dc558d9bce6530b1a3c986fa1"} experiment-1 | {"level":"info","message":"DELETE /experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff 204 234ms","method":"DELETE","requestID":"72c8419dc558d9bce6530b1a3c986fa1","responseTime":234,"status":204,"url":"/experiments/059a2d61-0fc8-43cd-8bb5-2543d12fd9ff"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +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.221","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"8fa9dc961fdffdbf13988ed3d7c05f22"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 187ms","method":"POST","requestID":"a2eea34c97b39ff90f9eee8cd1c28f74","responseTime":187,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 187ms","method":"POST","requestID":"4d0d3d701f6e7e23056ab3333a4267d8","responseTime":187,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE","level":"info","message":"auth send jwt","requestID":"b81550db04928429c989c08ad7cb9911"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b81550db04928429c989c08ad7cb9911","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"b81550db04928429c989c08ad7cb9911"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.029024,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"b81550db04928429c989c08ad7cb9911","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634438,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b81550db04928429c989c08ad7cb9911","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch","requestID":"a2eea34c97b39ff90f9eee8cd1c28f74"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch","requestID":"4d0d3d701f6e7e23056ab3333a4267d8"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2751","request_time":"2.877","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ba011be7e2200120176589b4e967057b"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4c231e78-cfe8-4772-a864-571dbcc21cf3' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/dbcd9079-a83f-4350-bc19-30ac609a8a41' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a782f754-0f4e-41d3-95e5-5eba17bef631","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.6096005} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b81550db04928429c989c08ad7cb9911","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9604f13-5fd9-4680-9367-67d06837d01e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.6143262} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b81550db04928429c989c08ad7cb9911","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"9b7c10fd-3704-4784-8b5c-e4432e58042d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.6486783} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ff56f5d4-75db-4f42-b9c2-8d414fa9f87f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.64893} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"b81550db04928429c989c08ad7cb9911","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.648653666Z"}]},"request_id":"6cb7516c-0d0e-4832-be95-3157187b6dd9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.6525705} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b81550db04928429c989c08ad7cb9911","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"b81550db04928429c989c08ad7cb9911"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b81550db04928429c989c08ad7cb9911"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"b81550db04928429c989c08ad7cb9911","responseTime":90,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE","level":"info","message":"auth send jwt","requestID":"a1ea70d48ffade65e17e3acabbb261c2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a1ea70d48ffade65e17e3acabbb261c2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a1ea70d48ffade65e17e3acabbb261c2"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.722263,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a1ea70d48ffade65e17e3acabbb261c2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634438,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOH0.8xWEXprXbXBupzKxCW7NyG_7764ael3diYVVQgl93WE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a1ea70d48ffade65e17e3acabbb261c2","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5fca5e3c-f6ed-4a38-b515-abc9baf8527e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.701599} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a1ea70d48ffade65e17e3acabbb261c2","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9de3e25-c59b-4ab0-aade-149d5e2300ba","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.70601} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"a1ea70d48ffade65e17e3acabbb261c2","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"1ed17f10-6bbd-42b9-82bd-b9580551f7da","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.7155392} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aef98891-9f82-42bc-abbe-b8a8170a3504","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.7158117} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","method":"POST","requestID":"a1ea70d48ffade65e17e3acabbb261c2","responseTime":32,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.715517340Z"}]},"request_id":"c0a66e38-da4d-4f28-b6ac-a4b108ee552b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634438.739673} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a1ea70d48ffade65e17e3acabbb261c2","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a1ea70d48ffade65e17e3acabbb261c2"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"a1ea70d48ffade65e17e3acabbb261c2","responseTime":82,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:13:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.086","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a1ea70d48ffade65e17e3acabbb261c2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOX0.qnWTOk2XLWYdxuboXOsP7S3hvwYrhi75Bj5kGwrKSUg","level":"info","message":"auth send jwt","requestID":"a6bb9aa802b7fe40f90fcb2830841538"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"a6bb9aa802b7fe40f90fcb2830841538","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"a6bb9aa802b7fe40f90fcb2830841538"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:59Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.698592,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a6bb9aa802b7fe40f90fcb2830841538","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634439,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOX0.qnWTOk2XLWYdxuboXOsP7S3hvwYrhi75Bj5kGwrKSUg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a6bb9aa802b7fe40f90fcb2830841538","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.715517340Z"}]},"request_id":"f5254356-0886-4343-9a2f-08df1781fcc7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634439.657331} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a6bb9aa802b7fe40f90fcb2830841538","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bebef045-9b72-487f-8052-5fb1354f3fca","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634439.6612017} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"a6bb9aa802b7fe40f90fcb2830841538","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.715517340Z"}]},"request_id":"7a48edbe-8ff6-45f5-8279-a7de8278fa61","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634439.6970215} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"a6bb9aa802b7fe40f90fcb2830841538","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"a6bb9aa802b7fe40f90fcb2830841538"} device-1 | {"level":"info","message":"PATCH /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1 200 49ms","method":"PATCH","requestID":"a6bb9aa802b7fe40f90fcb2830841538","responseTime":49,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1"} gateway-1 | {"time_local":"07/May/2025:16:13:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.077","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"a6bb9aa802b7fe40f90fcb2830841538"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOX0.qnWTOk2XLWYdxuboXOsP7S3hvwYrhi75Bj5kGwrKSUg","level":"info","message":"auth send jwt","requestID":"f9975110ad1be8ebe67d161f1f4caf8e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f9975110ad1be8ebe67d161f1f4caf8e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f9975110ad1be8ebe67d161f1f4caf8e"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:13:59Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.648978,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:13:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f9975110ad1be8ebe67d161f1f4caf8e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634439,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQzOX0.qnWTOk2XLWYdxuboXOsP7S3hvwYrhi75Bj5kGwrKSUg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f9975110ad1be8ebe67d161f1f4caf8e","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f9975110ad1be8ebe67d161f1f4caf8e"} device-1 | {"level":"info","message":"POST /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/websocket 200 11ms","method":"POST","requestID":"f9975110ad1be8ebe67d161f1f4caf8e","responseTime":11,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/websocket"} gateway-1 | {"time_local":"07/May/2025:16:13:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.015","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"f9975110ad1be8ebe67d161f1f4caf8e"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b669e1f80359eea65ea2488211b81ff2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b669e1f80359eea65ea2488211b81ff2","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7197bacb-854c-4b5d-b396-0b803013fc24/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":"b669e1f80359eea65ea2488211b81ff2"} device-1 | {"level":"info","message":"OPTIONS /devices/7197bacb-854c-4b5d-b396-0b803013fc24/websocket 200 0ms","method":"OPTIONS","requestID":"b669e1f80359eea65ea2488211b81ff2","responseTime":0,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI","level":"info","message":"auth send jwt","requestID":"f70c8b747d99d64dd4f74aabc765b142"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f70c8b747d99d64dd4f74aabc765b142","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f70c8b747d99d64dd4f74aabc765b142"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.623385,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f70c8b747d99d64dd4f74aabc765b142","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f70c8b747d99d64dd4f74aabc765b142","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f70c8b747d99d64dd4f74aabc765b142"} gateway-1 | {"time_local":"07/May/2025:16:14:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7197bacb-854c-4b5d-b396-0b803013fc24/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f70c8b747d99d64dd4f74aabc765b142"} device-1 | {"level":"info","message":"POST /devices/7197bacb-854c-4b5d-b396-0b803013fc24/websocket 200 13ms","method":"POST","requestID":"f70c8b747d99d64dd4f74aabc765b142","responseTime":13,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI","level":"info","message":"auth send jwt","requestID":"6fa885143a5f3c412fa10a6fa6ac82b6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6fa885143a5f3c412fa10a6fa6ac82b6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6fa885143a5f3c412fa10a6fa6ac82b6"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.61686,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6fa885143a5f3c412fa10a6fa6ac82b6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6fa885143a5f3c412fa10a6fa6ac82b6","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.648653666Z"}]},"request_id":"9057a9e6-be8a-439f-922a-6be5a9328eb2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.1854837} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"6fa885143a5f3c412fa10a6fa6ac82b6","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6fa885143a5f3c412fa10a6fa6ac82b6"} device-1 | {"level":"info","message":"GET /devices/7197bacb-854c-4b5d-b396-0b803013fc24? 200 34ms","method":"GET","requestID":"6fa885143a5f3c412fa10a6fa6ac82b6","responseTime":34,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24?"} gateway-1 | {"time_local":"07/May/2025:16:14:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7197bacb-854c-4b5d-b396-0b803013fc24? 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":"6fa885143a5f3c412fa10a6fa6ac82b6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI","level":"info","message":"auth send jwt","requestID":"476eaa52e0427d197c3a69f9e3e5ed6c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"476eaa52e0427d197c3a69f9e3e5ed6c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"476eaa52e0427d197c3a69f9e3e5ed6c"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.332373,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"476eaa52e0427d197c3a69f9e3e5ed6c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"476eaa52e0427d197c3a69f9e3e5ed6c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.715517340Z"}]},"request_id":"247b490e-75e3-41b6-b2b5-061f5dbf6ff3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.2001474} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"476eaa52e0427d197c3a69f9e3e5ed6c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"476eaa52e0427d197c3a69f9e3e5ed6c"} gateway-1 | {"time_local":"07/May/2025:16:14:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1? 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":"476eaa52e0427d197c3a69f9e3e5ed6c"} device-1 | {"level":"info","message":"GET /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1? 200 11ms","method":"GET","requestID":"476eaa52e0427d197c3a69f9e3e5ed6c","responseTime":11,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI","level":"info","message":"auth send jwt","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a18dcb70890468a2a64ac87c8ec62e87","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":20.882985,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a18dcb70890468a2a64ac87c8ec62e87","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"a18dcb70890468a2a64ac87c8ec62e87","responseTime":26,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Attempting to run experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Attempting to book experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully booked experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49c23570-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49c25c80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.92693,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49c23570-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"49c23570-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.558993,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49c25c80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"49c25c80-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.648653666Z"}]},"request_id":"15f528bc-619a-401d-b5ab-0b7d687faea1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.294233} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"49c23570-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.715517340Z"}]},"request_id":"7564490c-584c-4727-acdd-142795083ebd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.2948668} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"49c25c80-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49c23570-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/7197bacb-854c-4b5d-b396-0b803013fc24? 200 11ms","method":"GET","requestID":"49c23570-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49c25c80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1? 200 11ms","method":"GET","requestID":"49c25c80-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Setting up experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully locked booking for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Attempting to update booking for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully updated booking for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully set up experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49d03f30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"49d08d50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49d0db70-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully running experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.905723,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49d03f30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"49d03f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.813641,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49d08d50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"49d08d50-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"48868a0f-1e1a-4c96-b824-9b2b905a5499","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.388376} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.97264,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49d0db70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","rebac_allow":false,"scope_allow":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":"49d0db70-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.715517340Z"}]},"request_id":"7db8e068-4ee8-4561-b44f-7fe00c7f02ce","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.389885} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"49d08d50-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.648653666Z"}]},"request_id":"a7fdd4a3-2f80-42fc-a967-d37d91ae0c58","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.3920753} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"49d03f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49d0db70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling 200 11ms","method":"POST","requestID":"49d0db70-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49d2d740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49d08d50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1? 200 17ms","method":"GET","requestID":"49d08d50-2b5e-11f0-8e1f-5304d0938eae","responseTime":17,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"49d03f30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd42b62-0537-4af1-8c5c-5ec7712269f1#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd42b62-0537-4af1-8c5c-5ec7712269f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"8c3baff5-88d7-480f-b597-49b77f99d7d0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.3983884} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5449c519-6345-495e-87c7-c817cdd066d3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.3986158} device-1 | {"level":"info","message":"GET /devices/7197bacb-854c-4b5d-b396-0b803013fc24? 200 20ms","method":"GET","requestID":"49d03f30-2b5e-11f0-8e1f-5304d0938eae","responseTime":20,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24?"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"a18dcb70890468a2a64ac87c8ec62e87","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"14f44048-78fe-4869-b98a-a43195268545","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.4251552} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49d74410-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.039546,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49d2d740-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"49d2d740-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d969c214-819c-4eb9-a70d-afa7bd911045","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.4302347} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49d2d740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling 200 35ms","method":"POST","requestID":"49d2d740-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.874575,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49d74410-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","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":"07/May/2025:16:14:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.228","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"49d74410-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /experiments? 201 225ms","method":"POST","requestID":"a18dcb70890468a2a64ac87c8ec62e87","responseTime":225,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49d74410-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling 200 9ms","method":"POST","requestID":"49d74410-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI","level":"info","message":"auth send jwt","requestID":"13c2b19505bb253913d6e0589ab70507"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"13c2b19505bb253913d6e0589ab70507","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49d8f1c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"13c2b19505bb253913d6e0589ab70507"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:56044","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655254,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"13c2b19505bb253913d6e0589ab70507","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"13c2b19505bb253913d6e0589ab70507","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e9d264d-ee30-453f-9070-5f6861289e8b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.4401686} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.100645,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49d8f1c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"49d8f1c0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.648653666Z"}]},"request_id":"e94882cb-bf61-4ea9-a54c-21a1414085bc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.4434278} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49d8f1c0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"13c2b19505bb253913d6e0589ab70507","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"POST /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling 200 8ms","method":"POST","requestID":"49d8f1c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Building connection plan","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} 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":"66b5cebd-babe-48b5-b16b-9a65d7ae9e5f"},{"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":"1e467e2f-02b1-4a77-9414-f4b470659fdd"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b126a414-9b8a-4601-aa47-7a0981b123a0"}]},"level":"info","message":"Built pairwise service configurations","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} 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/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1"},{"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/7197bacb-854c-4b5d-b396-0b803013fc24"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"13c2b19505bb253913d6e0589ab70507"} device-1 | {"level":"info","message":"GET /devices/7197bacb-854c-4b5d-b396-0b803013fc24? 200 10ms","method":"GET","requestID":"13c2b19505bb253913d6e0589ab70507","responseTime":10,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24?"} gateway-1 | {"time_local":"07/May/2025:16:14:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7197bacb-854c-4b5d-b396-0b803013fc24? 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":"13c2b19505bb253913d6e0589ab70507"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.317004,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI","level":"info","message":"auth send jwt","requestID":"52a9c362f8688b474a589553453db7bb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"52a9c362f8688b474a589553453db7bb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"52a9c362f8688b474a589553453db7bb"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"890724b6-156d-4a12-8b8e-19fd7e7157e9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.4819145} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"861e3316-e688-450a-98ac-da3c738d0c44","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.4820628} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.711458,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52a9c362f8688b474a589553453db7bb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634441,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0MX0.fLgxOUE8jMiiK5Lxe33i-oFp4hLKgDoXfwXeAvHfTcI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"52a9c362f8688b474a589553453db7bb","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:13:58.715517340Z"}]},"request_id":"571a1b4d-7da6-4687-8643-f2640a5ee366","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.4882622} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"52a9c362f8688b474a589553453db7bb","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327'","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327'","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 54ms","method":"POST","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae","responseTime":54,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"52a9c362f8688b474a589553453db7bb"} device-1 | {"level":"info","message":"GET /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1? 200 42ms","method":"GET","requestID":"52a9c362f8688b474a589553453db7bb","responseTime":42,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1?"} gateway-1 | {"time_local":"07/May/2025:16:14:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"52a9c362f8688b474a589553453db7bb"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"49da7860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327","device":"7197bacb-854c-4b5d-b396-0b803013fc24","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/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"a18dcb70890468a2a64ac87c8ec62e87"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49e9baa0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5434cd39-6940-46c6-b868-ea7d01cca705","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.5703018} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":22.74586,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49e9baa0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"49e9baa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":24,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49e9baa0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling 200 28ms","method":"POST","requestID":"49e9baa0-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49ee4e80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"device":"7197bacb-854c-4b5d-b396-0b803013fc24","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"7197bacb-854c-4b5d-b396-0b803013fc24","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a741e679-100b-4d25-89fc-41ccbe630a1c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634441.5806143} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.148578,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"49ee4e80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"49ee4e80-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 9156411454363120448 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:2owD\r\na=ice-pwd:ij2fsJHBxaPppfIA+3cMIzfU\r\na=ice-options:trickle\r\na=fingerprint:sha-256 67:4F:5D:94:35:37:A3:05:46:E7:BD:A0:D1:10:5B:6C:9F:A2:AF:88:75:8B:C9:C2:C9:A7:F2:29:B9:0B:EE:97\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"7197bacb-854c-4b5d-b396-0b803013fc24","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"49ee4e80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling 200 10ms","method":"POST","requestID":"49ee4e80-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling"} device-1 | {"device":"7197bacb-854c-4b5d-b396-0b803013fc24","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"60a94047-9f1a-4786-958c-3ea31d0c7327","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/60a94047-9f1a-4786-958c-3ea31d0c7327' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"60a94047-9f1a-4786-958c-3ea31d0c7327","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"53b023d15019eba3192dfd3483a1299e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"53b023d15019eba3192dfd3483a1299e","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/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1"},{"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/7197bacb-854c-4b5d-b396-0b803013fc24"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327"}}},"level":"info","message":"received a callback","requestID":"53b023d15019eba3192dfd3483a1299e"} device-1 | {"content":{"candidate":"candidate:769458482 1 udp 2113937151 7496121f-1f30-4f0a-84a1-4a051395fd09.local 39067 typ host generation 0 ufrag 2owD network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"7197bacb-854c-4b5d-b396-0b803013fc24","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"7197bacb-854c-4b5d-b396-0b803013fc24","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":"53b023d15019eba3192dfd3483a1299e","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"53b023d15019eba3192dfd3483a1299e"} device-1 | {"data":{"peerconnection":"60a94047-9f1a-4786-958c-3ea31d0c7327","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"7197bacb-854c-4b5d-b396-0b803013fc24","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"60a94047-9f1a-4786-958c-3ea31d0c7327","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/60a94047-9f1a-4786-958c-3ea31d0c7327' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"60a94047-9f1a-4786-958c-3ea31d0c7327","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3a22727c91aed7372a2f38c4f068f59c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3a22727c91aed7372a2f38c4f068f59c","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/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1"},{"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/7197bacb-854c-4b5d-b396-0b803013fc24"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327"}}},"level":"info","message":"received a callback","requestID":"3a22727c91aed7372a2f38c4f068f59c"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"4b28f160-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F60a94047-9f1a-4786-958c-3ea31d0c7327","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de46c6c5-4a2a-4f23-ab6d-e258b2d628a1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.6424398} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.314252,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4b28f160-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327","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":"4b28f160-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"4b28f160-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327 200 7ms","method":"GET","requestID":"4b28f160-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 24ms","method":"POST","requestID":"3a22727c91aed7372a2f38c4f068f59c","responseTime":24,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch","requestID":"3a22727c91aed7372a2f38c4f068f59c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4b2c25b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c766fc1c-4731-4ca7-a3f4-985016d5c003","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.6833444} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.659424,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4b2c25b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"4b2c25b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4b2c25b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling 200 28ms","method":"POST","requestID":"4b2c25b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4b30b990-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f0838b43-c7b8-4222-a3e3-9dba2e9b37a1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.693508} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.214693,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4b30b990-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","rebac_allow":false,"scope_allow":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":"4b30b990-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4b30b990-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling 200 8ms","method":"POST","requestID":"4b30b990-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0M30.TY-uC2eSm-WK7IgEfG1j6zpuOc4xhOnHLxxUD-X2iOY","level":"info","message":"auth send jwt","requestID":"04411b9c26f3e3422e232aaa577838cb"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"04411b9c26f3e3422e232aaa577838cb","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","requestID":"04411b9c26f3e3422e232aaa577838cb"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.696689,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"04411b9c26f3e3422e232aaa577838cb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634443,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0M30.TY-uC2eSm-WK7IgEfG1j6zpuOc4xhOnHLxxUD-X2iOY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"04411b9c26f3e3422e232aaa577838cb","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","requestID":"04411b9c26f3e3422e232aaa577838cb"} experiment-1 | {"level":"info","message":"GET /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1 200 7ms","method":"GET","requestID":"04411b9c26f3e3422e232aaa577838cb","responseTime":7,"status":200,"url":"/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"04411b9c26f3e3422e232aaa577838cb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0M30.TY-uC2eSm-WK7IgEfG1j6zpuOc4xhOnHLxxUD-X2iOY","level":"info","message":"auth send jwt","requestID":"f09b0f2baaf581f222e2078bdb0f3fea"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f09b0f2baaf581f222e2078bdb0f3fea","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","requestID":"f09b0f2baaf581f222e2078bdb0f3fea"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.654867,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f09b0f2baaf581f222e2078bdb0f3fea","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634443,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0M30.TY-uC2eSm-WK7IgEfG1j6zpuOc4xhOnHLxxUD-X2iOY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f09b0f2baaf581f222e2078bdb0f3fea","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Attempting to finish experiment","requestID":"f09b0f2baaf581f222e2078bdb0f3fea"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4b3a0860-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.679174,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4b3a0860-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634443,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0M30.TY-uC2eSm-WK7IgEfG1j6zpuOc4xhOnHLxxUD-X2iOY"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"4b3a0860-2b5e-11f0-8e1f-5304d0938eae","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327","device":"7197bacb-854c-4b5d-b396-0b803013fc24","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/60a94047-9f1a-4786-958c-3ea31d0c7327' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"60a94047-9f1a-4786-958c-3ea31d0c7327","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F60a94047-9f1a-4786-958c-3ea31d0c7327': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F60a94047-9f1a-4786-958c-3ea31d0c7327","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"47cacdbf-e712-4ee9-9d4d-b299887cb754","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.7894757} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5f827053b2afeaa84e6fb38b3805e5f9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5f827053b2afeaa84e6fb38b3805e5f9","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"44271be15a9e5140fb504ed02703e699","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1"},{"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/7197bacb-854c-4b5d-b396-0b803013fc24"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327"}}},"level":"info","message":"received a callback","requestID":"5f827053b2afeaa84e6fb38b3805e5f9"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"44271be15a9e5140fb504ed02703e699","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"220c688f-7faf-4e53-a0eb-95ce6821631d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.789788} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"4b3a0860-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/relations/update"} 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/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1"},{"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/7197bacb-854c-4b5d-b396-0b803013fc24"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327"}}},"level":"info","message":"received a callback","requestID":"44271be15a9e5140fb504ed02703e699"} device-1 | {"data":{"peerconnection":"60a94047-9f1a-4786-958c-3ea31d0c7327","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4b3a0860-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327 204 80ms","method":"DELETE","requestID":"4b3a0860-2b5e-11f0-8e1f-5304d0938eae","responseTime":80,"status":204,"url":"/peerconnections/60a94047-9f1a-4786-958c-3ea31d0c7327"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"},"level":"info","message":"Successfully finished experiment","requestID":"f09b0f2baaf581f222e2078bdb0f3fea"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4b486040-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a93b765e-d886-4cd1-a054-d0082946a893","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.8486207} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.373499,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4b486040-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1","object_type":"device","rebac_allow":false,"scope_allow":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":"4b486040-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd42b62-0537-4af1-8c5c-5ec7712269f1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8fd42b62-0537-4af1-8c5c-5ec7712269f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"72197e91-c39c-4489-bb89-ae4f090e5504","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.8761122} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5626ad31-4f5b-4513-929f-e8db3bb7b92f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.8764136} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4b486040-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling 200 33ms","method":"POST","requestID":"4b486040-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"f09b0f2baaf581f222e2078bdb0f3fea","responseTime":35,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4b4db770-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7197bacb-854c-4b5d-b396-0b803013fc24","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"708f977e-ee12-4b47-b948-2515ee613628","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634443.8836727} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.204566,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4b4db770-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7197bacb-854c-4b5d-b396-0b803013fc24","object_type":"device","rebac_allow":false,"scope_allow":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":"4b4db770-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4b4db770-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling 200 9ms","method":"POST","requestID":"4b4db770-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/7197bacb-854c-4b5d-b396-0b803013fc24/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1","requestID":"f09b0f2baaf581f222e2078bdb0f3fea"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1 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":"f09b0f2baaf581f222e2078bdb0f3fea"} experiment-1 | {"level":"info","message":"DELETE /experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1 204 228ms","method":"DELETE","requestID":"f09b0f2baaf581f222e2078bdb0f3fea","responseTime":228,"status":204,"url":"/experiments/8fd42b62-0537-4af1-8c5c-5ec7712269f1"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +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.255","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"41674658bf934d991340b2a154682e78"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch","requestID":"5f827053b2afeaa84e6fb38b3805e5f9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 185ms","method":"POST","requestID":"5f827053b2afeaa84e6fb38b3805e5f9","responseTime":185,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 184ms","method":"POST","requestID":"44271be15a9e5140fb504ed02703e699","responseTime":184,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch","requestID":"44271be15a9e5140fb504ed02703e699"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0M30.TY-uC2eSm-WK7IgEfG1j6zpuOc4xhOnHLxxUD-X2iOY","level":"info","message":"auth send jwt","requestID":"a60882195660a867bc038ec3535339b3"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a60882195660a867bc038ec3535339b3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a60882195660a867bc038ec3535339b3"} gateway-1 | {"time_local":"07/May/2025:16:14:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2746","request_time":"2.843","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a57b9f8570ee2e75d051c553768eeecc"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.90895,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a60882195660a867bc038ec3535339b3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634443,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0M30.TY-uC2eSm-WK7IgEfG1j6zpuOc4xhOnHLxxUD-X2iOY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a60882195660a867bc038ec3535339b3","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/8f22ef29-1f84-4ea0-ad59-ad0cf30a5ed1' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5df3d32b-a360-4fd8-8272-3bda894d0d00","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.02964} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a60882195660a867bc038ec3535339b3","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/7197bacb-854c-4b5d-b396-0b803013fc24' 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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e528c182-26b8-4e5d-9f98-3b081bba8b01","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.0347369} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"a60882195660a867bc038ec3535339b3","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"23fb3e76-598a-4471-b125-d733d26d9b63","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.0685627} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd7d0158-3728-4384-9bf6-198180228c71","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.068881} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"a60882195660a867bc038ec3535339b3","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.068530441Z"}]},"request_id":"f87c22c4-6405-407c-8e08-c3200a590b91","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.0728364} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a60882195660a867bc038ec3535339b3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a60882195660a867bc038ec3535339b3"} gateway-1 | {"time_local":"07/May/2025:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.102","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a60882195660a867bc038ec3535339b3"} device-1 | {"level":"info","message":"POST /devices? 201 96ms","method":"POST","requestID":"a60882195660a867bc038ec3535339b3","responseTime":96,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0NH0.3RnES16IVG_Ec04BR-txNdGcpiqN6iNHZb1az-bETfw","level":"info","message":"auth send jwt","requestID":"356491b39638f967239a45013aa2be36"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"356491b39638f967239a45013aa2be36","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"356491b39638f967239a45013aa2be36"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:04Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.713098,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"356491b39638f967239a45013aa2be36","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634444,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0NH0.3RnES16IVG_Ec04BR-txNdGcpiqN6iNHZb1az-bETfw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"356491b39638f967239a45013aa2be36","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6987d339-8249-4e82-a25a-adcc41afb03d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.1235676} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"356491b39638f967239a45013aa2be36","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2cba974b-a163-4db5-9efb-2f87c7e493f5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.1286144} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"356491b39638f967239a45013aa2be36","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"481bb2e3-7860-49a2-80ba-1b416dd08d14","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.1401885} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"134af004-3633-469b-9133-9d7b65432823","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.1403656} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"356491b39638f967239a45013aa2be36","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.140161502Z"}]},"request_id":"49e020e7-0a2f-4a4f-a90f-f0e1faf00628","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634444.1678565} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"356491b39638f967239a45013aa2be36","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"356491b39638f967239a45013aa2be36"} gateway-1 | {"time_local":"07/May/2025:16:14:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"356491b39638f967239a45013aa2be36"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"356491b39638f967239a45013aa2be36","responseTime":90,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0NX0.VCkCb8Al1HluFWTgJqbEp2RzlEX0QVTUODATMlBaXe4","level":"info","message":"auth send jwt","requestID":"387c89fc7155cd15e31cfbb747f91673"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"387c89fc7155cd15e31cfbb747f91673","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"387c89fc7155cd15e31cfbb747f91673"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:05Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.719273,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"387c89fc7155cd15e31cfbb747f91673","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634445,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0NX0.VCkCb8Al1HluFWTgJqbEp2RzlEX0QVTUODATMlBaXe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"387c89fc7155cd15e31cfbb747f91673","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.068530441Z"}]},"request_id":"1a4456fa-9452-4732-b967-4b06100dd1ae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634445.0441244} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"387c89fc7155cd15e31cfbb747f91673","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f93be9b-eecf-4db6-a7d0-b52f9b95b4cf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634445.048396} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"387c89fc7155cd15e31cfbb747f91673","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.068530441Z"}]},"request_id":"2c122dd0-2e35-48ab-81b0-5fd27745df02","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634445.0812945} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"387c89fc7155cd15e31cfbb747f91673","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"387c89fc7155cd15e31cfbb747f91673"} gateway-1 | {"time_local":"07/May/2025:16:14:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.050","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"387c89fc7155cd15e31cfbb747f91673"} device-1 | {"level":"info","message":"PATCH /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f 200 47ms","method":"PATCH","requestID":"387c89fc7155cd15e31cfbb747f91673","responseTime":47,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0NX0.VCkCb8Al1HluFWTgJqbEp2RzlEX0QVTUODATMlBaXe4","level":"info","message":"auth send jwt","requestID":"13f2743c8db21cf7fc3d50acae23f070"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"13f2743c8db21cf7fc3d50acae23f070","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"13f2743c8db21cf7fc3d50acae23f070"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:05Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.905849,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"13f2743c8db21cf7fc3d50acae23f070","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634445,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0NX0.VCkCb8Al1HluFWTgJqbEp2RzlEX0QVTUODATMlBaXe4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"13f2743c8db21cf7fc3d50acae23f070","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"13f2743c8db21cf7fc3d50acae23f070"} device-1 | {"level":"info","message":"POST /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/websocket 200 34ms","method":"POST","requestID":"13f2743c8db21cf7fc3d50acae23f070","responseTime":34,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/websocket"} gateway-1 | {"time_local":"07/May/2025:16:14:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/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.18","requestID":"13f2743c8db21cf7fc3d50acae23f070"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"261db0a61bb171e1eb5dd92a8fb4cade","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"261db0a61bb171e1eb5dd92a8fb4cade","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/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":"261db0a61bb171e1eb5dd92a8fb4cade"} device-1 | {"level":"info","message":"OPTIONS /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/websocket 200 0ms","method":"OPTIONS","requestID":"261db0a61bb171e1eb5dd92a8fb4cade","responseTime":0,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ","level":"info","message":"auth send jwt","requestID":"38c23151a4eeb21a5695e7f6361f39ff"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"38c23151a4eeb21a5695e7f6361f39ff","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"38c23151a4eeb21a5695e7f6361f39ff"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689493,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"38c23151a4eeb21a5695e7f6361f39ff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"38c23151a4eeb21a5695e7f6361f39ff","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"38c23151a4eeb21a5695e7f6361f39ff"} gateway-1 | {"time_local":"07/May/2025:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"38c23151a4eeb21a5695e7f6361f39ff"} device-1 | {"level":"info","message":"POST /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/websocket 200 14ms","method":"POST","requestID":"38c23151a4eeb21a5695e7f6361f39ff","responseTime":14,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ","level":"info","message":"auth send jwt","requestID":"ed3c4bc300bea3dc84575fc8c1337873"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ed3c4bc300bea3dc84575fc8c1337873","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ed3c4bc300bea3dc84575fc8c1337873"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761671,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ed3c4bc300bea3dc84575fc8c1337873","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ed3c4bc300bea3dc84575fc8c1337873","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.068530441Z"}]},"request_id":"c68527da-25d5-411f-852c-a6235af22660","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.608829} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"ed3c4bc300bea3dc84575fc8c1337873","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ed3c4bc300bea3dc84575fc8c1337873"} gateway-1 | {"time_local":"07/May/2025:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f? 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":"ed3c4bc300bea3dc84575fc8c1337873"} device-1 | {"level":"info","message":"GET /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f? 200 33ms","method":"GET","requestID":"ed3c4bc300bea3dc84575fc8c1337873","responseTime":33,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ","level":"info","message":"auth send jwt","requestID":"1febe60d61cf4f0f8144d0069c9fe33f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1febe60d61cf4f0f8144d0069c9fe33f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1febe60d61cf4f0f8144d0069c9fe33f"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.622461,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"1febe60d61cf4f0f8144d0069c9fe33f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1febe60d61cf4f0f8144d0069c9fe33f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.140161502Z"}]},"request_id":"5d8e1512-ff5f-469b-bff8-487df0e7d112","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.6220012} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1febe60d61cf4f0f8144d0069c9fe33f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1febe60d61cf4f0f8144d0069c9fe33f"} gateway-1 | {"time_local":"07/May/2025:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7? 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":"1febe60d61cf4f0f8144d0069c9fe33f"} device-1 | {"level":"info","message":"GET /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7? 200 8ms","method":"GET","requestID":"1febe60d61cf4f0f8144d0069c9fe33f","responseTime":8,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ","level":"info","message":"auth send jwt","requestID":"2c477f9d800ceee965302ed201b506f4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2c477f9d800ceee965302ed201b506f4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"2c477f9d800ceee965302ed201b506f4"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.626269,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2c477f9d800ceee965302ed201b506f4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"2c477f9d800ceee965302ed201b506f4","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Attempting to run experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Attempting to book experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully booked experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4cf85a30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4cf8a850-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.891262,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4cf85a30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"4cf85a30-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32852","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:32852","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.865283,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4cf8a850-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"4cf8a850-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.068530441Z"}]},"request_id":"702a6c31-de0d-40a7-95bf-349be3dba6e0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.7076478} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4cf85a30-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.140161502Z"}]},"request_id":"49594882-1604-4177-8848-5480c39742fd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.7081416} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4cf8a850-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4cf85a30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f? 200 36ms","method":"GET","requestID":"4cf85a30-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4cf8a850-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7? 200 35ms","method":"GET","requestID":"4cf8a850-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Setting up experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully locked booking for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Attempting to update booking for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully updated booking for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully set up experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d072740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4d074e50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d079c70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32852","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully running experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} authorization-1 | {"client_addr":"127.0.0.1:32852","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":26.263864,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.364249,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d072740-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"4d072740-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d074e50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"4d074e50-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14: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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.140161502Z"}]},"request_id":"417cf555-cf1c-403c-a0e3-40ccfcffd74a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.806126} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4d074e50-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.068530441Z"}]},"request_id":"0c47dd47-eacc-4f9e-b4a0-d8b2c3c51774","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.806909} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4d072740-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3d8076ad-6b21-4781-9b51-231b75741e22","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.8078244} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.82223,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d079c70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","rebac_allow":false,"scope_allow":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":"4d079c70-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4398010f-6331-414e-a75b-ff51054018ad#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4398010f-6331-414e-a75b-ff51054018ad","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"30300f08-fbe0-41ad-a3ce-3a74d45f1f8c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.8117633} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc663a8f-6564-4902-8e3f-17dae8f54817","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.81193} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"2c477f9d800ceee965302ed201b506f4","responseTime":10,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d074e50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7? 200 41ms","method":"GET","requestID":"4d074e50-2b5e-11f0-8e1f-5304d0938eae","responseTime":41,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4d072740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f? 200 44ms","method":"GET","requestID":"4d072740-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d079c70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling 200 42ms","method":"POST","requestID":"4d079c70-2b5e-11f0-8e1f-5304d0938eae","responseTime":42,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d0e2c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d0e7a40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"2c477f9d800ceee965302ed201b506f4"} gateway-1 | {"time_local":"07/May/2025:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 193ms","method":"POST","requestID":"2c477f9d800ceee965302ed201b506f4","responseTime":193,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.579427,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47a8aa1f-fc49-4e74-8361-802d275e0fa0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.8229465} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d0e2c20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","rebac_allow":false,"scope_allow":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":"4d0e2c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b4045222-bb3e-4e6d-970a-5922fb0ea4c0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.8494954} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":28.078562,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ","level":"info","message":"auth send jwt","requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee","responseTime":28,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d0e7a40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","rebac_allow":false,"scope_allow":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":"4d0e7a40-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d0e2c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling 200 34ms","method":"POST","requestID":"4d0e2c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d13aa60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d0e7a40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:40070","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658938,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"POST /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling 200 37ms","method":"POST","requestID":"4d0e7a40-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1694ad80-d612-415e-87b8-9d28d1948817","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.85815} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.868728,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d13aa60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","rebac_allow":false,"scope_allow":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":"4d13aa60-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.068530441Z"}]},"request_id":"a6c14e16-c688-4f7d-9d74-0c2ebe1dec6c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.8602617} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d13aa60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling 200 9ms","method":"POST","requestID":"4d13aa60-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee"} gateway-1 | {"time_local":"07/May/2025:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f? 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":"e2f6709fcc6b6d116ce7e674ee2fc0ee"} device-1 | {"level":"info","message":"GET /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f? 200 11ms","method":"GET","requestID":"e2f6709fcc6b6d116ce7e674ee2fc0ee","responseTime":11,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Building connection plan","requestID":"2c477f9d800ceee965302ed201b506f4"} 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":"7fd0fccf-8d3a-45ea-8ffd-e817e600da16"},{"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":"976ea563-5d74-41b2-b925-7ccb9b95e3e5"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"bf244400-a8be-424f-8233-fe96af02ba02"}]},"level":"info","message":"Built pairwise service configurations","requestID":"2c477f9d800ceee965302ed201b506f4"} 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/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f"},{"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/54614006-c6b6-47e9-8fbf-f4ff91817de7"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"2c477f9d800ceee965302ed201b506f4"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ","level":"info","message":"auth send jwt","requestID":"3500da0dc00b053b00e281eb7b0728bc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3500da0dc00b053b00e281eb7b0728bc","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3500da0dc00b053b00e281eb7b0728bc"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.926007,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.655794,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"3500da0dc00b053b00e281eb7b0728bc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634446,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0Nn0.RiW9ZNxJBAAhgJkV59QgGXZjvCZ9diC42uqgD-ZWMvQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3500da0dc00b053b00e281eb7b0728bc","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:04.140161502Z"}]},"request_id":"7f90522c-9631-48c8-aa0f-ab446fdcc91e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.8990815} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3500da0dc00b053b00e281eb7b0728bc","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3500da0dc00b053b00e281eb7b0728bc"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"be88bf96-d8cf-4fd1-b36b-09850e282872","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.901778} gateway-1 | {"time_local":"07/May/2025:16:14:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7? 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":"3500da0dc00b053b00e281eb7b0728bc"} device-1 | {"level":"info","message":"GET /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7? 200 34ms","method":"GET","requestID":"3500da0dc00b053b00e281eb7b0728bc","responseTime":34,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f738d59-0284-4b56-b19d-281921026859","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.902056} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a'","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a'","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"4d157f20-2b5e-11f0-8e1f-5304d0938eae"} 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":"4d157f20-2b5e-11f0-8e1f-5304d0938eae","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":"4d157f20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a","device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","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/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"2c477f9d800ceee965302ed201b506f4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d23d700-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04adb80b-00ce-4bd0-987b-f9c4b7879eb9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.964997} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.549703,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d23d700-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","rebac_allow":false,"scope_allow":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":"4d23d700-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d23d700-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling 200 33ms","method":"POST","requestID":"4d23d700-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4d292e30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:06Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"883ea702-d69e-4332-8889-e947c385ed89","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634446.9998195} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.938509,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4d292e30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","rebac_allow":false,"scope_allow":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":"4d292e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4d292e30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling 200 9ms","method":"POST","requestID":"4d292e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 6663924385838624500 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:ThPt\r\na=ice-pwd:uMfCUU3mXEqB5NgT4eAm5Dfm\r\na=ice-options:trickle\r\na=fingerprint:sha-256 2D:F9:A2:C6:AB:4A:BE:E3:28:AF:6F:60:CF:A5:67:A4:79:EA:A5:14:4B:AB:6E:D3:E8:48:5D:26:16:C6:D7:5E\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"849e7fb9-4899-4249-8179-0ca3fdabde8a","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/849e7fb9-4899-4249-8179-0ca3fdabde8a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"849e7fb9-4899-4249-8179-0ca3fdabde8a","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e4866309896c01595048cebdec8468ed","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e4866309896c01595048cebdec8468ed","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/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f"},{"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/54614006-c6b6-47e9-8fbf-f4ff91817de7"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a"}}},"level":"info","message":"received a callback","requestID":"e4866309896c01595048cebdec8468ed"} device-1 | {"content":{"candidate":"candidate:1125911474 1 udp 2113937151 387fc934-69eb-47fc-85fd-e5b80b5e6270.local 60963 typ host generation 0 ufrag ThPt network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"e4866309896c01595048cebdec8468ed","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"e4866309896c01595048cebdec8468ed"} device-1 | {"data":{"peerconnection":"849e7fb9-4899-4249-8179-0ca3fdabde8a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"849e7fb9-4899-4249-8179-0ca3fdabde8a","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/849e7fb9-4899-4249-8179-0ca3fdabde8a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"849e7fb9-4899-4249-8179-0ca3fdabde8a","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"de7c52828330b253ffc630477f86c2b8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"de7c52828330b253ffc630477f86c2b8","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/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f"},{"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/54614006-c6b6-47e9-8fbf-f4ff91817de7"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a"}}},"level":"info","message":"received a callback","requestID":"de7c52828330b253ffc630477f86c2b8"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"4e63d110-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F849e7fb9-4899-4249-8179-0ca3fdabde8a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7a9a926f-a1c6-42b5-8a75-00da93b7f4a2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.0616925} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.358758,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4e63d110-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a","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":"4e63d110-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"4e63d110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a 200 6ms","method":"GET","requestID":"4e63d110-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"de7c52828330b253ffc630477f86c2b8","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"de7c52828330b253ffc630477f86c2b8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4e672c70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c7e3323c-ffa9-4457-8360-4e77bd5faeae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.1078377} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.032243,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4e672c70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","rebac_allow":false,"scope_allow":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":"4e672c70-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4e672c70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling 200 33ms","method":"POST","requestID":"4e672c70-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4e6c5c90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bfd016a8-a5b1-44f8-bdbd-474671f13509","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.1175277} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.249533,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4e6c5c90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","rebac_allow":false,"scope_allow":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":"4e6c5c90-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4e6c5c90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling 200 8ms","method":"POST","requestID":"4e6c5c90-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so","level":"info","message":"auth send jwt","requestID":"fca99642201759575a7629261eff6064"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fca99642201759575a7629261eff6064","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/4398010f-6331-414e-a75b-ff51054018ad","requestID":"fca99642201759575a7629261eff6064"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.655336,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"fca99642201759575a7629261eff6064","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634449,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"fca99642201759575a7629261eff6064","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/4398010f-6331-414e-a75b-ff51054018ad","requestID":"fca99642201759575a7629261eff6064"} gateway-1 | {"time_local":"07/May/2025:16:14:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/4398010f-6331-414e-a75b-ff51054018ad HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fca99642201759575a7629261eff6064"} experiment-1 | {"level":"info","message":"GET /experiments/4398010f-6331-414e-a75b-ff51054018ad 200 34ms","method":"GET","requestID":"fca99642201759575a7629261eff6064","responseTime":34,"status":200,"url":"/experiments/4398010f-6331-414e-a75b-ff51054018ad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so","level":"info","message":"auth send jwt","requestID":"ff803676bccde81e1bdc91f3ba17a674"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ff803676bccde81e1bdc91f3ba17a674","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/4398010f-6331-414e-a75b-ff51054018ad","requestID":"ff803676bccde81e1bdc91f3ba17a674"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.920575,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ff803676bccde81e1bdc91f3ba17a674","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634449,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ff803676bccde81e1bdc91f3ba17a674","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Attempting to finish experiment","requestID":"ff803676bccde81e1bdc91f3ba17a674"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"4e755d40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.697408,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4e755d40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634449,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"4e755d40-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a","device":"54614006-c6b6-47e9-8fbf-f4ff91817de7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/849e7fb9-4899-4249-8179-0ca3fdabde8a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"849e7fb9-4899-4249-8179-0ca3fdabde8a","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F849e7fb9-4899-4249-8179-0ca3fdabde8a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F849e7fb9-4899-4249-8179-0ca3fdabde8a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"2b91f61c-4b02-4a19-876c-9d23430d112e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.2093823} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"16475b4d-ede5-4192-bdcd-a58250fbebdf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.209752} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"487ecd76df6cb277270ab10967b51af8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"487ecd76df6cb277270ab10967b51af8","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"75747221978a058818921a84618d5666","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f"},{"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/54614006-c6b6-47e9-8fbf-f4ff91817de7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a"}}},"level":"info","message":"received a callback","requestID":"487ecd76df6cb277270ab10967b51af8"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"75747221978a058818921a84618d5666","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/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f"},{"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/54614006-c6b6-47e9-8fbf-f4ff91817de7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a"}}},"level":"info","message":"received a callback","requestID":"75747221978a058818921a84618d5666"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"4e755d40-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"849e7fb9-4899-4249-8179-0ca3fdabde8a","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"4e755d40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a 204 53ms","method":"DELETE","requestID":"4e755d40-2b5e-11f0-8e1f-5304d0938eae","responseTime":53,"status":204,"url":"/peerconnections/849e7fb9-4899-4249-8179-0ca3fdabde8a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/4398010f-6331-414e-a75b-ff51054018ad"},"level":"info","message":"Successfully finished experiment","requestID":"ff803676bccde81e1bdc91f3ba17a674"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4e82a3b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"70d0b4a8-7974-4681-b448-562b363061b6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.2632895} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.452864,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4e82a3b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f","object_type":"device","rebac_allow":false,"scope_allow":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":"4e82a3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4e82a3b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling 200 8ms","method":"POST","requestID":"4e82a3b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4e842a50-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7075953-6a0e-4954-880e-13914961e252","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.2968915} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F54614006-c6b6-47e9-8fbf-f4ff91817de7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97efedc8-28f2-49df-894d-fa2dc52f0129","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.2970116} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4398010f-6331-414e-a75b-ff51054018ad': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F4398010f-6331-414e-a75b-ff51054018ad","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"6aff6e10-541b-4833-9115-c4b6ea05f1e4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.2972188} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"ff803676bccde81e1bdc91f3ba17a674","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":28.259124,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4e842a50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7","object_type":"device","rebac_allow":false,"scope_allow":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":"4e842a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4e842a50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling 200 33ms","method":"POST","requestID":"4e842a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/54614006-c6b6-47e9-8fbf-f4ff91817de7/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/4398010f-6331-414e-a75b-ff51054018ad","requestID":"ff803676bccde81e1bdc91f3ba17a674"} gateway-1 | {"time_local":"07/May/2025:16:14:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/4398010f-6331-414e-a75b-ff51054018ad HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.203","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff803676bccde81e1bdc91f3ba17a674"} experiment-1 | {"level":"info","message":"DELETE /experiments/4398010f-6331-414e-a75b-ff51054018ad 204 200ms","method":"DELETE","requestID":"ff803676bccde81e1bdc91f3ba17a674","responseTime":200,"status":204,"url":"/experiments/4398010f-6331-414e-a75b-ff51054018ad"} gateway-1 | {"time_local":"07/May/2025:16:14:09 +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.240","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"cee1bd65e0dde7cc02f23b69d96849e8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 154ms","method":"POST","requestID":"487ecd76df6cb277270ab10967b51af8","responseTime":154,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"487ecd76df6cb277270ab10967b51af8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"75747221978a058818921a84618d5666","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.156","http_referrer":"","http_user_agent":"node-fetch","requestID":"75747221978a058818921a84618d5666"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so","level":"info","message":"auth send jwt","requestID":"07d9a9a61affd6eaebd69509dc395353"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"07d9a9a61affd6eaebd69509dc395353","responseTime":28,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"07d9a9a61affd6eaebd69509dc395353"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.939567,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} gateway-1 | {"time_local":"07/May/2025:16:14:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2744","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":"2737e79b89b25cf0ac349f88d0fe428a"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"07d9a9a61affd6eaebd69509dc395353","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634449,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"07d9a9a61affd6eaebd69509dc395353","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/ee854fc1-1b88-4186-9ba5-4c3a0ec7bb5f' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"39ee78d7-6f88-4229-9b36-1d5e53c0e8d6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.414257} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"07d9a9a61affd6eaebd69509dc395353","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/54614006-c6b6-47e9-8fbf-f4ff91817de7' 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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66a37737-0ea4-490b-a6e8-77eedd16542e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.445709} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"07d9a9a61affd6eaebd69509dc395353","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"368103bf-a15a-4749-a62f-4188f52b7c6e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.4525526} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d56caf78-06c1-40cc-98b3-2b4e5c36cf0f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.4527388} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"07d9a9a61affd6eaebd69509dc395353","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.452525933Z"}]},"request_id":"f86c9bd3-492c-4995-83c6-e9f1edb3e24f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.4571702} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"07d9a9a61affd6eaebd69509dc395353","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"07d9a9a61affd6eaebd69509dc395353"} device-1 | {"level":"info","message":"POST /devices? 201 65ms","method":"POST","requestID":"07d9a9a61affd6eaebd69509dc395353","responseTime":65,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:14: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.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07d9a9a61affd6eaebd69509dc395353"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so","level":"info","message":"auth send jwt","requestID":"4a587993e6a62e254a8914ab4a03ca1a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4a587993e6a62e254a8914ab4a03ca1a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4a587993e6a62e254a8914ab4a03ca1a"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.123114,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4a587993e6a62e254a8914ab4a03ca1a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634449,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ0OX0.ZD9on7NdgOykX2oA3rOu_EGm6xDrWu7HlrEr3rP5-so"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4a587993e6a62e254a8914ab4a03ca1a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b489bc5b-6cc6-4c6c-8bd6-5f2710170125","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.5047984} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"4a587993e6a62e254a8914ab4a03ca1a","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fb747c63-7002-430b-9c00-80e09ed13fd9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.5098596} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"4a587993e6a62e254a8914ab4a03ca1a","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"60f2eec9-7b15-4387-9787-495c67428148","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.543703} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b288c097-499e-492a-bf81-9f7687d2fcdf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.543959} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"4a587993e6a62e254a8914ab4a03ca1a","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.543668020Z"}]},"request_id":"317172cb-e7d1-4677-b947-10114b5d62a7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634449.5485954} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4a587993e6a62e254a8914ab4a03ca1a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4a587993e6a62e254a8914ab4a03ca1a"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"4a587993e6a62e254a8914ab4a03ca1a","responseTime":87,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:14: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.090","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4a587993e6a62e254a8914ab4a03ca1a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MH0.yc1rEd-ovC_lGMkKzHz4u25vIO9Z1bEFF7aPWcIFsys","level":"info","message":"auth send jwt","requestID":"6847b0e601d888ca114a3b63f29451be"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6847b0e601d888ca114a3b63f29451be","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6847b0e601d888ca114a3b63f29451be"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.703176,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6847b0e601d888ca114a3b63f29451be","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634450,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MH0.yc1rEd-ovC_lGMkKzHz4u25vIO9Z1bEFF7aPWcIFsys"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6847b0e601d888ca114a3b63f29451be","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.452525933Z"}]},"request_id":"4c04a7cc-856e-44dc-a8de-618d7a7e8717","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634450.4618883} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6847b0e601d888ca114a3b63f29451be","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0823e291-d9c5-4f26-9dd2-6edc220f1b81","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634450.4657252} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6847b0e601d888ca114a3b63f29451be","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.452525933Z"}]},"request_id":"6a043bcf-996f-45b7-8906-eb9138bd2441","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634450.474246} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6847b0e601d888ca114a3b63f29451be","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6847b0e601d888ca114a3b63f29451be"} gateway-1 | {"time_local":"07/May/2025:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.025","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"6847b0e601d888ca114a3b63f29451be"} device-1 | {"level":"info","message":"PATCH /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6 200 21ms","method":"PATCH","requestID":"6847b0e601d888ca114a3b63f29451be","responseTime":21,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MH0.yc1rEd-ovC_lGMkKzHz4u25vIO9Z1bEFF7aPWcIFsys","level":"info","message":"auth send jwt","requestID":"9f55437e3182493ae585dc50a534cbaf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9f55437e3182493ae585dc50a534cbaf","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9f55437e3182493ae585dc50a534cbaf"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:10Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650952,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9f55437e3182493ae585dc50a534cbaf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634450,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MH0.yc1rEd-ovC_lGMkKzHz4u25vIO9Z1bEFF7aPWcIFsys"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"9f55437e3182493ae585dc50a534cbaf","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9f55437e3182493ae585dc50a534cbaf"} device-1 | {"level":"info","message":"POST /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/websocket 200 46ms","method":"POST","requestID":"9f55437e3182493ae585dc50a534cbaf","responseTime":46,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/websocket"} gateway-1 | {"time_local":"07/May/2025:16:14:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.050","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"9f55437e3182493ae585dc50a534cbaf"} device-1 | {"level":"info","message":"device 'http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"941b54fa9afd02d7f832a6bde3135812","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"941b54fa9afd02d7f832a6bde3135812","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/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":"941b54fa9afd02d7f832a6bde3135812"} device-1 | {"level":"info","message":"OPTIONS /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/websocket 200 1ms","method":"OPTIONS","requestID":"941b54fa9afd02d7f832a6bde3135812","responseTime":1,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU","level":"info","message":"auth send jwt","requestID":"8f951cf13ecd88912d3fa5b01716e414"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8f951cf13ecd88912d3fa5b01716e414","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8f951cf13ecd88912d3fa5b01716e414"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671806,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8f951cf13ecd88912d3fa5b01716e414","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8f951cf13ecd88912d3fa5b01716e414","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8f951cf13ecd88912d3fa5b01716e414"} gateway-1 | {"time_local":"07/May/2025:16:14:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8f951cf13ecd88912d3fa5b01716e414"} device-1 | {"level":"info","message":"POST /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/websocket 200 37ms","method":"POST","requestID":"8f951cf13ecd88912d3fa5b01716e414","responseTime":37,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU","level":"info","message":"auth send jwt","requestID":"7a66b3a486627a8555d5418720603efc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7a66b3a486627a8555d5418720603efc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7a66b3a486627a8555d5418720603efc"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.96726,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"7a66b3a486627a8555d5418720603efc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"7a66b3a486627a8555d5418720603efc","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.452525933Z"}]},"request_id":"8d31e7f7-399a-4a0e-8999-dfde70a9bc4e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634451.91454} gateway-1 | {"time_local":"07/May/2025:16:14:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6? 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":"7a66b3a486627a8555d5418720603efc"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7a66b3a486627a8555d5418720603efc"} device-1 | {"level":"info","message":"GET /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6? 200 32ms","method":"GET","requestID":"7a66b3a486627a8555d5418720603efc","responseTime":32,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"7a66b3a486627a8555d5418720603efc","responseTime":5,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU","level":"info","message":"auth send jwt","requestID":"7eb7acffd083d665094ec0ac865cddcb"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7eb7acffd083d665094ec0ac865cddcb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7eb7acffd083d665094ec0ac865cddcb"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.755958,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"7eb7acffd083d665094ec0ac865cddcb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"7eb7acffd083d665094ec0ac865cddcb","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.543668020Z"}]},"request_id":"5a3d8d6a-5545-41e1-bf1f-7f5f86ed7134","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634451.9509335} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7eb7acffd083d665094ec0ac865cddcb","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7eb7acffd083d665094ec0ac865cddcb"} gateway-1 | {"time_local":"07/May/2025:16:14:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553? 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":"7eb7acffd083d665094ec0ac865cddcb"} device-1 | {"level":"info","message":"GET /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553? 200 11ms","method":"GET","requestID":"7eb7acffd083d665094ec0ac865cddcb","responseTime":11,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU","level":"info","message":"auth send jwt","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6d8162cdcfe27826ab9f24b848545a8f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.621431,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6d8162cdcfe27826ab9f24b848545a8f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d8162cdcfe27826ab9f24b848545a8f","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Attempting to run experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Attempting to book experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully booked experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"50264190-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"502668a0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.597839,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50264190-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"50264190-2b5e-11f0-8e1f-5304d0938eae","responseTime":23,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291937,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"502668a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"502668a0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.452525933Z"}]},"request_id":"9c1064ec-0101-49c4-818a-f1a3decf2e37","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.0378335} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"50264190-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"50264190-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.543668020Z"}]},"request_id":"e30f8c8b-ebc1-4994-8c70-7e8b5b0064b3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.0413494} device-1 | {"level":"info","message":"GET /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6? 200 32ms","method":"GET","requestID":"50264190-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"502668a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"502668a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553? 200 34ms","method":"GET","requestID":"502668a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Setting up experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully locked booking for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Attempting to update booking for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully updated booking for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully set up experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"50342440-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"50344b50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"50349970-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully running experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.716072,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50342440-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"50342440-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.814589,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50344b50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"50344b50-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.770995,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0430c4f2-c587-4b0a-a9c7-6a07d6262ad3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.1326675} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50349970-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","rebac_allow":false,"scope_allow":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":"50349970-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.543668020Z"}]},"request_id":"b4ffb802-58f2-422f-bfaf-2d6b43c0c840","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.135357} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"50344b50-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.452525933Z"}]},"request_id":"c807fcc6-c0a1-4ff7-9821-57e85385169a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.138613} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"50349970-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"50342440-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"POST /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling 200 36ms","method":"POST","requestID":"50349970-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"50344b50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553? 200 39ms","method":"GET","requestID":"50344b50-2b5e-11f0-8e1f-5304d0938eae","responseTime":39,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"503a8ce0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"50342440-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6? 200 44ms","method":"GET","requestID":"50342440-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd35794bd-3abe-42df-8f75-8dddf4977220#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd35794bd-3abe-42df-8f75-8dddf4977220","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"d5a0c735-78c5-4d92-a876-41c0771e53c4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.1447814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3054e9c5-f5d4-49ba-83d8-d860fcdb52c7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.1450834} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"503b2920-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"6d8162cdcfe27826ab9f24b848545a8f","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b38281f9-17b4-4bad-ad5a-f3b12bc80e04","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.147602} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.884647,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"503a8ce0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","rebac_allow":false,"scope_allow":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":"503a8ce0-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"993030b2-de5c-4bdd-b201-760782ea8882","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.1511693} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.356342,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"503a8ce0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling 200 35ms","method":"POST","requestID":"503a8ce0-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"503b2920-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","rebac_allow":false,"scope_allow":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":"503b2920-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 220ms","method":"POST","requestID":"6d8162cdcfe27826ab9f24b848545a8f","responseTime":221,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"07/May/2025:16:14:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.224","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"503b2920-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling 200 34ms","method":"POST","requestID":"503b2920-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5040a760-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Mn0.gHkUpUoWsMFOQyVLROPmp7jm9c9BSaQGLI3Eo5fgCYU","level":"info","message":"auth send jwt","requestID":"14b5cd77f20961072cdc90f9237b8a13"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"14b5cd77f20961072cdc90f9237b8a13","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"14b5cd77f20961072cdc90f9237b8a13"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7697a333-3cb0-4caa-8d75-367c9500c0b8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.186377} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.609875,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5040a760-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","rebac_allow":false,"scope_allow":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":"5040a760-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.775355,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"14b5cd77f20961072cdc90f9237b8a13","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634452,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Mn0.gHkUpUoWsMFOQyVLROPmp7jm9c9BSaQGLI3Eo5fgCYU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"14b5cd77f20961072cdc90f9237b8a13","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5040a760-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling 200 9ms","method":"POST","requestID":"5040a760-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.452525933Z"}]},"request_id":"f2042e8f-b71e-488f-aa6c-4ea5fcef4076","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.1917155} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Building connection plan","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} 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":"f091663b-622e-40fc-91d0-5ffcb530f168"},{"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":"5402ba64-021a-4471-b85a-dca591a17555"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e2f84e35-434c-4209-816d-f873a3678e90"}]},"level":"info","message":"Built pairwise service configurations","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} 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/af9e30a8-3c01-4abc-9a8a-641813567cb6"},{"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/c41ee7be-d62b-419b-bd08-3f0a71e60553"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"14b5cd77f20961072cdc90f9237b8a13","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"14b5cd77f20961072cdc90f9237b8a13"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} gateway-1 | {"time_local":"07/May/2025:16:14:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6? 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":"14b5cd77f20961072cdc90f9237b8a13"} device-1 | {"level":"info","message":"GET /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6? 200 11ms","method":"GET","requestID":"14b5cd77f20961072cdc90f9237b8a13","responseTime":11,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6?"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.885985,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634451,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1MX0.qy-tLkWEQMhpzoaxkM5mT-HVwnJ7abt47W7kSeEvORU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Mn0.gHkUpUoWsMFOQyVLROPmp7jm9c9BSaQGLI3Eo5fgCYU","level":"info","message":"auth send jwt","requestID":"78e2465d4e2134809a8fe941e83e524b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"78e2465d4e2134809a8fe941e83e524b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"78e2465d4e2134809a8fe941e83e524b"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.905319,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"78e2465d4e2134809a8fe941e83e524b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634452,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Mn0.gHkUpUoWsMFOQyVLROPmp7jm9c9BSaQGLI3Eo5fgCYU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"78e2465d4e2134809a8fe941e83e524b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"fdc2ab4f-af49-4cd6-8714-ec068a8a47e5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.2315364} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f325837a-8099-4d20-8ad9-9e27ce5cfebc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.2319074} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:09.543668020Z"}]},"request_id":"ecd3ddb0-8303-49b6-8eff-634415534bbf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.2325313} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"78e2465d4e2134809a8fe941e83e524b","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"78e2465d4e2134809a8fe941e83e524b"} device-1 | {"level":"info","message":"GET /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553? 200 12ms","method":"GET","requestID":"78e2465d4e2134809a8fe941e83e524b","responseTime":12,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553?"} gateway-1 | {"time_local":"07/May/2025:16:14:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553? 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":"78e2465d4e2134809a8fe941e83e524b"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08'","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08'","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 50ms","method":"POST","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae","responseTime":50,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"50427c20-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08","device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","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/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"6d8162cdcfe27826ab9f24b848545a8f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"50520c80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} device-1 | {"device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"158fd8de-4c0b-4491-ad2f-84baa8e1b372","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.3248997} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.966582,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50520c80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","rebac_allow":false,"scope_allow":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":"50520c80-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 673241595794955860 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:mXuY\r\na=ice-pwd:mK5eNo4pYbSPzssyxMhvOFfe\r\na=ice-options:trickle\r\na=fingerprint:sha-256 77:49:EE:79:D2:5C:A1:07:AD:AB:48:38:0A:B4:14:D3:31:DA:FB:3A:30:0E:5D:79:00:E7:E4:D7:3F:D2:C5:97\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"50520c80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling 200 35ms","method":"POST","requestID":"50520c80-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"50578ac0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b9361e4-ebee-46ed-86f5-3698db47951e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634452.3365223} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.035853,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"50578ac0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","rebac_allow":false,"scope_allow":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":"50578ac0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"50578ac0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling 200 8ms","method":"POST","requestID":"50578ac0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling"} device-1 | {"device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b312fbc4-4982-4edd-8c82-45e7a42b8d08","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/b312fbc4-4982-4edd-8c82-45e7a42b8d08' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b312fbc4-4982-4edd-8c82-45e7a42b8d08","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"93f494aa89d690740970d8b7b6e685c2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"connecting","url":"http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6"},{"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/c41ee7be-d62b-419b-bd08-3f0a71e60553"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08"}}},"level":"info","message":"received a callback","requestID":"93f494aa89d690740970d8b7b6e685c2"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"93f494aa89d690740970d8b7b6e685c2","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"93f494aa89d690740970d8b7b6e685c2","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"93f494aa89d690740970d8b7b6e685c2"} device-1 | {"content":{"candidate":"candidate:2899669098 1 udp 2113937151 d4d7b08e-bce5-4f11-b762-88fc879579fc.local 40516 typ host generation 0 ufrag mXuY network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"peerconnection":"b312fbc4-4982-4edd-8c82-45e7a42b8d08","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"b312fbc4-4982-4edd-8c82-45e7a42b8d08","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/b312fbc4-4982-4edd-8c82-45e7a42b8d08' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b312fbc4-4982-4edd-8c82-45e7a42b8d08","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8129e215177b3fe4e007eb670b276d7e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8129e215177b3fe4e007eb670b276d7e","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/af9e30a8-3c01-4abc-9a8a-641813567cb6"},{"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/c41ee7be-d62b-419b-bd08-3f0a71e60553"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08"}}},"level":"info","message":"received a callback","requestID":"8129e215177b3fe4e007eb670b276d7e"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"519254b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb312fbc4-4982-4edd-8c82-45e7a42b8d08","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8938563-0b75-4c32-ba05-14a6b6c533d7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.40002} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.225115,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"519254b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08","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":"519254b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"519254b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08 200 8ms","method":"GET","requestID":"519254b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"8129e215177b3fe4e007eb670b276d7e","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"8129e215177b3fe4e007eb670b276d7e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5199a7b0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1effcd32-d109-42b6-a66a-140b831cf113","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.4468882} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.165856,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5199a7b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","rebac_allow":false,"scope_allow":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":"5199a7b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5199a7b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling 200 7ms","method":"POST","requestID":"5199a7b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"519b0740-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c0d5d7bd-f28b-4582-8634-893ccd376313","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.4558039} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.398146,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"519b0740-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","rebac_allow":false,"scope_allow":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":"519b0740-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU","level":"info","message":"auth send jwt","requestID":"e1392ae1f37b8758f19d61787a600355"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"e1392ae1f37b8758f19d61787a600355","responseTime":27,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d35794bd-3abe-42df-8f75-8dddf4977220","requestID":"e1392ae1f37b8758f19d61787a600355"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"519b0740-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling 200 32ms","method":"POST","requestID":"519b0740-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.665836,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e1392ae1f37b8758f19d61787a600355","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634454,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e1392ae1f37b8758f19d61787a600355","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/d35794bd-3abe-42df-8f75-8dddf4977220","requestID":"e1392ae1f37b8758f19d61787a600355"} gateway-1 | {"time_local":"07/May/2025:16:14:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d35794bd-3abe-42df-8f75-8dddf4977220 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e1392ae1f37b8758f19d61787a600355"} experiment-1 | {"level":"info","message":"GET /experiments/d35794bd-3abe-42df-8f75-8dddf4977220 200 8ms","method":"GET","requestID":"e1392ae1f37b8758f19d61787a600355","responseTime":8,"status":200,"url":"/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU","level":"info","message":"auth send jwt","requestID":"bffe545d31f7c0f8a8994b34e6d505a1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bffe545d31f7c0f8a8994b34e6d505a1","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d35794bd-3abe-42df-8f75-8dddf4977220","requestID":"bffe545d31f7c0f8a8994b34e6d505a1"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.337961,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bffe545d31f7c0f8a8994b34e6d505a1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634454,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"bffe545d31f7c0f8a8994b34e6d505a1","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Attempting to finish experiment","requestID":"bffe545d31f7c0f8a8994b34e6d505a1"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"51a31d90-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.677593,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"51a31d90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634454,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"51a31d90-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08","device":"c41ee7be-d62b-419b-bd08-3f0a71e60553","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"af9e30a8-3c01-4abc-9a8a-641813567cb6","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/b312fbc4-4982-4edd-8c82-45e7a42b8d08' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b312fbc4-4982-4edd-8c82-45e7a42b8d08","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c741f0811496630ed0aa202e03f58190","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb312fbc4-4982-4edd-8c82-45e7a42b8d08': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb312fbc4-4982-4edd-8c82-45e7a42b8d08","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"a6fcf921-4c2f-4e0f-ac7d-309d0d9242d5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.5392184} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c741f0811496630ed0aa202e03f58190","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b46a7363-8b78-41e0-ad77-99c13798a406","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.5395412} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"85f7b89777b1af2f998ff703471571bb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/af9e30a8-3c01-4abc-9a8a-641813567cb6"},{"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/c41ee7be-d62b-419b-bd08-3f0a71e60553"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08"}}},"level":"info","message":"received a callback","requestID":"c741f0811496630ed0aa202e03f58190"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"85f7b89777b1af2f998ff703471571bb","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/af9e30a8-3c01-4abc-9a8a-641813567cb6"},{"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/c41ee7be-d62b-419b-bd08-3f0a71e60553"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08"}}},"level":"info","message":"received a callback","requestID":"85f7b89777b1af2f998ff703471571bb"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"51a31d90-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"b312fbc4-4982-4edd-8c82-45e7a42b8d08","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"51a31d90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08 204 78ms","method":"DELETE","requestID":"51a31d90-2b5e-11f0-8e1f-5304d0938eae","responseTime":78,"status":204,"url":"/peerconnections/b312fbc4-4982-4edd-8c82-45e7a42b8d08"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"},"level":"info","message":"Successfully finished experiment","requestID":"bffe545d31f7c0f8a8994b34e6d505a1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51b14e60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faf9e30a8-3c01-4abc-9a8a-641813567cb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0e38e843-2792-485a-a734-d6ee22a4b5cd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.626446} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.816326,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"51b14e60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6","object_type":"device","rebac_allow":false,"scope_allow":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":"51b14e60-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51b14e60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling 200 32ms","method":"POST","requestID":"51b14e60-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/af9e30a8-3c01-4abc-9a8a-641813567cb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"51b67e80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd35794bd-3abe-42df-8f75-8dddf4977220': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd35794bd-3abe-42df-8f75-8dddf4977220","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"7d2d8e15-e56a-4b92-be9e-1f025c10bd87","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.6321204} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd1e9080-0ae3-4f99-bdd4-d30df1d994b7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.6323705} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"bffe545d31f7c0f8a8994b34e6d505a1","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41ee7be-d62b-419b-bd08-3f0a71e60553","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6f77e406-bea1-4b33-aeb2-06ff1cf651ff","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.6360996} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.388062,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"51b67e80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553","object_type":"device","rebac_allow":false,"scope_allow":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":"51b67e80-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"51b67e80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling 200 8ms","method":"POST","requestID":"51b67e80-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/c41ee7be-d62b-419b-bd08-3f0a71e60553/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d35794bd-3abe-42df-8f75-8dddf4977220","requestID":"bffe545d31f7c0f8a8994b34e6d505a1"} gateway-1 | {"time_local":"07/May/2025:16:14:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d35794bd-3abe-42df-8f75-8dddf4977220 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":"bffe545d31f7c0f8a8994b34e6d505a1"} gateway-1 | {"time_local":"07/May/2025:16:14:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2541","request_time":"4.179","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"a0efd0813d9c3b4cf99b8d53e8801cce"} experiment-1 | {"level":"info","message":"DELETE /experiments/d35794bd-3abe-42df-8f75-8dddf4977220 204 235ms","method":"DELETE","requestID":"bffe545d31f7c0f8a8994b34e6d505a1","responseTime":235,"status":204,"url":"/experiments/d35794bd-3abe-42df-8f75-8dddf4977220"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU","level":"info","message":"auth send jwt","requestID":"72b92c74de7f1fe3797eec45958313b7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"c741f0811496630ed0aa202e03f58190","responseTime":195,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"72b92c74de7f1fe3797eec45958313b7","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14: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.197","http_referrer":"","http_user_agent":"node-fetch","requestID":"c741f0811496630ed0aa202e03f58190"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 194ms","method":"POST","requestID":"85f7b89777b1af2f998ff703471571bb","responseTime":194,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.198","http_referrer":"","http_user_agent":"node-fetch","requestID":"85f7b89777b1af2f998ff703471571bb"} device-1 | {"level":"info","message":"postDevices called","requestID":"72b92c74de7f1fe3797eec45958313b7"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.922231,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} gateway-1 | {"time_local":"07/May/2025:16:14:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2744","request_time":"2.848","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e0ffa25ceb1b0a6f6fc5a83825381f05"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"72b92c74de7f1fe3797eec45958313b7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634454,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"72b92c74de7f1fe3797eec45958313b7","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/af9e30a8-3c01-4abc-9a8a-641813567cb6' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"eed3d6e7-1f24-4e8d-a2a7-1702742170a2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.778836} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"72b92c74de7f1fe3797eec45958313b7","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/c41ee7be-d62b-419b-bd08-3f0a71e60553' 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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f81ab994-ee2c-4ee9-934e-8556c0714f44","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.7836032} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"72b92c74de7f1fe3797eec45958313b7","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"02f6de63-bb64-44fd-b3b2-e1e8cf7a30b9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.7922328} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"16ccf49d-1d90-44d2-963b-55c6a11eddc5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.7923987} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"72b92c74de7f1fe3797eec45958313b7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.792203467Z"}]},"request_id":"d2f1e652-a097-4120-a7ae-42f51d55f722","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.8208761} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"72b92c74de7f1fe3797eec45958313b7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"72b92c74de7f1fe3797eec45958313b7"} gateway-1 | {"time_local":"07/May/2025:16:14:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.092","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"72b92c74de7f1fe3797eec45958313b7"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"72b92c74de7f1fe3797eec45958313b7","responseTime":86,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU","level":"info","message":"auth send jwt","requestID":"f9770bc2810c7505996d128d4e6431db"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f9770bc2810c7505996d128d4e6431db","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"f9770bc2810c7505996d128d4e6431db"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.75841,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f9770bc2810c7505996d128d4e6431db","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634454,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NH0.oAkIO3isaKA9zo4uH8D9ZDGOm6gxtcD05Aic7WvyApU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f9770bc2810c7505996d128d4e6431db","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8f34842b-d1f0-4a70-8264-9c6fd74c1cd6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.8671708} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f9770bc2810c7505996d128d4e6431db","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f0d46d3-e7fd-4c4d-911a-776f3ebb0693","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.8719516} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"f9770bc2810c7505996d128d4e6431db","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"52d8e227-7533-4d3e-a0c5-9f818e96b493","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.8847756} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"655cacff-53c5-4981-bfaf-1342881569b3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.884709} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"f9770bc2810c7505996d128d4e6431db","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.884674826Z"}]},"request_id":"af67c5db-c44a-462f-81bf-1d742ac781a1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634454.8885062} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f9770bc2810c7505996d128d4e6431db"} gateway-1 | {"time_local":"07/May/2025:16:14:14 +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":"f9770bc2810c7505996d128d4e6431db"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f9770bc2810c7505996d128d4e6431db","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"f9770bc2810c7505996d128d4e6431db","responseTime":63,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs","level":"info","message":"auth send jwt","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs","level":"info","message":"auth send jwt","requestID":"5bd1d93da37f03a8c64fdb551c48ba34"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5bd1d93da37f03a8c64fdb551c48ba34","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"5bd1d93da37f03a8c64fdb551c48ba34"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645331,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4815ee9e815e7fc5e8d1f330e27cad4c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634455,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.514038,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5bd1d93da37f03a8c64fdb551c48ba34","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634455,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5bd1d93da37f03a8c64fdb551c48ba34","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.884674826Z"}]},"request_id":"47a34c49-cd14-4bbe-95a4-e37c1350f111","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634455.8766267} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.792203467Z"}]},"request_id":"c4d49d88-b3d8-4833-ac50-24a00ccb6691","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634455.8772037} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5bd1d93da37f03a8c64fdb551c48ba34","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a66c92e2-8a80-423b-8218-1811e091cc30","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634455.8804595} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c","responseTime":2,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b43e6c90-e77c-4305-9dd6-c6c976a35a01","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634455.881561} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"5bd1d93da37f03a8c64fdb551c48ba34","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.792203467Z"}]},"request_id":"82af4bc6-fcb6-479d-8eb1-ee681720be17","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634455.8843555} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5bd1d93da37f03a8c64fdb551c48ba34","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"5bd1d93da37f03a8c64fdb551c48ba34"} gateway-1 | {"time_local":"07/May/2025:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4c44168d-568d-4de9-a824-411a4cf472c2 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"5bd1d93da37f03a8c64fdb551c48ba34"} device-1 | {"level":"info","message":"PATCH /devices/4c44168d-568d-4de9-a824-411a4cf472c2 200 41ms","method":"PATCH","requestID":"5bd1d93da37f03a8c64fdb551c48ba34","responseTime":41,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs","level":"info","message":"auth send jwt","requestID":"5d361c334dc8b28b537cc60bb64d3c9b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5d361c334dc8b28b537cc60bb64d3c9b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"5d361c334dc8b28b537cc60bb64d3c9b"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.640589,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d361c334dc8b28b537cc60bb64d3c9b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634455,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5d361c334dc8b28b537cc60bb64d3c9b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.884674826Z"}]},"request_id":"62622331-fd6e-434d-833f-fec865f99dc0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634455.8934476} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c"} gateway-1 | {"time_local":"07/May/2025:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/07f343b2-b24d-4a07-95f0-067a905f87b8 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.058","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c"} device-1 | {"level":"info","message":"PATCH /devices/07f343b2-b24d-4a07-95f0-067a905f87b8 200 53ms","method":"PATCH","requestID":"4815ee9e815e7fc5e8d1f330e27cad4c","responseTime":53,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs","level":"info","message":"auth send jwt","requestID":"f75e683da08f49de23cc11880e74e67f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f75e683da08f49de23cc11880e74e67f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f75e683da08f49de23cc11880e74e67f"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.675823,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f75e683da08f49de23cc11880e74e67f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634455,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f75e683da08f49de23cc11880e74e67f","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"5d361c334dc8b28b537cc60bb64d3c9b"} gateway-1 | {"time_local":"07/May/2025:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4c44168d-568d-4de9-a824-411a4cf472c2/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.18","requestID":"5d361c334dc8b28b537cc60bb64d3c9b"} device-1 | {"level":"info","message":"POST /devices/4c44168d-568d-4de9-a824-411a4cf472c2/websocket 200 40ms","method":"POST","requestID":"5d361c334dc8b28b537cc60bb64d3c9b","responseTime":40,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f75e683da08f49de23cc11880e74e67f"} gateway-1 | {"time_local":"07/May/2025:16:14:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/07f343b2-b24d-4a07-95f0-067a905f87b8/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.18","requestID":"f75e683da08f49de23cc11880e74e67f"} device-1 | {"level":"info","message":"POST /devices/07f343b2-b24d-4a07-95f0-067a905f87b8/websocket 200 14ms","method":"POST","requestID":"f75e683da08f49de23cc11880e74e67f","responseTime":14,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs","level":"info","message":"auth send jwt","requestID":"e7fa540278169039dc091c20301da0c7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e7fa540278169039dc091c20301da0c7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e7fa540278169039dc091c20301da0c7"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653308,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e7fa540278169039dc091c20301da0c7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634455,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1NX0.Swr1aXC-KAQ10VX4_rs18Q0gxt6zT8ETfL_6OFewMDs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e7fa540278169039dc091c20301da0c7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.792203467Z"}]},"request_id":"5da51b8a-a7d4-4436-b24f-1ef771e4a0f7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634455.9915924} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e7fa540278169039dc091c20301da0c7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e7fa540278169039dc091c20301da0c7"} gateway-1 | {"time_local":"07/May/2025:16:14:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c44168d-568d-4de9-a824-411a4cf472c2? 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":"e7fa540278169039dc091c20301da0c7"} device-1 | {"level":"info","message":"GET /devices/4c44168d-568d-4de9-a824-411a4cf472c2? 200 37ms","method":"GET","requestID":"e7fa540278169039dc091c20301da0c7","responseTime":37,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg","level":"info","message":"auth send jwt","requestID":"91bd4b9c296ad85a7cd87de708726c33"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"91bd4b9c296ad85a7cd87de708726c33","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"91bd4b9c296ad85a7cd87de708726c33"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.44137,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"91bd4b9c296ad85a7cd87de708726c33","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"91bd4b9c296ad85a7cd87de708726c33","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.884674826Z"}]},"request_id":"8c94fe30-b5c8-4584-839e-32809b47886e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.0331376} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"91bd4b9c296ad85a7cd87de708726c33","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"91bd4b9c296ad85a7cd87de708726c33"} device-1 | {"level":"info","message":"GET /devices/07f343b2-b24d-4a07-95f0-067a905f87b8? 200 9ms","method":"GET","requestID":"91bd4b9c296ad85a7cd87de708726c33","responseTime":9,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8?"} gateway-1 | {"time_local":"07/May/2025:16:14:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07f343b2-b24d-4a07-95f0-067a905f87b8? 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":"91bd4b9c296ad85a7cd87de708726c33"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg","level":"info","message":"auth send jwt","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"659d1edf1ace4daff6cda86e4d1378a6","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.758956,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"659d1edf1ace4daff6cda86e4d1378a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"659d1edf1ace4daff6cda86e4d1378a6","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Attempting to run experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Attempting to book experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully booked experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"52987a10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5298a120-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661309,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52987a10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"52987a10-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.612113,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5298a120-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5298a120-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.792203467Z"}]},"request_id":"a35e0289-f598-4932-8929-87c1d617b0a6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.1201577} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"52987a10-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.884674826Z"}]},"request_id":"76845f55-3b2b-467a-84b7-89c41eea0dc7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.1212485} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5298a120-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"52987a10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/4c44168d-568d-4de9-a824-411a4cf472c2? 200 12ms","method":"GET","requestID":"52987a10-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5298a120-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/07f343b2-b24d-4a07-95f0-067a905f87b8? 200 11ms","method":"GET","requestID":"5298a120-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Setting up experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully locked booking for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Attempting to update booking for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully updated booking for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully set up experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"52a74720-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"52a76e30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"52a79540-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully running experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:32878","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.003629,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52a74720-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"52a74720-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.618552,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52a76e30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"52a76e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.792203467Z"}]},"request_id":"3b2ee39e-5c3a-4c22-bd22-63e7f87baf89","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.2190874} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"52a74720-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.884674826Z"}]},"request_id":"656ff2d1-ec93-4d57-80b6-e13b6d80f5fc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.2201934} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"52a76e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"344ab2e0-ba22-4d61-ba6a-44bc7f29ef75","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.2212691} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.278111,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52a79540-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","rebac_allow":false,"scope_allow":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":"52a79540-2b5e-11f0-8e1f-5304d0938eae","responseTime":11,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"52a74720-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60ed6a49-7e05-4562-b108-81cb5a7b6670#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60ed6a49-7e05-4562-b108-81cb5a7b6670","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"ef3e60ef-f013-4e14-ab89-94614f47ab63","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.2236695} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7ef0378-03a3-4042-82f4-41fea08214dd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.2240078} device-1 | {"level":"info","message":"GET /devices/4c44168d-568d-4de9-a824-411a4cf472c2? 200 15ms","method":"GET","requestID":"52a74720-2b5e-11f0-8e1f-5304d0938eae","responseTime":15,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"52a76e30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/07f343b2-b24d-4a07-95f0-067a905f87b8? 200 14ms","method":"GET","requestID":"52a76e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"659d1edf1ace4daff6cda86e4d1378a6","responseTime":10,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"52a9df30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"52a79540-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling 200 16ms","method":"POST","requestID":"52a79540-2b5e-11f0-8e1f-5304d0938eae","responseTime":16,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"360cc45e-9f30-4215-aab3-6d10cc006cbd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.231221} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.411204,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"52aaa280-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52a9df30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","rebac_allow":false,"scope_allow":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":"52a9df30-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} gateway-1 | {"time_local":"07/May/2025:16:14:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.222","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"level":"info","message":"POST /experiments? 201 218ms","method":"POST","requestID":"659d1edf1ace4daff6cda86e4d1378a6","responseTime":218,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"010efcc3-b415-4418-b25f-ce00fe18a05f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.260444} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.610775,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"52a9df30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling 200 34ms","method":"POST","requestID":"52a9df30-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52aaa280-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","rebac_allow":false,"scope_allow":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":"52aaa280-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg","level":"info","message":"auth send jwt","requestID":"970238c6f7b2a63de2edb13ab74bc2b4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"970238c6f7b2a63de2edb13ab74bc2b4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"52af8480-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"970238c6f7b2a63de2edb13ab74bc2b4"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"52aaa280-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.711808,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} device-1 | {"level":"info","message":"POST /devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling 200 36ms","method":"POST","requestID":"52aaa280-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"970238c6f7b2a63de2edb13ab74bc2b4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"970238c6f7b2a63de2edb13ab74bc2b4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"718501bf-605e-4291-8d03-b0d5221d0892","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.2685282} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.526845,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52af8480-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","rebac_allow":false,"scope_allow":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":"52af8480-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.792203467Z"}]},"request_id":"222a8ba5-e10c-41f3-b07b-40c9e13ab246","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.2726817} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"52af8480-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling 200 9ms","method":"POST","requestID":"52af8480-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"970238c6f7b2a63de2edb13ab74bc2b4","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Building connection plan","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} 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":"62c1188b-1758-4967-837f-b6538b9ad48f"},{"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":"2f306339-7118-41ee-ac2e-7a4d826caea0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"612ecdf5-a862-48b6-92ff-73fd9039a3ad"}]},"level":"info","message":"Built pairwise service configurations","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} 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/4c44168d-568d-4de9-a824-411a4cf472c2"},{"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/07f343b2-b24d-4a07-95f0-067a905f87b8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"970238c6f7b2a63de2edb13ab74bc2b4"} gateway-1 | {"time_local":"07/May/2025:16:14:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c44168d-568d-4de9-a824-411a4cf472c2? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"970238c6f7b2a63de2edb13ab74bc2b4"} device-1 | {"level":"info","message":"GET /devices/4c44168d-568d-4de9-a824-411a4cf472c2? 200 12ms","method":"GET","requestID":"970238c6f7b2a63de2edb13ab74bc2b4","responseTime":12,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2?"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.679188,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg","level":"info","message":"auth send jwt","requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.667244,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634456,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1Nn0.BVw84huBWsM6kDhz4uX2_jHpSEMr1jFMWJojpZojsTg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"53376a66-e1da-4ed3-b752-a463483e162a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.3116715} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"72ab25d7-3044-45b0-8fc2-b89454d1606d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.3120387} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:14.884674826Z"}]},"request_id":"7a22d26f-2316-479d-9640-d04033bd7650","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.3123863} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c"} gateway-1 | {"time_local":"07/May/2025:16:14:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07f343b2-b24d-4a07-95f0-067a905f87b8? 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":"a9e972f96b2b1ce08c7c4f7b7a97512c"} device-1 | {"level":"info","message":"GET /devices/07f343b2-b24d-4a07-95f0-067a905f87b8? 200 10ms","method":"GET","requestID":"a9e972f96b2b1ce08c7c4f7b7a97512c","responseTime":10,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d'","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d'","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"52b13230-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"659d1edf1ace4daff6cda86e4d1378a6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"52c07470-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f50aba57-32ff-45aa-92a4-e60f45988220","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.3788483} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.44573,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52c07470-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","rebac_allow":false,"scope_allow":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":"52c07470-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"52c07470-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling 200 28ms","method":"POST","requestID":"52c07470-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"52c50850-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"66a7a483-cf4b-4ca7-973e-a58a0e7d41fc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634456.4090602} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.159976,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"52c50850-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","rebac_allow":false,"scope_allow":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":"52c50850-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"52c50850-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling 200 8ms","method":"POST","requestID":"52c50850-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling"} device-1 | {"device":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9d36e83e-bd36-49ee-8ce6-77fcf316116d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9d36e83e-bd36-49ee-8ce6-77fcf316116d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/9d36e83e-bd36-49ee-8ce6-77fcf316116d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d36e83e-bd36-49ee-8ce6-77fcf316116d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"de576e3dea285be892fee2dd6165fbf6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"de576e3dea285be892fee2dd6165fbf6","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/4c44168d-568d-4de9-a824-411a4cf472c2"},{"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/07f343b2-b24d-4a07-95f0-067a905f87b8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d"}}},"level":"info","message":"received a callback","requestID":"de576e3dea285be892fee2dd6165fbf6"} device-1 | {"device":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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 30ms","method":"POST","requestID":"de576e3dea285be892fee2dd6165fbf6","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"de576e3dea285be892fee2dd6165fbf6"} device-1 | {"device":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9d36e83e-bd36-49ee-8ce6-77fcf316116d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"9d36e83e-bd36-49ee-8ce6-77fcf316116d","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/9d36e83e-bd36-49ee-8ce6-77fcf316116d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d36e83e-bd36-49ee-8ce6-77fcf316116d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"99d39e30eec8ef25a05e00adea863795","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"99d39e30eec8ef25a05e00adea863795","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/4c44168d-568d-4de9-a824-411a4cf472c2"},{"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/07f343b2-b24d-4a07-95f0-067a905f87b8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d"}}},"level":"info","message":"received a callback","requestID":"99d39e30eec8ef25a05e00adea863795"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"53ffd240-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.664035,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d36e83e-bd36-49ee-8ce6-77fcf316116d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8652cb14-fb61-4d94-ae95-9e3e663d8057","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.472532} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"53ffd240-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d","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":"53ffd240-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"53ffd240-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d 200 10ms","method":"GET","requestID":"53ffd240-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 75ms","method":"POST","requestID":"99d39e30eec8ef25a05e00adea863795","responseTime":75,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.077","http_referrer":"","http_user_agent":"node-fetch","requestID":"99d39e30eec8ef25a05e00adea863795"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5406fe30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"101b0bc7-3938-43dc-9eac-5d24b7133bad","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.5190282} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.213729,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5406fe30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","rebac_allow":false,"scope_allow":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":"5406fe30-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5406fe30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling 200 7ms","method":"POST","requestID":"5406fe30-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"54085dc0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a81bd374-154b-4f17-b8ab-ed9ae47e1208","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.5278032} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.31217,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"54085dc0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","rebac_allow":false,"scope_allow":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":"54085dc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"54085dc0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling 200 7ms","method":"POST","requestID":"54085dc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME","level":"info","message":"auth send jwt","requestID":"f6d85d93768ae5cee72672c3328dea8c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f6d85d93768ae5cee72672c3328dea8c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","requestID":"f6d85d93768ae5cee72672c3328dea8c"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.689802,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f6d85d93768ae5cee72672c3328dea8c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634458,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"f6d85d93768ae5cee72672c3328dea8c","responseTime":31,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","requestID":"f6d85d93768ae5cee72672c3328dea8c"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f6d85d93768ae5cee72672c3328dea8c"} experiment-1 | {"level":"info","message":"GET /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670 200 37ms","method":"GET","requestID":"f6d85d93768ae5cee72672c3328dea8c","responseTime":37,"status":200,"url":"/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME","level":"info","message":"auth send jwt","requestID":"e45db5d630930939d876e3de64f772b7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e45db5d630930939d876e3de64f772b7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","requestID":"e45db5d630930939d876e3de64f772b7"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.929588,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e45db5d630930939d876e3de64f772b7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634458,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"e45db5d630930939d876e3de64f772b7","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Attempting to finish experiment","requestID":"e45db5d630930939d876e3de64f772b7"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"54152f00-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.672867,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"54152f00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634458,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"54152f00-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"device":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"07f343b2-b24d-4a07-95f0-067a905f87b8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"4c44168d-568d-4de9-a824-411a4cf472c2","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/9d36e83e-bd36-49ee-8ce6-77fcf316116d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9d36e83e-bd36-49ee-8ce6-77fcf316116d","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d36e83e-bd36-49ee-8ce6-77fcf316116d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9d36e83e-bd36-49ee-8ce6-77fcf316116d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"cd2a3d38-5ed5-441d-b30a-7950704fe8fc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.620904} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a87fd01-2d61-4669-b704-f2886a82f4e1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.6210592} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f0cdd1ad83f8e93157a74ded115ffed3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"54152f00-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f0cdd1ad83f8e93157a74ded115ffed3","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1f583507c33feca3d0b7d41ed8d78fde","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1f583507c33feca3d0b7d41ed8d78fde","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/4c44168d-568d-4de9-a824-411a4cf472c2"},{"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/07f343b2-b24d-4a07-95f0-067a905f87b8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d"}}},"level":"info","message":"received a callback","requestID":"f0cdd1ad83f8e93157a74ded115ffed3"} 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/4c44168d-568d-4de9-a824-411a4cf472c2"},{"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/07f343b2-b24d-4a07-95f0-067a905f87b8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d"}}},"level":"info","message":"received a callback","requestID":"1f583507c33feca3d0b7d41ed8d78fde"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"54152f00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d 204 49ms","method":"DELETE","requestID":"54152f00-2b5e-11f0-8e1f-5304d0938eae","responseTime":49,"status":204,"url":"/peerconnections/9d36e83e-bd36-49ee-8ce6-77fcf316116d"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"},"level":"info","message":"Successfully finished experiment","requestID":"e45db5d630930939d876e3de64f772b7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"541fdd60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c44168d-568d-4de9-a824-411a4cf472c2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7ef5a05d-727f-40f4-96b2-6d00f6af22f5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.6834562} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.525576,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"541fdd60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c44168d-568d-4de9-a824-411a4cf472c2","object_type":"device","rebac_allow":false,"scope_allow":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":"541fdd60-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"541fdd60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling 200 33ms","method":"POST","requestID":"541fdd60-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/4c44168d-568d-4de9-a824-411a4cf472c2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"54253490-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60ed6a49-7e05-4562-b108-81cb5a7b6670': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60ed6a49-7e05-4562-b108-81cb5a7b6670","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"592f105e-0e3e-48aa-8883-12958fb6cb37","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.715509} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38c4a912-587c-4401-8e78-4787c77557ac","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.7158556} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"e45db5d630930939d876e3de64f772b7","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07f343b2-b24d-4a07-95f0-067a905f87b8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bc97f8b3-9531-454b-8d32-c662c1af8ba5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.7177413} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.333402,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"54253490-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8","object_type":"device","rebac_allow":false,"scope_allow":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":"54253490-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"54253490-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling 200 8ms","method":"POST","requestID":"54253490-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/07f343b2-b24d-4a07-95f0-067a905f87b8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670","requestID":"e45db5d630930939d876e3de64f772b7"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670 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":"e45db5d630930939d876e3de64f772b7"} experiment-1 | {"level":"info","message":"DELETE /experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670 204 235ms","method":"DELETE","requestID":"e45db5d630930939d876e3de64f772b7","responseTime":235,"status":204,"url":"/experiments/60ed6a49-7e05-4562-b108-81cb5a7b6670"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2751","request_time":"2.877","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"12e700971a7ff8c164b05d9d24746e3e"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2749","request_time":"2.868","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"7634a92ea1b640e78b9524c7ab576332"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"f0cdd1ad83f8e93157a74ded115ffed3","responseTime":190,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"f0cdd1ad83f8e93157a74ded115ffed3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"1f583507c33feca3d0b7d41ed8d78fde","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"1f583507c33feca3d0b7d41ed8d78fde"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME","level":"info","message":"auth send jwt","requestID":"471c1f66e9a5b92af83786697e4250af"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"471c1f66e9a5b92af83786697e4250af","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"471c1f66e9a5b92af83786697e4250af"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.089128,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"471c1f66e9a5b92af83786697e4250af","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634458,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"471c1f66e9a5b92af83786697e4250af","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/4c44168d-568d-4de9-a824-411a4cf472c2' closed"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/07f343b2-b24d-4a07-95f0-067a905f87b8' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"37251a19-c11b-4055-ba38-768f21e208c5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.8581328} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"471c1f66e9a5b92af83786697e4250af","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b13642b2-184f-49ac-9249-108a61b30299","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.8631382} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"471c1f66e9a5b92af83786697e4250af","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"280ab250-b33c-4a52-b904-18be597705fb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.8730664} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c24384dc-04da-4cc5-9a15-4bc85556d078","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.8733306} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"471c1f66e9a5b92af83786697e4250af","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.873031095Z"}]},"request_id":"253a3b40-4bb0-4431-bde9-a77754313a84","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.9013908} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"471c1f66e9a5b92af83786697e4250af","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"471c1f66e9a5b92af83786697e4250af"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.092","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"471c1f66e9a5b92af83786697e4250af"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"471c1f66e9a5b92af83786697e4250af","responseTime":87,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME","level":"info","message":"auth send jwt","requestID":"85b73d2d3120096694df673788c95c5b"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"85b73d2d3120096694df673788c95c5b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"85b73d2d3120096694df673788c95c5b"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.765548,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"85b73d2d3120096694df673788c95c5b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634458,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OH0.GrZzvZbEhJn_-V94YCOeI5n2vVLLGJIV-NayrxEyCME"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"85b73d2d3120096694df673788c95c5b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b8b3f2c5-e1f8-41e3-b8cf-d1bd984b289c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.9458766} authorization-1 | {"level":"info","message":"POST /relations/query 200 25ms","method":"POST","requestID":"85b73d2d3120096694df673788c95c5b","responseTime":25,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f839dc9-65b2-443e-ab2b-24bcf970257f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.9533515} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"85b73d2d3120096694df673788c95c5b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"ccea349e-0048-434c-b32f-8a3baec57adf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.966598} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"02eb9920-16ab-43a7-9a85-98e66b503703","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.9667137} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"85b73d2d3120096694df673788c95c5b","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.966559623Z"}]},"request_id":"86087e91-874d-4655-912d-c9e92404dfdd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634458.996326} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"85b73d2d3120096694df673788c95c5b","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"85b73d2d3120096694df673788c95c5b"} gateway-1 | {"time_local":"07/May/2025:16:14:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"85b73d2d3120096694df673788c95c5b"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"85b73d2d3120096694df673788c95c5b","responseTime":89,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA","level":"info","message":"auth send jwt","requestID":"46413864153ffa1ea36fd609417f8fd4"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"46413864153ffa1ea36fd609417f8fd4","responseTime":28,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"46413864153ffa1ea36fd609417f8fd4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA","level":"info","message":"auth send jwt","requestID":"fc3301d12d22e61c6ad375a162dba1fb"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"fc3301d12d22e61c6ad375a162dba1fb","responseTime":28,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:19Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"fc3301d12d22e61c6ad375a162dba1fb"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.630125,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:19Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"46413864153ffa1ea36fd609417f8fd4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634459,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"46413864153ffa1ea36fd609417f8fd4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695536,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"fc3301d12d22e61c6ad375a162dba1fb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634459,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fc3301d12d22e61c6ad375a162dba1fb","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.966559623Z"}]},"request_id":"49d358f4-424f-49f8-90ba-bcca392568cf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634459.91392} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"46413864153ffa1ea36fd609417f8fd4","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.873031095Z"}]},"request_id":"74836221-9d58-464e-96a6-62ea85eba606","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634459.9144354} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fc3301d12d22e61c6ad375a162dba1fb","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e9bd6b2-6145-486a-8a00-9526f52f294d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634459.9179225} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"46413864153ffa1ea36fd609417f8fd4","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a68750fc-1e62-4548-84ba-41a785b3f0d2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634459.9188755} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fc3301d12d22e61c6ad375a162dba1fb","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.873031095Z"}]},"request_id":"b713245a-23e6-4f11-be22-3fd076fc2426","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634459.9214118} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fc3301d12d22e61c6ad375a162dba1fb","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"fc3301d12d22e61c6ad375a162dba1fb"} gateway-1 | {"time_local":"07/May/2025:16:14:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.044","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"fc3301d12d22e61c6ad375a162dba1fb"} device-1 | {"level":"info","message":"PATCH /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad 200 16ms","method":"PATCH","requestID":"fc3301d12d22e61c6ad375a162dba1fb","responseTime":16,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA","level":"info","message":"auth send jwt","requestID":"bfc0333c7a42d89291b41695cf623057"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bfc0333c7a42d89291b41695cf623057","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"bfc0333c7a42d89291b41695cf623057"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:19Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.04294,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bfc0333c7a42d89291b41695cf623057","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634459,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"bfc0333c7a42d89291b41695cf623057","responseTime":30,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.966559623Z"}]},"request_id":"4254f25c-32ff-48fd-907b-b01063c18a7d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634459.9533546} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"46413864153ffa1ea36fd609417f8fd4","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"46413864153ffa1ea36fd609417f8fd4"} gateway-1 | {"time_local":"07/May/2025:16:14:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.082","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"46413864153ffa1ea36fd609417f8fd4"} device-1 | {"level":"info","message":"PATCH /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c 200 54ms","method":"PATCH","requestID":"46413864153ffa1ea36fd609417f8fd4","responseTime":54,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA","level":"info","message":"auth send jwt","requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:19Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642016,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:19Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634459,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ1OX0.eMkPvmTXfbDiTA3Fbk82Dk4nUayq828eB2O1iQAlsqA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"bfc0333c7a42d89291b41695cf623057"} device-1 | {"level":"info","message":"POST /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/websocket 200 42ms","method":"POST","requestID":"bfc0333c7a42d89291b41695cf623057","responseTime":42,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/websocket"} gateway-1 | {"time_local":"07/May/2025:16:14:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/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.18","requestID":"bfc0333c7a42d89291b41695cf623057"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023"} gateway-1 | {"time_local":"07/May/2025:16:14:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/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.18","requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023"} device-1 | {"level":"info","message":"POST /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/websocket 200 14ms","method":"POST","requestID":"cb93e2a41d4eb9a6511f9f94dc4bb023","responseTime":14,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0","level":"info","message":"auth send jwt","requestID":"75b6d4ff95b082bea6aa93f60469c5c4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"75b6d4ff95b082bea6aa93f60469c5c4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"75b6d4ff95b082bea6aa93f60469c5c4"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.698477,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"75b6d4ff95b082bea6aa93f60469c5c4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"75b6d4ff95b082bea6aa93f60469c5c4","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.873031095Z"}]},"request_id":"7257316e-81b0-439f-9a2b-e3cdb60225a5","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.0521579} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"75b6d4ff95b082bea6aa93f60469c5c4","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"75b6d4ff95b082bea6aa93f60469c5c4"} device-1 | {"level":"info","message":"GET /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad? 200 32ms","method":"GET","requestID":"75b6d4ff95b082bea6aa93f60469c5c4","responseTime":32,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad?"} gateway-1 | {"time_local":"07/May/2025:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad? 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":"75b6d4ff95b082bea6aa93f60469c5c4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0","level":"info","message":"auth send jwt","requestID":"56ddbe25c9204d32357240d92e4779a2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"56ddbe25c9204d32357240d92e4779a2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"56ddbe25c9204d32357240d92e4779a2"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.760383,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"56ddbe25c9204d32357240d92e4779a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"56ddbe25c9204d32357240d92e4779a2","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.966559623Z"}]},"request_id":"3162e86e-cef9-409a-acfe-389b13cc4335","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.0646021} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"56ddbe25c9204d32357240d92e4779a2","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"56ddbe25c9204d32357240d92e4779a2"} gateway-1 | {"time_local":"07/May/2025:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c? 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":"56ddbe25c9204d32357240d92e4779a2"} device-1 | {"level":"info","message":"GET /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c? 200 10ms","method":"GET","requestID":"56ddbe25c9204d32357240d92e4779a2","responseTime":10,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0","level":"info","message":"auth send jwt","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9b44c9581b7cd40cb939cf18cb2e706c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.951198,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9b44c9581b7cd40cb939cf18cb2e706c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"9b44c9581b7cd40cb939cf18cb2e706c","responseTime":7,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Attempting to run experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Attempting to book experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully booked experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"550115a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"55013cb0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.844418,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"550115a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"550115a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.584385,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"55013cb0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"55013cb0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.873031095Z"}]},"request_id":"5b28164c-4f7f-4312-b97a-76fd41228e45","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.1633437} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"550115a0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.966559623Z"}]},"request_id":"d72d12c1-e330-4886-a676-8fbee0362c69","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.1641665} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"55013cb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"550115a0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad? 200 13ms","method":"GET","requestID":"550115a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"55013cb0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c? 200 13ms","method":"GET","requestID":"55013cb0-2b5e-11f0-8e1f-5304d0938eae","responseTime":13,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Setting up experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully locked booking for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Attempting to update booking for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully updated booking for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully set up experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"550fbba0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"551009c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"551030d0-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully running experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.917172,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"550fbba0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"550fbba0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.753165,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"551009c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"551009c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d1be57af-2d31-4ed2-b635-01c679646c2a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.2587907} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.882768,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"551030d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","rebac_allow":false,"scope_allow":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":"551030d0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.873031095Z"}]},"request_id":"b1d8c48a-5fa6-42cd-a376-b0fe2b857bb7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.2602665} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.966559623Z"}]},"request_id":"b4c3734c-727d-43ea-b4bf-675cb3eef247","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.2612176} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"550fbba0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"551009c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"551030d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling 200 37ms","method":"POST","requestID":"551030d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"550fbba0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad? 200 41ms","method":"GET","requestID":"550fbba0-2b5e-11f0-8e1f-5304d0938eae","responseTime":41,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff98dd1da-a586-457e-9298-53410430ddda#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff98dd1da-a586-457e-9298-53410430ddda","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"38756a45-3be3-41e1-bc96-e95cd78f2804","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.2909834} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a64ec0f-ef1d-44d3-9d88-d7c16b66c082","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.2913465} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"551009c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c? 200 40ms","method":"GET","requestID":"551009c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":40,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"9b44c9581b7cd40cb939cf18cb2e706c","responseTime":37,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"55164b50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"55167260-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0c55eef6-8340-4489-8b2a-0ed7fcef598a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.2975724} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.957243,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"55164b50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","rebac_allow":false,"scope_allow":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":"55164b50-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f47c1549-d313-4b3a-bfbe-ac36868d776c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.2992904} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.902861,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"55167260-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","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/f98dd1da-a586-457e-9298-53410430ddda","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"55167260-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"07/May/2025:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.232","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"level":"info","message":"POST /experiments? 201 204ms","method":"POST","requestID":"9b44c9581b7cd40cb939cf18cb2e706c","responseTime":204,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"55164b50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling 200 12ms","method":"POST","requestID":"55164b50-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"55167260-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0","level":"info","message":"auth send jwt","requestID":"518bcdf1bd670c4850cc9a60ef646925"} device-1 | {"level":"info","message":"POST /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling 200 12ms","method":"POST","requestID":"55167260-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"518bcdf1bd670c4850cc9a60ef646925","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"518bcdf1bd670c4850cc9a60ef646925"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"55189540-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:32862","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.889357,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"518bcdf1bd670c4850cc9a60ef646925","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"518bcdf1bd670c4850cc9a60ef646925","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7019a369-d66a-4a6f-942a-e9692c2ef7f3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.3125503} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.892438,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"55189540-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","rebac_allow":false,"scope_allow":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":"55189540-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.873031095Z"}]},"request_id":"a71b65a2-bc42-48ac-a5a9-1b696f4fcde8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.3388398} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"518bcdf1bd670c4850cc9a60ef646925","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"55189540-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling 200 34ms","method":"POST","requestID":"55189540-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"518bcdf1bd670c4850cc9a60ef646925"} device-1 | {"level":"info","message":"GET /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad? 200 36ms","method":"GET","requestID":"518bcdf1bd670c4850cc9a60ef646925","responseTime":36,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad?"} gateway-1 | {"time_local":"07/May/2025:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad? 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":"518bcdf1bd670c4850cc9a60ef646925"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Building connection plan","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} 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":"243e07c9-872a-41da-9e88-98c026fbcf27"},{"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":"54183cfc-7446-41e3-b90c-c88e40c49abd"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"5bc24e90-3cfb-4cd2-aaa4-100d2e80d72e"}]},"level":"info","message":"Built pairwise service configurations","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} 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/c41527ec-fe1e-42f3-ad59-e590a76e87ad"},{"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/fda1c615-3cb3-4a64-8d22-3eaba804926c"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0","level":"info","message":"auth send jwt","requestID":"804498e620c86bd5ebf5c732e3d296a7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"804498e620c86bd5ebf5c732e3d296a7","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"804498e620c86bd5ebf5c732e3d296a7"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.72478,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.832076,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"804498e620c86bd5ebf5c732e3d296a7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634460,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2MH0.RttoLWVJsw3s1P6DzRdh7D7wm55MVHSzoMTRCDd0jK0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"804498e620c86bd5ebf5c732e3d296a7","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:18.966559623Z"}]},"request_id":"71b1adf0-9f5b-400b-b945-fd2f64eea2ac","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.3544312} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"804498e620c86bd5ebf5c732e3d296a7","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"eca788f2-d08b-43f4-994d-a32190559ec6","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.3572135} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb6611fb-2521-4291-b5a3-cb730dcc1275","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.3573754} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"804498e620c86bd5ebf5c732e3d296a7"} gateway-1 | {"time_local":"07/May/2025:16:14:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c? 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":"804498e620c86bd5ebf5c732e3d296a7"} device-1 | {"level":"info","message":"GET /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c? 200 11ms","method":"GET","requestID":"804498e620c86bd5ebf5c732e3d296a7","responseTime":11,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49'","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49'","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 48ms","method":"POST","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae","responseTime":48,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"551e3a90-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"9b44c9581b7cd40cb939cf18cb2e706c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"552cb980-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53834c70-564f-4b43-afeb-a0ffb998d687","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.4441733} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.196131,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"552cb980-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","rebac_allow":false,"scope_allow":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":"552cb980-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"552cb980-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling 200 8ms","method":"POST","requestID":"552cb980-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"552e1910-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9461988-01a7-45a4-906b-6d2f47eb4ea8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634460.4529765} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.187096,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"552e1910-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","rebac_allow":false,"scope_allow":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":"552e1910-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"552e1910-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling 200 7ms","method":"POST","requestID":"552e1910-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling"} device-1 | {"device":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8b1fd8d2-5986-440a-a917-347e8b69be49","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8b1fd8d2-5986-440a-a917-347e8b69be49","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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/8b1fd8d2-5986-440a-a917-347e8b69be49' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8b1fd8d2-5986-440a-a917-347e8b69be49","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b62e305683a0f17a3c51f0bf8c9c9a67","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b62e305683a0f17a3c51f0bf8c9c9a67","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/c41527ec-fe1e-42f3-ad59-e590a76e87ad"},{"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/fda1c615-3cb3-4a64-8d22-3eaba804926c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49"}}},"level":"info","message":"received a callback","requestID":"b62e305683a0f17a3c51f0bf8c9c9a67"} device-1 | {"device":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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 29ms","method":"POST","requestID":"b62e305683a0f17a3c51f0bf8c9c9a67","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"b62e305683a0f17a3c51f0bf8c9c9a67"} device-1 | {"device":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8b1fd8d2-5986-440a-a917-347e8b69be49","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"8b1fd8d2-5986-440a-a917-347e8b69be49","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/8b1fd8d2-5986-440a-a917-347e8b69be49' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8b1fd8d2-5986-440a-a917-347e8b69be49","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6cd418278bacfe4ab914b6409a81734e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6cd418278bacfe4ab914b6409a81734e","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/c41527ec-fe1e-42f3-ad59-e590a76e87ad"},{"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/fda1c615-3cb3-4a64-8d22-3eaba804926c"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49"}}},"level":"info","message":"received a callback","requestID":"6cd418278bacfe4ab914b6409a81734e"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"5666c020-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8b1fd8d2-5986-440a-a917-347e8b69be49","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cb12ae12-0383-4a99-8cd2-e07a58e2b93c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.502262} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.111391,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5666c020-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49","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":"5666c020-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"5666c020-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49 200 9ms","method":"GET","requestID":"5666c020-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"6cd418278bacfe4ab914b6409a81734e","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"6cd418278bacfe4ab914b6409a81734e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"566a1b80-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ccd7335b-d542-45d1-b9be-a93b67a921bb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.548979} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.746719,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"566a1b80-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","rebac_allow":false,"scope_allow":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":"566a1b80-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"566a1b80-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling 200 32ms","method":"POST","requestID":"566a1b80-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"566f4ba0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8e069259-7577-435d-802f-9c0fa9bee8f3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.5577855} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.247557,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"566f4ba0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","rebac_allow":false,"scope_allow":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":"566f4ba0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"566f4ba0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling 200 7ms","method":"POST","requestID":"566f4ba0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4","level":"info","message":"auth send jwt","requestID":"a0e715224f0e88176898d220f0a5633f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a0e715224f0e88176898d220f0a5633f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f98dd1da-a586-457e-9298-53410430ddda","requestID":"a0e715224f0e88176898d220f0a5633f"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.612633,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"a0e715224f0e88176898d220f0a5633f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634462,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a0e715224f0e88176898d220f0a5633f","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/f98dd1da-a586-457e-9298-53410430ddda","requestID":"a0e715224f0e88176898d220f0a5633f"} experiment-1 | {"level":"info","message":"GET /experiments/f98dd1da-a586-457e-9298-53410430ddda 200 36ms","method":"GET","requestID":"a0e715224f0e88176898d220f0a5633f","responseTime":36,"status":200,"url":"/experiments/f98dd1da-a586-457e-9298-53410430ddda"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f98dd1da-a586-457e-9298-53410430ddda HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a0e715224f0e88176898d220f0a5633f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4","level":"info","message":"auth send jwt","requestID":"b5f2a6f3572fc7debfb3654ff2557a60"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b5f2a6f3572fc7debfb3654ff2557a60","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f98dd1da-a586-457e-9298-53410430ddda","requestID":"b5f2a6f3572fc7debfb3654ff2557a60"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.734143,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"b5f2a6f3572fc7debfb3654ff2557a60","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634462,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b5f2a6f3572fc7debfb3654ff2557a60","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Attempting to finish experiment","requestID":"b5f2a6f3572fc7debfb3654ff2557a60"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"56782540-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.658871,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"56782540-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634462,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"56782540-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"c41527ec-fe1e-42f3-ad59-e590a76e87ad","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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":"fda1c615-3cb3-4a64-8d22-3eaba804926c","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":44,"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/8b1fd8d2-5986-440a-a917-347e8b69be49' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8b1fd8d2-5986-440a-a917-347e8b69be49","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8b1fd8d2-5986-440a-a917-347e8b69be49': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8b1fd8d2-5986-440a-a917-347e8b69be49","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"324b738d-a301-447f-84d6-b39aaa686a23","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.6499813} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9e636ee3-2b67-4fdd-82b4-d4dafd939833","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.6501956} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6511d23df7a8efd3170bb20691db0324","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6511d23df7a8efd3170bb20691db0324","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"56782540-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"94af6d807fa804b8fdc13717bc845a22","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/c41527ec-fe1e-42f3-ad59-e590a76e87ad"},{"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/fda1c615-3cb3-4a64-8d22-3eaba804926c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49"}}},"level":"info","message":"received a callback","requestID":"6511d23df7a8efd3170bb20691db0324"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"94af6d807fa804b8fdc13717bc845a22","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/c41527ec-fe1e-42f3-ad59-e590a76e87ad"},{"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/fda1c615-3cb3-4a64-8d22-3eaba804926c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49"}}},"level":"info","message":"received a callback","requestID":"94af6d807fa804b8fdc13717bc845a22"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"56782540-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49 204 52ms","method":"DELETE","requestID":"56782540-2b5e-11f0-8e1f-5304d0938eae","responseTime":52,"status":204,"url":"/peerconnections/8b1fd8d2-5986-440a-a917-347e8b69be49"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f98dd1da-a586-457e-9298-53410430ddda"},"level":"info","message":"Successfully finished experiment","requestID":"b5f2a6f3572fc7debfb3654ff2557a60"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5685b9d0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc41527ec-fe1e-42f3-ad59-e590a76e87ad","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7b04af21-74dc-4821-84e8-d64605fcb215","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.7047715} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.292739,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5685b9d0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad","object_type":"device","rebac_allow":false,"scope_allow":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":"5685b9d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5685b9d0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling 200 8ms","method":"POST","requestID":"5685b9d0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"56874070-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff98dd1da-a586-457e-9298-53410430ddda': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff98dd1da-a586-457e-9298-53410430ddda","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"0b50ac8a-2a13-4aaf-a8e6-213d10015b34","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.7149665} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e9a0a78-21fd-4e46-b077-5defbcdab14e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.715055} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"b5f2a6f3572fc7debfb3654ff2557a60","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffda1c615-3cb3-4a64-8d22-3eaba804926c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"903604dc-9abe-43f3-ac47-93df28794a84","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.741715} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":29.386564,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"56874070-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c","object_type":"device","rebac_allow":false,"scope_allow":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":"56874070-2b5e-11f0-8e1f-5304d0938eae","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"56874070-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling 200 34ms","method":"POST","requestID":"56874070-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/fda1c615-3cb3-4a64-8d22-3eaba804926c/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f98dd1da-a586-457e-9298-53410430ddda","requestID":"b5f2a6f3572fc7debfb3654ff2557a60"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f98dd1da-a586-457e-9298-53410430ddda 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":"b5f2a6f3572fc7debfb3654ff2557a60"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2751","request_time":"2.837","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"14459cc5bcd39b1f0a6c4ac1b98b1de8"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2749","request_time":"2.829","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.18","requestID":"ef27d41a064b5bd951154a0d1d5a6c64"} experiment-1 | {"level":"info","message":"DELETE /experiments/f98dd1da-a586-457e-9298-53410430ddda 204 205ms","method":"DELETE","requestID":"b5f2a6f3572fc7debfb3654ff2557a60","responseTime":205,"status":204,"url":"/experiments/f98dd1da-a586-457e-9298-53410430ddda"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 182ms","method":"POST","requestID":"6511d23df7a8efd3170bb20691db0324","responseTime":182,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch","requestID":"6511d23df7a8efd3170bb20691db0324"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 184ms","method":"POST","requestID":"94af6d807fa804b8fdc13717bc845a22","responseTime":184,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch","requestID":"94af6d807fa804b8fdc13717bc845a22"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c41527ec-fe1e-42f3-ad59-e590a76e87ad' closed"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4","level":"info","message":"auth send jwt","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.803131,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634462,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","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/fda1c615-3cb3-4a64-8d22-3eaba804926c' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"793f0885-672c-47d6-b014-2a294f043a6c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.8818629} authorization-1 | {"level":"info","message":"POST /relations/query 200 30ms","method":"POST","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","responseTime":30,"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9f6ff858-7069-420e-a32b-17e0e29bcc55","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.8893993} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"ca35679e-932a-421a-97f3-164489f99d9f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.8988323} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a93ede2d-37d3-43a8-82c4-4dd791c0ae85","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.898952} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.898796071Z"}]},"request_id":"a365b52b-0b1c-4981-b9e2-6de0b492a4e4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.9032273} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8"} gateway-1 | {"time_local":"07/May/2025:16:14:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"bd2ec69b43c9b65600eb55fde79bd4a8","responseTime":86,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4","level":"info","message":"auth send jwt","requestID":"c80c8aa65a0183d25ae08f78f218586f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c80c8aa65a0183d25ae08f78f218586f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c80c8aa65a0183d25ae08f78f218586f"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.989493,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"c80c8aa65a0183d25ae08f78f218586f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634462,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Mn0.oVwHMu9x8ExrKmEAd4FUjHKVEkxsjM_8JKgY2LgFJM4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c80c8aa65a0183d25ae08f78f218586f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"751fd956-5103-4abe-b2ab-75497c3eb2cd","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.9782794} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"c80c8aa65a0183d25ae08f78f218586f","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9ccc248-e530-409d-9254-ebae9bd5fdfc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.9839778} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"c80c8aa65a0183d25ae08f78f218586f","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"4dfad71c-78fa-4131-a91b-3effea62a760","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.994854} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38ba580f-59b1-4fbe-bdb4-d6affa90852c","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.994972} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"c80c8aa65a0183d25ae08f78f218586f","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.994816489Z"}]},"request_id":"53f384c5-d07a-4751-b177-80a06e6f0bf4","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634462.9995987} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c80c8aa65a0183d25ae08f78f218586f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c80c8aa65a0183d25ae08f78f218586f"} gateway-1 | {"time_local":"07/May/2025:16:14:23 +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":"c80c8aa65a0183d25ae08f78f218586f"} device-1 | {"level":"info","message":"POST /devices? 201 91ms","method":"POST","requestID":"c80c8aa65a0183d25ae08f78f218586f","responseTime":91,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"850dcccac5cc5532a8028bd39139141f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"850dcccac5cc5532a8028bd39139141f","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/9926ae61-0a63-4792-83cc-c986586e7797/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":"850dcccac5cc5532a8028bd39139141f"} device-1 | {"level":"info","message":"OPTIONS /devices/9926ae61-0a63-4792-83cc-c986586e7797/websocket 200 1ms","method":"OPTIONS","requestID":"850dcccac5cc5532a8028bd39139141f","responseTime":1,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y","level":"info","message":"auth send jwt","requestID":"b4c61dc081110344b811e95843166051"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b4c61dc081110344b811e95843166051","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"b4c61dc081110344b811e95843166051"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.846484,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"b4c61dc081110344b811e95843166051","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b4c61dc081110344b811e95843166051","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"b4c61dc081110344b811e95843166051"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9926ae61-0a63-4792-83cc-c986586e7797/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b4c61dc081110344b811e95843166051"} device-1 | {"level":"info","message":"POST /devices/9926ae61-0a63-4792-83cc-c986586e7797/websocket 200 13ms","method":"POST","requestID":"b4c61dc081110344b811e95843166051","responseTime":13,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"12660b8f09ae2daa34b77925f5b3da91","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"12660b8f09ae2daa34b77925f5b3da91","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/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":"12660b8f09ae2daa34b77925f5b3da91"} device-1 | {"level":"info","message":"OPTIONS /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/websocket 200 1ms","method":"OPTIONS","requestID":"12660b8f09ae2daa34b77925f5b3da91","responseTime":1,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y","level":"info","message":"auth send jwt","requestID":"4ab8d2fd492dde935946df8ceed7a232"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4ab8d2fd492dde935946df8ceed7a232","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"4ab8d2fd492dde935946df8ceed7a232"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650559,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"4ab8d2fd492dde935946df8ceed7a232","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"4ab8d2fd492dde935946df8ceed7a232","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"4ab8d2fd492dde935946df8ceed7a232"} device-1 | {"level":"info","message":"POST /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/websocket 200 12ms","method":"POST","requestID":"4ab8d2fd492dde935946df8ceed7a232","responseTime":12,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1/websocket"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4ab8d2fd492dde935946df8ceed7a232"} device-1 | {"level":"info","message":"device 'http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y","level":"info","message":"auth send jwt","requestID":"9848572ddb57c60a664aefee340f2baf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9848572ddb57c60a664aefee340f2baf","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9848572ddb57c60a664aefee340f2baf"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672361,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"9848572ddb57c60a664aefee340f2baf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"9848572ddb57c60a664aefee340f2baf","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.898796071Z"}]},"request_id":"f03c60bf-11cb-41bc-aafc-e3e48d9e64fe","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.5222402} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"9848572ddb57c60a664aefee340f2baf","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9848572ddb57c60a664aefee340f2baf"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9926ae61-0a63-4792-83cc-c986586e7797? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9848572ddb57c60a664aefee340f2baf"} device-1 | {"level":"info","message":"GET /devices/9926ae61-0a63-4792-83cc-c986586e7797? 200 32ms","method":"GET","requestID":"9848572ddb57c60a664aefee340f2baf","responseTime":32,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y","level":"info","message":"auth send jwt","requestID":"98b566adbb384a3159d7f0f848e375cb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"98b566adbb384a3159d7f0f848e375cb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"98b566adbb384a3159d7f0f848e375cb"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.895778,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"98b566adbb384a3159d7f0f848e375cb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"98b566adbb384a3159d7f0f848e375cb","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.994816489Z"}]},"request_id":"c44e0ba4-1e6f-45d9-9beb-930fbda9d999","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.5344965} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"98b566adbb384a3159d7f0f848e375cb","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"98b566adbb384a3159d7f0f848e375cb"} device-1 | {"level":"info","message":"GET /devices/26db9717-3371-4799-9c6f-4b6743e36bb1? 200 9ms","method":"GET","requestID":"98b566adbb384a3159d7f0f848e375cb","responseTime":9,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1?"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/26db9717-3371-4799-9c6f-4b6743e36bb1? 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":"98b566adbb384a3159d7f0f848e375cb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y","level":"info","message":"auth send jwt","requestID":"18e2e1a1748237a0f7fef209310e36f8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"18e2e1a1748237a0f7fef209310e36f8","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"18e2e1a1748237a0f7fef209310e36f8"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":25.64455,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"18e2e1a1748237a0f7fef209310e36f8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"18e2e1a1748237a0f7fef209310e36f8","responseTime":28,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Attempting to run experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Attempting to book experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully booked experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"583f50b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5842ac10-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.569611,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"583f50b0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"583f50b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.079336,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5842ac10-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5842ac10-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.898796071Z"}]},"request_id":"3d3721b6-c6c4-4271-ae83-e01deba7fc18","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.62607} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"583f50b0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.994816489Z"}]},"request_id":"771f9e63-e7aa-41fc-bfb9-593777ae6626","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.6269968} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5842ac10-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"583f50b0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/9926ae61-0a63-4792-83cc-c986586e7797? 200 36ms","method":"GET","requestID":"583f50b0-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5842ac10-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/26db9717-3371-4799-9c6f-4b6743e36bb1? 200 14ms","method":"GET","requestID":"5842ac10-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Setting up experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully locked booking for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Attempting to update booking for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully updated booking for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully set up experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"584d3360-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"584d5a70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58515210-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully running experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68114,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"584d3360-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"584d3360-2b5e-11f0-8e1f-5304d0938eae","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.430617,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"584d5a70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"584d5a70-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de3203c8-4c20-4741-a092-b854bb916598","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.7178512} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.451247,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58515210-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","rebac_allow":false,"scope_allow":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":"58515210-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.898796071Z"}]},"request_id":"6afaabcb-6b81-463d-9dfc-7d48c8dc6caa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.720186} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"584d3360-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.994816489Z"}]},"request_id":"e1f9a81a-f7d8-4a54-88e7-eb0d46d466a8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.7219367} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"584d5a70-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58515210-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling 200 14ms","method":"POST","requestID":"58515210-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"584d3360-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/9926ae61-0a63-4792-83cc-c986586e7797? 200 43ms","method":"GET","requestID":"584d3360-2b5e-11f0-8e1f-5304d0938eae","responseTime":43,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"584d5a70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/26db9717-3371-4799-9c6f-4b6743e36bb1? 200 43ms","method":"GET","requestID":"584d5a70-2b5e-11f0-8e1f-5304d0938eae","responseTime":43,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F947d6456-9eef-4933-b28c-bc8c4ba7370b#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F947d6456-9eef-4933-b28c-bc8c4ba7370b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"ca430884-1fa9-4dba-b916-b3b8fc6a7cc9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.7304914} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58541130-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee27e390-8589-4ad3-8627-9183fe181424","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.7307448} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"18e2e1a1748237a0f7fef209310e36f8","responseTime":16,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58543840-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"698694bc-cd98-4577-a0ef-2b7c69298d60","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.7359188} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.864441,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58541130-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","rebac_allow":false,"scope_allow":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":"58541130-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"18e2e1a1748237a0f7fef209310e36f8"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3356eee3-91a9-45d3-8603-e2bdcc388870","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.7609477} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.83129,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} experiment-1 | {"level":"info","message":"POST /experiments? 201 220ms","method":"POST","requestID":"18e2e1a1748237a0f7fef209310e36f8","responseTime":220,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.224","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"18e2e1a1748237a0f7fef209310e36f8"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58543840-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","rebac_allow":false,"scope_allow":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":"58543840-2b5e-11f0-8e1f-5304d0938eae","responseTime":30,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y","level":"info","message":"auth send jwt","requestID":"88007b0b0684fb251630e1d8de091916"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58543840-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"88007b0b0684fb251630e1d8de091916","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling 200 35ms","method":"POST","requestID":"58543840-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58541130-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling 200 37ms","method":"POST","requestID":"58541130-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5859dd90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"88007b0b0684fb251630e1d8de091916"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644601,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"88007b0b0684fb251630e1d8de091916","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"88007b0b0684fb251630e1d8de091916","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92e51456-c5f8-4786-96fc-8e5e8b8f5fcf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.773573} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.210186,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5859dd90-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","rebac_allow":false,"scope_allow":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":"5859dd90-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.898796071Z"}]},"request_id":"2a1af9bf-8d1c-4e49-893c-e89f1698fb45","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.7768955} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"88007b0b0684fb251630e1d8de091916","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5859dd90-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling 200 10ms","method":"POST","requestID":"5859dd90-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Building connection plan","requestID":"18e2e1a1748237a0f7fef209310e36f8"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"d80600a9-45f4-475b-a3bf-4ec88c0efb59"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"eeb5c8a7-1969-4ac1-9365-7513153f8c0b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3236ba58-78e8-4658-a9eb-8cc809a6209d"}]},"level":"info","message":"Built pairwise service configurations","requestID":"18e2e1a1748237a0f7fef209310e36f8"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"88007b0b0684fb251630e1d8de091916"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"18e2e1a1748237a0f7fef209310e36f8"} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9926ae61-0a63-4792-83cc-c986586e7797? 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":"88007b0b0684fb251630e1d8de091916"} device-1 | {"level":"info","message":"GET /devices/9926ae61-0a63-4792-83cc-c986586e7797? 200 10ms","method":"GET","requestID":"88007b0b0684fb251630e1d8de091916","responseTime":10,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797?"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y","level":"info","message":"auth send jwt","requestID":"6a23400151485e97c6a98ed530dd51cd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6a23400151485e97c6a98ed530dd51cd","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.727578,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6a23400151485e97c6a98ed530dd51cd"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae","responseTime":26,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.645693,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6a23400151485e97c6a98ed530dd51cd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634465,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2NX0.M5n16VOpJhQ2PM1qjU5xAR570BE_lQXGsXgrUpv0U3Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6a23400151485e97c6a98ed530dd51cd","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:22.994816489Z"}]},"request_id":"399543fa-e984-42b7-a8b1-d8c90b8a25e9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.8164942} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6a23400151485e97c6a98ed530dd51cd","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"7c1e3f36-f239-4786-bc1c-d08a054d0d37","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.8191261} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6a23400151485e97c6a98ed530dd51cd"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fae13415-1204-4b9b-a638-a6fe6339eb17","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.819285} gateway-1 | {"time_local":"07/May/2025:16:14:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/26db9717-3371-4799-9c6f-4b6743e36bb1? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6a23400151485e97c6a98ed530dd51cd"} device-1 | {"level":"info","message":"GET /devices/26db9717-3371-4799-9c6f-4b6743e36bb1? 200 11ms","method":"GET","requestID":"6a23400151485e97c6a98ed530dd51cd","responseTime":11,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4'","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4'","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 50ms","method":"POST","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae","responseTime":50,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"585bb250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","device":"26db9717-3371-4799-9c6f-4b6743e36bb1","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/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","device":"9926ae61-0a63-4792-83cc-c986586e7797","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/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"18e2e1a1748237a0f7fef209310e36f8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"586a7f60-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ae26661-fb8c-4476-b02a-f52bd3521d4e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.90736} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.4195,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"586a7f60-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","rebac_allow":false,"scope_allow":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":"586a7f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"26db9717-3371-4799-9c6f-4b6743e36bb1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"26db9717-3371-4799-9c6f-4b6743e36bb1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"586a7f60-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling 200 36ms","method":"POST","requestID":"586a7f60-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58704bc0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4e09eda3-b125-4d5f-8c86-7f84c3097b65","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634465.920686} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.740772,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58704bc0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","rebac_allow":false,"scope_allow":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":"58704bc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 6424886133053174159 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:l7Pd\r\na=ice-pwd:6HuMVkvpQC1XpiGZ4fIj94/j\r\na=ice-options:trickle\r\na=fingerprint:sha-256 70:5E:4A:01:6D:07:24:DA:74:D4:1F:3F:BF:C1:6C:BC:E5:3D:E2:F5:CC:A2:3C:EB:22:3D:08:C8:92:92:48:82\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"26db9717-3371-4799-9c6f-4b6743e36bb1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58704bc0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling 200 10ms","method":"POST","requestID":"58704bc0-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 6880280502010489382 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:9ppM\r\na=ice-pwd:kLcgO7wVe5FsI6qbrd4Bs9Ue\r\na=ice-options:trickle\r\na=fingerprint:sha-256 A1:97:D0:77:0F:E4:59:BB:6F:12:BF:DF:EE:B6:E4:DC:0A:0D:1D:C6:CF:03:56:03:D3:C5:25:8E:1B:F5:BA:27\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3064406989 1 udp 2113937151 be8e00f3-f113-489d-b354-bb87c3820459.local 46351 typ host generation 0 ufrag 9ppM network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"9926ae61-0a63-4792-83cc-c986586e7797","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/9926ae61-0a63-4792-83cc-c986586e7797'"} device-1 | {"content":{"candidate":"candidate:2261921615 1 udp 2113937151 93a01e1c-4c6d-46c1-82b9-3b57804680c0.local 35842 typ host generation 0 ufrag l7Pd network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"26db9717-3371-4799-9c6f-4b6743e36bb1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"26db9717-3371-4799-9c6f-4b6743e36bb1","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/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"323ad42bf6fb64e6d9f19078e64eb235","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"323ad42bf6fb64e6d9f19078e64eb235","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4"}}},"level":"info","message":"received a callback","requestID":"323ad42bf6fb64e6d9f19078e64eb235"} device-1 | {"device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} gateway-1 | {"time_local":"07/May/2025:16:14: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.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"323ad42bf6fb64e6d9f19078e64eb235"} device-1 | {"device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"323ad42bf6fb64e6d9f19078e64eb235","responseTime":29,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"26db9717-3371-4799-9c6f-4b6743e36bb1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"26db9717-3371-4799-9c6f-4b6743e36bb1","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","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/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"db7b114e7f8917967cbb6ea0d170cab3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"db7b114e7f8917967cbb6ea0d170cab3","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/9926ae61-0a63-4792-83cc-c986586e7797"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4"}}},"level":"info","message":"received a callback","requestID":"db7b114e7f8917967cbb6ea0d170cab3"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"58875630-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbbaf9340-db54-4ed5-98fd-9a2c9efb75b4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aa7c04f6-33ff-45d5-8098-d545cac65fcf","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.0706809} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.296138,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58875630-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","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":"58875630-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"58875630-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4 200 31ms","method":"GET","requestID":"58875630-2b5e-11f0-8e1f-5304d0938eae","responseTime":31,"status":200,"url":"/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 47ms","method":"POST","requestID":"db7b114e7f8917967cbb6ea0d170cab3","responseTime":47,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.050","http_referrer":"","http_user_agent":"node-fetch","requestID":"db7b114e7f8917967cbb6ea0d170cab3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"588e0cf0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc","level":"info","message":"auth send jwt","requestID":"ea6430cb818bbf00d3eb873990a3e5ba"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ea6430cb818bbf00d3eb873990a3e5ba","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","requestID":"ea6430cb818bbf00d3eb873990a3e5ba"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ccf5836b-aa04-452e-afd5-bb34ce639fe7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.1154342} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.441527,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"588e0cf0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","rebac_allow":false,"scope_allow":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":"588e0cf0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.640116,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"ea6430cb818bbf00d3eb873990a3e5ba","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634466,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ea6430cb818bbf00d3eb873990a3e5ba","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"588e0cf0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling 200 9ms","method":"POST","requestID":"588e0cf0-2b5e-11f0-8e1f-5304d0938eae","responseTime":9,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58936420-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","requestID":"ea6430cb818bbf00d3eb873990a3e5ba"} gateway-1 | {"time_local":"07/May/2025:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ea6430cb818bbf00d3eb873990a3e5ba"} experiment-1 | {"level":"info","message":"GET /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b 200 34ms","method":"GET","requestID":"ea6430cb818bbf00d3eb873990a3e5ba","responseTime":34,"status":200,"url":"/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a1a2da3-c15d-4bb7-8e03-f366e0ac0aae","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.1504364} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.821499,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc","level":"info","message":"auth send jwt","requestID":"342c3e6fb94074bfe9704ff5a7029516"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58936420-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"342c3e6fb94074bfe9704ff5a7029516","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"58936420-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","requestID":"342c3e6fb94074bfe9704ff5a7029516"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58936420-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} device-1 | {"level":"info","message":"POST /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling 200 8ms","method":"POST","requestID":"58936420-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.875039,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"342c3e6fb94074bfe9704ff5a7029516","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634466,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"342c3e6fb94074bfe9704ff5a7029516","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Attempting to finish experiment","requestID":"342c3e6fb94074bfe9704ff5a7029516"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"58958700-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.688694,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58958700-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634466,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"58958700-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","device":"9926ae61-0a63-4792-83cc-c986586e7797","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","device":"26db9717-3371-4799-9c6f-4b6743e36bb1","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/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","statusDeviceA":"closed","statusDeviceB":"connected"},"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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9fba433f-59a9-4fe4-a2b8-8b2db71552c2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.1978645} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2548725aebda6c9914be2d515a17cce0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2548725aebda6c9914be2d515a17cce0","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"129cf1716f8cd2b7f1b0794a75069e0b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/9926ae61-0a63-4792-83cc-c986586e7797"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4"}}},"level":"info","message":"received a callback","requestID":"2548725aebda6c9914be2d515a17cce0"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"129cf1716f8cd2b7f1b0794a75069e0b","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbbaf9340-db54-4ed5-98fd-9a2c9efb75b4': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbbaf9340-db54-4ed5-98fd-9a2c9efb75b4","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"5bf77d8b-b022-4b39-98d0-c74fac37c830","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.2007146} 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/9926ae61-0a63-4792-83cc-c986586e7797"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4"}}},"level":"info","message":"received a callback","requestID":"129cf1716f8cd2b7f1b0794a75069e0b"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"58958700-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"bbaf9340-db54-4ed5-98fd-9a2c9efb75b4","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"58958700-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4 204 56ms","method":"DELETE","requestID":"58958700-2b5e-11f0-8e1f-5304d0938eae","responseTime":56,"status":204,"url":"/peerconnections/bbaf9340-db54-4ed5-98fd-9a2c9efb75b4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"},"level":"info","message":"Successfully finished experiment","requestID":"342c3e6fb94074bfe9704ff5a7029516"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58a3dee0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9926ae61-0a63-4792-83cc-c986586e7797","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b719b65c-db06-45af-9455-f97c6066f4c9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.2586265} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.237894,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58a3dee0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797","object_type":"device","rebac_allow":false,"scope_allow":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":"58a3dee0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58a3dee0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling 200 8ms","method":"POST","requestID":"58a3dee0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/9926ae61-0a63-4792-83cc-c986586e7797/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"58a56580-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F947d6456-9eef-4933-b28c-bc8c4ba7370b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F947d6456-9eef-4933-b28c-bc8c4ba7370b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"52669b91-916b-430a-b5cd-ad229c98aabe","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.2894454} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"def47490-97d3-4d23-84b9-cedf991c60fe","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.2895606} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"342c3e6fb94074bfe9704ff5a7029516","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F26db9717-3371-4799-9c6f-4b6743e36bb1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ada3c10-6e52-4bba-9187-064af06b4c03","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.2922935} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.561119,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"58a56580-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/26db9717-3371-4799-9c6f-4b6743e36bb1","object_type":"device","rebac_allow":false,"scope_allow":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":"58a56580-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"58a56580-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling 200 32ms","method":"POST","requestID":"58a56580-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":200,"url":"/devices/26db9717-3371-4799-9c6f-4b6743e36bb1/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b","requestID":"342c3e6fb94074bfe9704ff5a7029516"} gateway-1 | {"time_local":"07/May/2025:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.208","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"342c3e6fb94074bfe9704ff5a7029516"} experiment-1 | {"level":"info","message":"DELETE /experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b 204 206ms","method":"DELETE","requestID":"342c3e6fb94074bfe9704ff5a7029516","responseTime":206,"status":204,"url":"/experiments/947d6456-9eef-4933-b28c-bc8c4ba7370b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc","level":"info","message":"auth send jwt","requestID":"f8eb5a008580fa9f3c5d466374dfa241"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f8eb5a008580fa9f3c5d466374dfa241","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"2548725aebda6c9914be2d515a17cce0","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.188","http_referrer":"","http_user_agent":"node-fetch","requestID":"2548725aebda6c9914be2d515a17cce0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 186ms","method":"POST","requestID":"129cf1716f8cd2b7f1b0794a75069e0b","responseTime":186,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.189","http_referrer":"","http_user_agent":"node-fetch","requestID":"129cf1716f8cd2b7f1b0794a75069e0b"} device-1 | {"level":"info","message":"postDevices called","requestID":"f8eb5a008580fa9f3c5d466374dfa241"} gateway-1 | {"time_local":"07/May/2025:16:14:26 +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.914","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9a42290891a18c61ad9146fae3ffae87"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} gateway-1 | {"time_local":"07/May/2025:16:14:26 +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.968","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"217c0d7b25f87852fb021e6c785f92d4"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.04729,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"f8eb5a008580fa9f3c5d466374dfa241","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634466,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f8eb5a008580fa9f3c5d466374dfa241","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/26db9717-3371-4799-9c6f-4b6743e36bb1' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9926ae61-0a63-4792-83cc-c986586e7797' 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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c68321a-d445-4ada-92bc-4a4cebfb6b5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ecf30860-2bda-4e6c-a9dc-73fc56a44344","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.4449167} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f8eb5a008580fa9f3c5d466374dfa241","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c37d851-1cf1-43ea-9731-bf28e5453117","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.4488664} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"f8eb5a008580fa9f3c5d466374dfa241","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c68321a-d445-4ada-92bc-4a4cebfb6b5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"4a7708cb-d2d6-403b-96de-0465ee4f1fe0","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.4577277} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"072eef4e-aca0-45f8-87d2-888b341467c1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.4580002} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"f8eb5a008580fa9f3c5d466374dfa241","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f8eb5a008580fa9f3c5d466374dfa241"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c68321a-d445-4ada-92bc-4a4cebfb6b5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c68321a-d445-4ada-92bc-4a4cebfb6b5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.457695612Z"}]},"request_id":"1d27b9e5-8a28-4782-a55a-460be7717a12","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.4814465} device-1 | {"level":"info","message":"POST /devices? 201 93ms","method":"POST","requestID":"f8eb5a008580fa9f3c5d466374dfa241","responseTime":93,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:14:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.123","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f8eb5a008580fa9f3c5d466374dfa241"} authorization-1 | {"level":"info","message":"POST /relations/query 200 22ms","method":"POST","requestID":"f8eb5a008580fa9f3c5d466374dfa241","responseTime":22,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc","level":"info","message":"auth send jwt","requestID":"cdcf3f573274ced4fa9630d54d549b48"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cdcf3f573274ced4fa9630d54d549b48","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"cdcf3f573274ced4fa9630d54d549b48"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.408707,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cdcf3f573274ced4fa9630d54d549b48","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634466,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2Nn0.YVowxXm9p7jRZSmBTViryCNzMRXD0RpOSJT31DeF3Rc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cdcf3f573274ced4fa9630d54d549b48","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9395f61e-7816-485b-a280-dda745b98ecc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.5010805} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cdcf3f573274ced4fa9630d54d549b48","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5e0b9785-90d2-4bee-9082-6c521c04f0f1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.5045521} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"cdcf3f573274ced4fa9630d54d549b48","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"140d279b-b7af-4f96-a1cc-a701fa982dbc","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.5404203} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d5b66a55-1c01-4c83-b8ea-a477ae879515","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.540679} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"cdcf3f573274ced4fa9630d54d549b48","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.540388015Z"}]},"request_id":"fff1ca7e-0d9a-47aa-b187-8ba0dec17cef","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634466.5436118} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cdcf3f573274ced4fa9630d54d549b48","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"cdcf3f573274ced4fa9630d54d549b48"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"cdcf3f573274ced4fa9630d54d549b48","responseTime":57,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"07/May/2025:16:14: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.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cdcf3f573274ced4fa9630d54d549b48"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c9512bf09aa98e6b15cf18a8affedbf1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c9512bf09aa98e6b15cf18a8affedbf1","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/61cdb465-31cd-4a5d-8146-17f644849f35/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":"c9512bf09aa98e6b15cf18a8affedbf1"} device-1 | {"level":"info","message":"OPTIONS /devices/61cdb465-31cd-4a5d-8146-17f644849f35/websocket 200 1ms","method":"OPTIONS","requestID":"c9512bf09aa98e6b15cf18a8affedbf1","responseTime":1,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg","level":"info","message":"auth send jwt","requestID":"8bdbb4cb8303df07f0ec56bdbe054a42"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8bdbb4cb8303df07f0ec56bdbe054a42","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8bdbb4cb8303df07f0ec56bdbe054a42"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:28Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651914,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"8bdbb4cb8303df07f0ec56bdbe054a42","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"8bdbb4cb8303df07f0ec56bdbe054a42","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8bdbb4cb8303df07f0ec56bdbe054a42"} gateway-1 | {"time_local":"07/May/2025:16:14:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/61cdb465-31cd-4a5d-8146-17f644849f35/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8bdbb4cb8303df07f0ec56bdbe054a42"} device-1 | {"level":"info","message":"POST /devices/61cdb465-31cd-4a5d-8146-17f644849f35/websocket 200 13ms","method":"POST","requestID":"8bdbb4cb8303df07f0ec56bdbe054a42","responseTime":13,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg","level":"info","message":"auth send jwt","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:28Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.697296,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"715ebaded8b8ebeaa05cb888c6ee32ce","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.540388015Z"}]},"request_id":"f9ffa550-0c4d-4aff-8e0d-248ddb2ffaf8","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634468.9509056} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce"} device-1 | {"level":"info","message":"GET /devices/61cdb465-31cd-4a5d-8146-17f644849f35? 200 33ms","method":"GET","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce","responseTime":33,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35?"} gateway-1 | {"time_local":"07/May/2025:16:14:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/61cdb465-31cd-4a5d-8146-17f644849f35? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"715ebaded8b8ebeaa05cb888c6ee32ce"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg","level":"info","message":"auth send jwt","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e9613678e9b1b068ccb63ea5d41edabd","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:28Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.641711,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"e9613678e9b1b068ccb63ea5d41edabd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"e9613678e9b1b068ccb63ea5d41edabd","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Attempting to run experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Attempting to book experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully booked experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5a4cfb00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5a4d2210-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.883522,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5a4cfb00-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5a4cfb00-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.727359,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5a4d2210-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5a4d2210-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c68321a-d445-4ada-92bc-4a4cebfb6b5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c68321a-d445-4ada-92bc-4a4cebfb6b5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.457695612Z"}]},"request_id":"b4ce5170-3133-439f-8e3c-5d26e077af4e","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.0487423} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"5a4cfb00-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.540388015Z"}]},"request_id":"9dabda95-8a4d-4340-a252-847626d48b28","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.0738897} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"5a4d2210-2b5e-11f0-8e1f-5304d0938eae","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5a4cfb00-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e? 200 37ms","method":"GET","requestID":"5a4cfb00-2b5e-11f0-8e1f-5304d0938eae","responseTime":37,"status":200,"url":"/devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5a4d2210-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/61cdb465-31cd-4a5d-8146-17f644849f35? 200 36ms","method":"GET","requestID":"5a4d2210-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Setting up experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully locked booking for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} device-1 | {"level":"info","message":"postDevicesByDeviceId called","requestID":"5a54ea40-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656549,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5a54ea40-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5a54ea40-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"3eed964e-cefb-4746-a5cf-c71810c8a8e2","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.1389952} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a8f02e58-f5b9-4b2a-870d-b0cf8bea00e7","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.1391652} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"5a54ea40-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110' to 'http://localhost/callbacks/experiment'","requestID":"5a54ea40-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded","requestID":"5a54ea40-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"level":"info","message":"POST /token 201 34ms","method":"POST","requestID":"5a5d0090-2b5e-11f0-9027-6b3ce0e94f7e","responseTime":34,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 91ms","method":"POST","requestID":"5a54ea40-2b5e-11f0-8e1f-5304d0938eae","responseTime":91,"status":201,"url":"/devices/1c68321a-d445-4ada-92bc-4a4cebfb6b5e?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Attempting to update booking for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully updated booking for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully set up experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5a6f2900-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5a6f7720-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5a6f9e30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.01606,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:29Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully running experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5a6f2900-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5a6f2900-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:51238","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.059554,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5a6f7720-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5a6f7720-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"712e3ce5-09f4-442c-8b59-08656dbb1464","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.2727022} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.954552,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5a6f9e30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","rebac_allow":false,"scope_allow":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":"5a6f9e30-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.540388015Z"}]},"request_id":"894e8fdb-8b55-45c8-8d09-292214015eb3","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.2773407} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device ac15f2e7-aa39-48eb-964d-a20a97ee2110","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device ac15f2e7-aa39-48eb-964d-a20a97ee2110\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/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"5a6f9e30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling 404 14ms","method":"POST","requestID":"5a6f9e30-2b5e-11f0-8e1f-5304d0938eae","responseTime":14,"status":404,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"5a6f7720-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:29.138970613Z"}]},"request_id":"810a406c-78ff-451f-a77d-222ee4d6da3f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.2802384} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5#owner@http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"2165e4e1-efa6-4877-a7de-f0670cc7586b","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.282276} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device ac15f2e7-aa39-48eb-964d-a20a97ee2110"},"status":404}},"level":"error","message":"Could not send status-update message","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"5a6f2900-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5a728460-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a60a74d0-a469-4523-b8e1-119c661c5160","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.2861824} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"e9613678e9b1b068ccb63ea5d41edabd","responseTime":16,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5a6f7720-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/61cdb465-31cd-4a5d-8146-17f644849f35? 200 22ms","method":"GET","requestID":"5a6f7720-2b5e-11f0-8e1f-5304d0938eae","responseTime":22,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35?"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:29Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5a6f2900-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110? 200 48ms","method":"GET","requestID":"5a6f2900-2b5e-11f0-8e1f-5304d0938eae","responseTime":48,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110?"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aeb13ce0-0a13-49b5-8a02-97859797352f","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634469.3146877} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.004332,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5a728460-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","rebac_allow":false,"scope_allow":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":"5a728460-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5a728460-2b5e-11f0-8e1f-5304d0938eae"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","user":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} device-1 | {"level":"info","message":"POST /devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling 200 33ms","method":"POST","requestID":"5a728460-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling"} experiment-1 | {"level":"info","message":"POST /experiments? 201 337ms","method":"POST","requestID":"e9613678e9b1b068ccb63ea5d41edabd","responseTime":337,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"07/May/2025:16:14:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.340","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3c675bbfee8f24b03e835ddb80a34c3a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3c675bbfee8f24b03e835ddb80a34c3a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"07/May/2025:16:14:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/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":"3c675bbfee8f24b03e835ddb80a34c3a"} device-1 | {"level":"info","message":"OPTIONS /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/websocket 200 0ms","method":"OPTIONS","requestID":"3c675bbfee8f24b03e835ddb80a34c3a","responseTime":0,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6InZ6VDBSbENCOXdZYmlfelVmQUtjZzVBSzVobnRjenpaTFJkOW1OZkE1Y2pSVzlub1ZNUzUtRzJDeEdrMWQ2Y0tkUERpVFVUQ09PY1pyRng2cnRWVkxnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3MX0.Zonyt0uDtCz1nHy8jvOxnoY3rS3nHiZw9Oc0An4uiUc","level":"info","message":"auth send jwt","requestID":"78d44f0bd531d6eba04d48478aca8a9e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"78d44f0bd531d6eba04d48478aca8a9e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"78d44f0bd531d6eba04d48478aca8a9e"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:31Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.031535,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"78d44f0bd531d6eba04d48478aca8a9e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","payload":{"admin":true,"edgeToken":"vzT0RlCB9wYbi_zUfAKcg5AK5hntczzZLRd9mNfA5cjRW9noVMS5-G2CxGk1d6cKdPDiTUTCOOcZrFx6rtVVLg","iat":1746634471,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6InZ6VDBSbENCOXdZYmlfelVmQUtjZzVBSzVobnRjenpaTFJkOW1OZkE1Y2pSVzlub1ZNUzUtRzJDeEdrMWQ2Y0tkUERpVFVUQ09PY1pyRng2cnRWVkxnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3MX0.Zonyt0uDtCz1nHy8jvOxnoY3rS3nHiZw9Oc0An4uiUc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"78d44f0bd531d6eba04d48478aca8a9e","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"78d44f0bd531d6eba04d48478aca8a9e"} device-1 | {"level":"info","message":"POST /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/websocket 200 38ms","method":"POST","requestID":"78d44f0bd531d6eba04d48478aca8a9e","responseTime":38,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/websocket"} gateway-1 | {"time_local":"07/May/2025:16:14:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"78d44f0bd531d6eba04d48478aca8a9e"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dd58d8e1d2b4248df2cf51289de9c6a8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"dd58d8e1d2b4248df2cf51289de9c6a8","responseTime":0,"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/ac15f2e7-aa39-48eb-964d-a20a97ee2110"},"eventType":"device-changed"}},"level":"info","message":"received a callback","requestID":"dd58d8e1d2b4248df2cf51289de9c6a8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3MX0.f8wDMRWrOnCHrnO5UGM4Yzk_ZuPte2WdiRGbu-081gM","level":"info","message":"auth send jwt","requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:31Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.018074,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634471,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3MX0.f8wDMRWrOnCHrnO5UGM4Yzk_ZuPte2WdiRGbu-081gM"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a","responseTime":30,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 35ms","method":"POST","requestID":"dd58d8e1d2b4248df2cf51289de9c6a8","responseTime":35,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"dd58d8e1d2b4248df2cf51289de9c6a8"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:29.138970613Z"}]},"request_id":"cd6ab355-689d-4367-b7d9-54cb0d104b53","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634471.7213514} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a"} gateway-1 | {"time_local":"07/May/2025:16:14:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110? 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":"2d5d56db9bbbe9ac6a10878ba5ed540a"} device-1 | {"level":"info","message":"GET /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110? 200 38ms","method":"GET","requestID":"2d5d56db9bbbe9ac6a10878ba5ed540a","responseTime":38,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3MX0.f8wDMRWrOnCHrnO5UGM4Yzk_ZuPte2WdiRGbu-081gM","level":"info","message":"auth send jwt","requestID":"cc8c668afbf3ab2754778413714be184"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cc8c668afbf3ab2754778413714be184","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cc8c668afbf3ab2754778413714be184"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:31Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.616564,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"cc8c668afbf3ab2754778413714be184","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634471,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3MX0.f8wDMRWrOnCHrnO5UGM4Yzk_ZuPte2WdiRGbu-081gM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"cc8c668afbf3ab2754778413714be184","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.540388015Z"}]},"request_id":"9c52f4bd-f71f-4542-a8bc-941040075624","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634471.7343678} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cc8c668afbf3ab2754778413714be184","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cc8c668afbf3ab2754778413714be184"} device-1 | {"level":"info","message":"GET /devices/61cdb465-31cd-4a5d-8146-17f644849f35? 200 33ms","method":"GET","requestID":"cc8c668afbf3ab2754778413714be184","responseTime":33,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35?"} gateway-1 | {"time_local":"07/May/2025:16:14:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/61cdb465-31cd-4a5d-8146-17f644849f35? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cc8c668afbf3ab2754778413714be184"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d7256e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5d727df0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:49038","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.959862,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d7256e0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5d7256e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.476372,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d727df0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5d727df0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:29.138970613Z"}]},"request_id":"b774cbad-3424-40ea-bc7f-a799ea5d4377","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.3260307} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5d7256e0-2b5e-11f0-8e1f-5304d0938eae","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:37856","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"timestamp":"2025-05-07T16:14:26.540388015Z"}]},"request_id":"ab2e8cd4-0f80-4b33-a3d3-2fcd867ac324","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.3286815} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d7256e0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"5d727df0-2b5e-11f0-8e1f-5304d0938eae","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110? 200 35ms","method":"GET","requestID":"5d7256e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":35,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5d727df0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /devices/61cdb465-31cd-4a5d-8146-17f644849f35? 200 36ms","method":"GET","requestID":"5d727df0-2b5e-11f0-8e1f-5304d0938eae","responseTime":36,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d784a50-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e0fb4e49-672f-47b0-867d-e76d2a2763aa","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.3610606} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.546381,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d784a50-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","rebac_allow":false,"scope_allow":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":"5d784a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d784a50-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling 200 7ms","method":"POST","requestID":"5d784a50-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d79a9e0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"13e9fe58-1efd-4c10-a6b0-4ae7a7619b32","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.3704028} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.72612,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d79a9e0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","rebac_allow":false,"scope_allow":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":"5d79a9e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d79a9e0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling 200 8ms","method":"POST","requestID":"5d79a9e0-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Building connection plan","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"2420565a-da76-47a2-953f-3298efda980b"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"f638f1b4-d653-4243-9864-7e9a244de580"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"f96fce85-d303-437a-8d35-2cb2875a35f8"}]},"level":"info","message":"Built pairwise service configurations","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.682139,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634468,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ2OH0.RC3nr7_AHX7dLfdP7cSD7sI8zyNCgJOsh6gixHelgwg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]}},"raw_response":{},"request_id":"6fb49190-2e36-4da2-b55f-2ccfe6306334","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.40984} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4c3aaf2c-6fb9-4c81-b6c9-9643501a5dba","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.4100997} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481'","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481'","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 19ms","method":"POST","requestID":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae","responseTime":19,"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":"5d7f0110-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","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} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","device":"61cdb465-31cd-4a5d-8146-17f644849f35","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} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"e9613678e9b1b068ccb63ea5d41edabd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d8da710-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a8a5a1d0-5316-48ce-a3d8-ea3e39e459d1","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.5019708} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.194396,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d8da710-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","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 | {"device":"61cdb465-31cd-4a5d-8146-17f644849f35","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"61cdb465-31cd-4a5d-8146-17f644849f35","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"5d8da710-2b5e-11f0-8e1f-5304d0938eae","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d8da710-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling 200 12ms","method":"POST","requestID":"5d8da710-2b5e-11f0-8e1f-5304d0938eae","responseTime":12,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5d8fc9f0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} device-1 | {"content":{"sdp":"v=0\r\no=- 7957396269161502696 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:tU6N\r\na=ice-pwd:mw9t4Co2lvLEfQIxDlhsB8Ga\r\na=ice-options:trickle\r\na=fingerprint:sha-256 11:BE:DC:75:95:B6:A6:6F:95:92:98:E6:D1:26:4D:CA:26:C8:6A:BD:B5:9F:98:CE:B2:74:65:05:20:B1:21:33\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"61cdb465-31cd-4a5d-8146-17f644849f35","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"905beeed-5909-471d-afb2-53a468319c9d","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.5162723} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.895809,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5d8fc9f0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","rebac_allow":false,"scope_allow":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":"5d8fc9f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5d8fc9f0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling 200 34ms","method":"POST","requestID":"5d8fc9f0-2b5e-11f0-8e1f-5304d0938eae","responseTime":34,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 5608818189962661352 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:FWap\r\na=ice-pwd:GeCyKgVsk1u70DR6OpbZrdfH\r\na=ice-options:trickle\r\na=fingerprint:sha-256 E2:1A:D8:1F:05:F8:C2:CD:EC:97:0E:50:50:75:B2:06:34:A7:38:64:FA:34:B8:EB:DF:7C:B9:2E:69:E4:00:BD\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3496579970 1 udp 2113937151 4cd01174-4179-40f5-8936-3ee6a9a8adf4.local 56035 typ host generation 0 ufrag FWap network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","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/ac15f2e7-aa39-48eb-964d-a20a97ee2110'"} device-1 | {"content":{"candidate":"candidate:3013350438 1 udp 2113937151 9033404b-290c-4cfa-85ab-89e32c185020.local 41488 typ host generation 0 ufrag tU6N network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"61cdb465-31cd-4a5d-8146-17f644849f35","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"61cdb465-31cd-4a5d-8146-17f644849f35","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/da4b6d4a-6316-4140-8b09-d3c214968481' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"da4b6d4a-6316-4140-8b09-d3c214968481","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"61cdb465-31cd-4a5d-8146-17f644849f35","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"61d9a0dc9f2798e44a11d57f547d2a94","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"61d9a0dc9f2798e44a11d57f547d2a94","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","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/ac15f2e7-aa39-48eb-964d-a20a97ee2110"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481"}}},"level":"info","message":"received a callback","requestID":"61d9a0dc9f2798e44a11d57f547d2a94"} device-1 | {"device":"61cdb465-31cd-4a5d-8146-17f644849f35","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","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":"61d9a0dc9f2798e44a11d57f547d2a94","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"61d9a0dc9f2798e44a11d57f547d2a94"} device-1 | {"data":{"peerconnection":"da4b6d4a-6316-4140-8b09-d3c214968481","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"da4b6d4a-6316-4140-8b09-d3c214968481","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/da4b6d4a-6316-4140-8b09-d3c214968481' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"da4b6d4a-6316-4140-8b09-d3c214968481","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"fd0a1794530261fbea563b799df7e0d8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fd0a1794530261fbea563b799df7e0d8","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/ac15f2e7-aa39-48eb-964d-a20a97ee2110"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481"}}},"level":"info","message":"received a callback","requestID":"fd0a1794530261fbea563b799df7e0d8"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"5da3ee30-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fda4b6d4a-6316-4140-8b09-d3c214968481","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f0714c6-0ecc-41ae-b2d1-603526f81e46","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.647666} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.548466,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5da3ee30-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","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":"5da3ee30-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"5da3ee30-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"GET /peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481 200 8ms","method":"GET","requestID":"5da3ee30-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 47ms","method":"POST","requestID":"fd0a1794530261fbea563b799df7e0d8","responseTime":47,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"fd0a1794530261fbea563b799df7e0d8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5da6fb70-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b34c64d3-5fd3-47c3-a8ba-9c0b072bfd40","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.6917417} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3NH0.CzRcMAuTuycm9yRdfhKULuIbIogrytJee68MDeuGiIw","level":"info","message":"auth send jwt","requestID":"6b8764bd3468ffd0d2f3ee347bb193fb"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6b8764bd3468ffd0d2f3ee347bb193fb","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.733515,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","requestID":"6b8764bd3468ffd0d2f3ee347bb193fb"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5da6fb70-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","rebac_allow":false,"scope_allow":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":"5da6fb70-2b5e-11f0-8e1f-5304d0938eae","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.753654,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5da6fb70-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling 200 33ms","method":"POST","requestID":"5da6fb70-2b5e-11f0-8e1f-5304d0938eae","responseTime":33,"status":200,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"6b8764bd3468ffd0d2f3ee347bb193fb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634474,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3NH0.CzRcMAuTuycm9yRdfhKULuIbIogrytJee68MDeuGiIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6b8764bd3468ffd0d2f3ee347bb193fb","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5dac52a0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","requestID":"6b8764bd3468ffd0d2f3ee347bb193fb"} gateway-1 | {"time_local":"07/May/2025:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5 HTTP/1.1","status": "200","body_bytes_sent":"1180","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6b8764bd3468ffd0d2f3ee347bb193fb"} experiment-1 | {"level":"info","message":"GET /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5 200 10ms","method":"GET","requestID":"6b8764bd3468ffd0d2f3ee347bb193fb","responseTime":10,"status":200,"url":"/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b583a0b-1a90-46a8-beb8-c90a48a936eb","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.701974} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.440902,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5dac52a0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","rebac_allow":false,"scope_allow":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":"5dac52a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5dac52a0-2b5e-11f0-8e1f-5304d0938eae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3NH0.CzRcMAuTuycm9yRdfhKULuIbIogrytJee68MDeuGiIw","level":"info","message":"auth send jwt","requestID":"b4a65cdaf403e684ed6e443b20b79ad4"} device-1 | {"level":"info","message":"POST /devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling 200 7ms","method":"POST","requestID":"5dac52a0-2b5e-11f0-8e1f-5304d0938eae","responseTime":7,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b4a65cdaf403e684ed6e443b20b79ad4","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","requestID":"b4a65cdaf403e684ed6e443b20b79ad4"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.109517,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"b4a65cdaf403e684ed6e443b20b79ad4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"experiment:http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","object_type":"experiment","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634474,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3NH0.CzRcMAuTuycm9yRdfhKULuIbIogrytJee68MDeuGiIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b4a65cdaf403e684ed6e443b20b79ad4","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Attempting to finish experiment","requestID":"b4a65cdaf403e684ed6e443b20b79ad4"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"5db2e250-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.024366,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5db2e250-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"peerconnection:http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634474,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3NH0.CzRcMAuTuycm9yRdfhKULuIbIogrytJee68MDeuGiIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"5db2e250-2b5e-11f0-8e1f-5304d0938eae","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","device":"ac15f2e7-aa39-48eb-964d-a20a97ee2110","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/da4b6d4a-6316-4140-8b09-d3c214968481' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"da4b6d4a-6316-4140-8b09-d3c214968481","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481","device":"61cdb465-31cd-4a5d-8146-17f644849f35","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"080ce30c90a98c6a1b35354f59ab0c28","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"080ce30c90a98c6a1b35354f59ab0c28","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/ac15f2e7-aa39-48eb-964d-a20a97ee2110"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481"}}},"level":"info","message":"received a callback","requestID":"080ce30c90a98c6a1b35354f59ab0c28"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dc910cc6feda646a324106b1b9206e0e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dc910cc6feda646a324106b1b9206e0e","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:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdf9d8d7-93e5-40d5-9961-94a91baad101","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.756862} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fda4b6d4a-6316-4140-8b09-d3c214968481': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fda4b6d4a-6316-4140-8b09-d3c214968481","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"78a3f48d-24f4-4555-8571-fc687cf83088","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.7573013} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"5db2e250-2b5e-11f0-8e1f-5304d0938eae","responseTime":10,"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":"closed","url":"http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481"}}},"level":"info","message":"received a callback","requestID":"dc910cc6feda646a324106b1b9206e0e"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"5db2e250-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481 204 53ms","method":"DELETE","requestID":"5db2e250-2b5e-11f0-8e1f-5304d0938eae","responseTime":53,"status":204,"url":"/peerconnections/da4b6d4a-6316-4140-8b09-d3c214968481"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35'"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called","requestID":"5dbb46c0-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.725015,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5dbb46c0-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","payload":{"admin":true,"edgeToken":"hLl6NB3sSoqWVDa39rDYM-wvnsW8FYWkI4zqisF5w2siseA2TxLoXaAXjv6Mh8Ng8cMcDf7WA9rTJQ6brICAJg","iat":1746634474,"sub":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c","subject_alt":"http://localhost/users/7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzdjOTdmMThhLWQ2ZTUtNDU2Ny05YTVmLWMyNDE2YzlkZTUxYyIsImVkZ2VUb2tlbiI6ImhMbDZOQjNzU29xV1ZEYTM5ckRZTS13dm5zVzhGWVdrSTR6cWlzRjV3MnNpc2VBMlR4TG9YYUFYanY2TWg4Tmc4Y01jRGY3V0E5clRKUTZicklDQUpnIiwiYWRtaW4iOnRydWUsImlhdCI6MTc0NjYzNDQ3NH0.CzRcMAuTuycm9yRdfhKULuIbIogrytJee68MDeuGiIw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5dbb46c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"8379d97c-49b3-4d9f-ac21-d651676a3c64","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.8060234} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1152cdc1-16a5-4188-aeab-cb95ee1ab6f9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.8061745} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"5dbb46c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded","requestID":"5dbb46c0-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"DELETE /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110 204 44ms","method":"DELETE","requestID":"5dbb46c0-2b5e-11f0-8e1f-5304d0938eae","responseTime":44,"status":204,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"},"level":"info","message":"Successfully finished experiment","requestID":"b4a65cdaf403e684ed6e443b20b79ad4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5dc44770-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fac15f2e7-aa39-48eb-964d-a20a97ee2110","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"612b5b48-5dce-4e19-928d-e06d4c097895","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.8837242} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.396522,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5dc44770-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110","object_type":"device","rebac_allow":false,"scope_allow":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":"5dc44770-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"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/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"5dc44770-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/signaling 404 32ms","method":"POST","requestID":"5dc44770-2b5e-11f0-8e1f-5304d0938eae","responseTime":32,"status":404,"url":"/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110/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":"b4a65cdaf403e684ed6e443b20b79ad4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"5dc95080-2b5e-11f0-8e1f-5304d0938eae"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","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%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F7c97f18a-d6e5-4567-9a5f-c2416c9de51c"}]},"store_id":"01JTNR95X6GP3X76BKFYX6P461","writes":null},"raw_response":{},"request_id":"a2c99939-01a0-4a16-b6e8-76f4a88599a9","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.8904457} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","store_id":"01JTNR95X6GP3X76BKFYX6P461"},"raw_response":{"authorization_model":{"id":"01JTNR95ZXYV2T2J8N6V60JV68","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8dc98f31-e59e-4108-9fac-12339ea4e03a","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.8905869} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Received request.","req_id":850,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"b4a65cdaf403e684ed6e443b20b79ad4","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:37856","raw_request":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","contextual_tuples":null,"store_id":"01JTNR95X6GP3X76BKFYX6P461","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F61cdb465-31cd-4a5d-8146-17f644849f35","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d6c26438-66f3-4256-a340-0dd36c756a70","store_id":"01JTNR95X6GP3X76BKFYX6P461","subsystem":"openfga","timestamp":1746634474.8927135} authorization-1 | {"client_addr":"127.0.0.1:39884","level":"info","msg":"Sent response.","req_id":850,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.452112,"resp_status":200,"subsystem":"opa","time":"2025-05-07T16:14:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","openfga":{"authorization_model_id":"01JTNR95ZXYV2T2J8N6V60JV68","store":"01JTNR95X6GP3X76BKFYX6P461"},"requestID":"5dc95080-2b5e-11f0-8e1f-5304d0938eae","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35","object_type":"device","rebac_allow":false,"scope_allow":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":"5dc95080-2b5e-11f0-8e1f-5304d0938eae","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"5dc95080-2b5e-11f0-8e1f-5304d0938eae"} device-1 | {"level":"info","message":"POST /devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling 200 8ms","method":"POST","requestID":"5dc95080-2b5e-11f0-8e1f-5304d0938eae","responseTime":8,"status":200,"url":"/devices/61cdb465-31cd-4a5d-8146-17f644849f35/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5","requestID":"b4a65cdaf403e684ed6e443b20b79ad4"} gateway-1 | {"time_local":"07/May/2025:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.280","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b4a65cdaf403e684ed6e443b20b79ad4"} experiment-1 | {"level":"info","message":"DELETE /experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5 204 277ms","method":"DELETE","requestID":"b4a65cdaf403e684ed6e443b20b79ad4","responseTime":277,"status":204,"url":"/experiments/7f5e88ef-2ac7-4eef-8964-9e2b3eee3de5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 230ms","method":"POST","requestID":"080ce30c90a98c6a1b35354f59ab0c28","responseTime":230,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.232","http_referrer":"","http_user_agent":"node-fetch","requestID":"080ce30c90a98c6a1b35354f59ab0c28"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 228ms","method":"POST","requestID":"dc910cc6feda646a324106b1b9206e0e","responseTime":228,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14: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.232","http_referrer":"","http_user_agent":"node-fetch","requestID":"dc910cc6feda646a324106b1b9206e0e"} gateway-1 | {"time_local":"07/May/2025:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"6.062","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e577481806040e205551d823f8cf6bd2"} gateway-1 | {"time_local":"07/May/2025:16:14:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2098","request_time":"3.322","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"26028290564ed3a59b4ca3f83a31d9fd"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/61cdb465-31cd-4a5d-8146-17f644849f35' closed"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e61dd672a84bf899e989f61d36bf998e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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","device":{"announcedAvailability":[],"connected":false,"description":"A JS test device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/ac15f2e7-aa39-48eb-964d-a20a97ee2110"},"eventType":"device-changed"}},"level":"info","message":"received a callback","requestID":"e61dd672a84bf899e989f61d36bf998e"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e61dd672a84bf899e989f61d36bf998e","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 2ms","method":"POST","requestID":"e61dd672a84bf899e989f61d36bf998e","responseTime":2,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"07/May/2025:16:14:35 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "410","body_bytes_sent":"5","request_time":"0.005","http_referrer":"","http_user_agent":"node-fetch","requestID":"e61dd672a84bf899e989f61d36bf998e"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"attempting to shutdown gracefully","subsystem":"openfga","timestamp":1746634480.3210177} authorization-1 | {"level":"info","msg":"Shutting down...","subsystem":"opa","time":"2025-05-07T16:14:40Z"} authorization-1 | {"level":"info","msg":"Server shutdown.","subsystem":"opa","time":"2025-05-07T16:14:40Z"} authentication-1 exited with code 143 authorization-1 exited with code 0 experiment-1 exited with code 143 federation-1 exited with code 143 device-1 exited with code 143 gateway-1 exited with code 0