13:56:40 RRSAgent has joined #lws 13:56:44 logging to https://www.w3.org/2025/05/05-lws-irc 13:56:44 RRSAgent, make logs Public 13:56:45 please title this meeting ("meeting: ..."), laurens 13:56:56 Meeting: LWS WG Meeting - May 5th, 2025 13:57:02 agenda: https://www.w3.org/events/meetings/a19ab7dc-1753-433d-bac5-64e3ad8c0a43/20250505T100000/ 13:57:03 clear agenda 13:57:03 agenda+ Introductions and announcements 13:57:03 agenda+ Action Items 13:57:03 agenda+ Use cases and requirements: presentation and Q&A 13:57:03 agenda+ Discussion: server-to-server authentication 13:57:06 chair: laurens 13:57:23 gibsonf1 has joined #lws 13:57:29 acoburn has joined #lws 13:57:39 uvdsl has joined #lws 13:59:25 agenda? 13:59:37 eBremer has joined #lws 13:59:44 present+ 13:59:49 present+ 13:59:51 present+ 14:00:04 present+ 14:00:55 present+ 14:01:08 scribe+ 14:01:37 RRSAgent, make minutes 14:01:38 I have made the request to generate https://www.w3.org/2025/05/05-lws-minutes.html acoburn 14:02:21 present+ 14:02:36 hadrian has joined #lws 14:02:52 present+ 14:02:59 present+ 14:03:00 next agendum 14:03:10 laurens: 4 Topics - lets start with introducations 14:03:33 bart: Bart Beulens, from VITO, Belgium 14:03:42 ... involved with Solid since 2019 14:03:59 ... involved in a project as setting us up as a Solid Pod provider in Flanders 14:04:10 jeswr has joined #lws 14:04:11 ... organized the 2nd Solid Symposium in Leuven 14:04:21 present+ 14:04:30 ... we have a lot of work going on in the Solid-related domains, so we joined! 14:04:41 laurens: Any announcements? 14:04:50 q? 14:04:54 ryey has joined #lws 14:04:58 present+ 14:05:01 next agendum 14:05:01 ... if not, we can move on to the next agenda item 14:05:14 laurens: Action Items! 14:05:17 bartb has joined #lws 14:05:20 gibsonf1 has joined #lws 14:05:37 ... overview of closed issues? Any update hadrian? 14:05:48 gibsonf1 has joined #lws 14:05:52 hadrian: there is! #1 was closed as duplicate 14:05:52 https://github.com/w3c/lws-ucs/pull/149 14:05:53 https://github.com/w3c/lws-protocol/issues/1 -> CLOSED Action 1 reach out on LWS mailing list (on acoburn) due 2024-11-25 14:05:53 https://github.com/w3c/lws-ucs/pull/149 -> Pull Request 149 UC for portable storage and basic sharing (by hzbarcea) 14:06:10 ... I did not want to close @@@ issues before the PR is merged 14:06:36 laurens: any further action items? 14:06:41 next agendum 14:06:44 ... lets move on 14:07:07 ... @hardian, do you have a more extensive announcement here? e.g. about the note? 14:07:07 https://github.com/hardian -> @hardian 14:07:09 bendm has joined #lws 14:07:35 ... I reviewed the issues and opened a PR on local data 14:08:18 hadrian: @@@1 discussion on algorithms that run in the server / close to the data 14:08:47 ... many services, e.g. query, run close to the server - these may require to access data directly 14:09:07 ... and in that case these services need to recognise ACLs etc 14:09:19 ... I believe this is out of scope for the WG 14:09:34 ... but this is relevant for the discussion around portability 14:09:57 +q About how to handle query access control - triple-level uri's 14:10:05 ... we had some previous conversations on running algorithms close to the data 14:10:15 q+ 14:10:17 q? 14:10:24 +q to mention about how to handle query access control - triple-level uri's 14:10:39 ... when I finish my PRs most of the related issues can be closed 14:10:54 ... also related: Identity / identifier 14:11:07 gibsonf1: be sure to use q plus (rather than plus q) to add yourself to the queue 14:11:19 ack laurens 14:11:30 laurens: to summarise, you have been working on @@@2, and you raise question to direct access to data ... 14:11:49 q+ to talk about Linked Data as an approach and query security - triple-level resources 14:11:50 ... do we see a requirement on a query mechanism, e.g. SPARQL queries? 14:12:03 hadrian: yes, this fits into this category 14:12:34 q? 14:12:36 laurens: there I think we should make a distinction between MUST and SHOULD - to distinguish between core elements and extensibility 14:12:51 hadrian: I could make an argument that nothing is really required (??) 14:12:54 q? 14:12:58 ack gibsonf 14:12:58 gibsonf, you wanted to mention about how to handle query access control - triple-level uri's and to talk about Linked Data as an approach and query security - triple-level 14:13:01 ... resources 14:13:17 gibsonf1: On the whole issue, how do you do access control with a query/algorithm. 14:13:37 ... a though: are we doing actually Linked Data or only documents with triples as ACRs? 14:13:47 ... if we do LD, then we need access control on a triple-level 14:14:19 ... since its not a particular easy thing to do, triple-level access control, we maybe need two types of LWS, one for docs and one for LD. 14:14:29 q+ to talk about how we start with use cases, then requirements, and then solutions 14:14:56 ... The thing I fear, if it is just files, you cannot do alot with the files at the end of the day compared to LD. 14:15:10 ... what do you think about the idea of having both types? 14:15:12 q? 14:15:33 AZ has joined #lws 14:15:37 present+ 14:16:06 hadrian: I can give my personal opinion: At same point, in your graph you will link videos or files. By necessity, there needs to be some form of a file/raw data storage. 14:16:18 ... I'd argue that you can do a lot already with that 14:17:07 ... what I see in industry, if you have data in database, you somehow have to make it accessible to other parties (including semantics), so I'd say that using LD is also a necessity 14:17:56 q+ about trust, permission and offline interactions, for "compute with data" 14:18:26 gibsonf1: So, one clarification on why would a necessary to use SQL database, when other technologies already solve the problems that these introduce 14:18:30 q? 14:18:43 hadrian: The databases exist, and are massively adopted. 14:19:15 ... at scale, when sharing data, the semantics of the stored data needs to be shared as well 14:19:26 ... so, LD will be a necessity, I think 14:19:28 TallTed has joined #lws 14:19:41 jeswr has joined #lws 14:19:55 ... I don't think that we would avoid LD 14:20:01 ericP has joined #lws 14:20:11 ack acoburn 14:20:11 acoburn, you wanted to talk about how we start with use cases, then requirements, and then solutions 14:20:19 present+ 14:20:42 acoburn: I just wanted to mention that it is maybe not a binary question, and there is a lot of room between an S3 bucket and a full triple store 14:21:20 ... what we need is not a discussion around the implementation details but about the use cases, requirements and what to do with that 14:21:31 q? 14:21:34 q+ 14:21:45 ack ryey 14:21:45 laurens: I'd be interested in a use case for triple-level access control, so please add that 14:22:10 present+ 14:22:31 ryey: I am slightly confused: Is the question about any compute close to the data, or only about LD queries? 14:22:34 rrsagent, make minutes 14:22:35 I have made the request to generate https://www.w3.org/2025/05/05-lws-minutes.html acoburn 14:22:41 laurens: more general, I guess 14:22:59 dmitriz has joined #lws 14:23:20 I have made the request to generate https://www.w3.org/2025/05/05-lws-minutes.html TallTed 14:23:48 ryey: I do have an issue open for something other than query, which could be implemented as an agent running on the data - but the agent is necessary for our usecase, and the question is where the agent runs (also in terms of trust where the agent runs) 14:23:49 q? 14:24:08 https://github.com/w3c/lws-ucs/issues/148 14:24:09 https://github.com/w3c/lws-ucs/issues/148 -> Issue 148 [UC] Triple Level Resource (State) (by gibsonf1) [triage] [usecase] 14:24:22 previous meeting: https://www.w3.org/2025/04/28-lws-minutes.html 14:24:24 next meeting: https://www.w3.org/2025/05/12-lws-minutes.html 14:24:50 hadrian: Interesting topic, there is also an issue by csarven, to serve @@@3 from a Pod 14:25:08 ... the Solid Server itself is an algorithm that sits next to the data to serve it 14:25:15 ... question is: Is it the only one? 14:25:34 q+ 14:25:39 ... do we want to consider plugins? 14:26:04 ... I can see some Solid Servers that allow customers to configure plugins like in WordPress 14:26:25 ... but that is maybe rather a feature of an implementation 14:26:32 ... instead of to be demanded by spec 14:26:40 q+ to say - maybe instead of plugins, we consider server capabilities where various capabilities have an interoperable protocol 14:27:02 q+ 14:27:11 ack laurens 14:27:21 ... I agree that there is a spectrum 14:27:33 laurens: I like the idea of plugins 14:27:41 ... I am unsure about this in the spec 14:27:52 ... but we would need a discovery mechnism for that 14:28:10 ... in the spec if we want to go for that extensible model 14:28:11 +1 14:28:16 q? 14:29:07 hadrian: discovery, yes, but again portability! 14:29:25 q? 14:29:35 ack gibsonf 14:29:35 gibsonf, you wanted to say - maybe instead of plugins, we consider server capabilities where various capabilities have an interoperable protocol 14:29:57 gibsonf1: If I am understanding that a plugin is that is code that someone runs on a server? 14:30:10 ... if so, then I am 100% against it 14:30:31 ... I could not imagine someone writing code and then putting it into a secure server 14:31:03 ... I dont understand how this would work 14:31:40 hadrian: It is a Pod that can give you data in the form that you want (content-negotiation), which could be a plugin 14:31:49 q? 14:31:49 ... it is related to capability discovery 14:31:53 ack csarven 14:31:56 ... it is more a terminology issue at this point 14:33:00 csarven: I dont follow the discussion: Look at the charter, we are supposed to come up with a protocol (or something like that) but that is not requiring to define the storing mechanisms and such 14:33:17 ... we are to define the interfaces / interaction protocol 14:34:19 ... if something is not going to be in particular relevant to the interaction between to entities to qualify as interoperable, then it is not to be defined by us 14:34:48 ... I think we should focus the discussion around things that are measurable to be defined. 14:34:58 ... example: should data at rest be encrypted? 14:35:22 q+ to clarify measurability in terms of testability 14:35:47 ... if we can answer this question, then we would know if this is inscope of the charter 14:36:15 q+ 14:36:23 ack acoburn 14:36:23 acoburn, you wanted to clarify measurability in terms of testability 14:36:24 laurens: we should only look at verifiable/testable things as a MUST 14:36:33 csarven: yes 14:36:39 q- 14:36:57 acoburn: Yes, I'd agree, we need to think about what goes into the test suite 14:37:00 q+ 14:37:13 ... something that we cannot test, is out of scope (e.g. encryption at rest) 14:37:14 q? 14:37:17 ack TallTed 14:37:55 tallted: It is actually not a requirement for a spec that something is testable. Some things, specs just mandate. 14:38:13 ... that aside, encryption at rest can be tested in a various ways 14:38:34 ... if we are really defining a protocol, if we do that at all - not sure about that yet 14:38:56 ... you could have a test suite that runs on the server, and see what happens on the storage/device 14:39:16 ... so you can detect if the system/server really uses encryption rest 14:39:29 q? 14:39:30 q+ 14:39:36 ack csarven 14:39:43 ... it is important to note that we do not have to test everything that is in scope 14:39:57 csarven: Agreed, this is a more precise statement. 14:40:13 ... that said, we cannot get away with that all the time 14:40:36 ... at least there needs to be sufficient number of measurable / testable things to show that they are interop'ing 14:41:06 +1 to what csarven said 14:41:12 q? 14:41:14 ... I think we should be careful here 14:41:47 next agendum 14:42:09 laurens: last week, we discussed around authentication in the browser 14:42:22 s/uses encryption rest/uses encryption-at-rest (EAR) / 14:42:45 ... currently, if we look at the Solid OIDC, there is no real server-to-server mechanisms 14:42:49 -> https://swicg.github.io/activitypub-http-signature/ ActivityPub and HTTP Signatures 14:42:54 .. and there are other mechanisms 14:43:08 ... so I'd be interested in the groups opinions 14:43:14 I have made the request to generate https://www.w3.org/2025/05/05-lws-minutes.html TallTed 14:43:20 q? 14:43:40 acoburn: as a note: this link is a CG draft, it does show prior art. It is referencing a previous version of HTTP sigs 14:43:45 q+ to say CSS implemented clientside credentials out of (research) project necessity 14:43:49 ... it will give you an idea about the possiblities 14:43:53 ack bendm 14:43:53 bendm, you wanted to say CSS implemented clientside credentials out of (research) project necessity 14:43:55 q+ 14:43:59 q+ to say what is being used now (TrinPod) 14:44:22 CSS implemented clientside credentials out of (research) project necessity 14:44:24 bendm: CSS implements clientside credentials 14:44:31 ... just FYI 14:44:46 q? 14:44:48 q+ to mention client credentials impl experience 14:44:56 ack uvdsl 14:45:05 uvdsl: In our internal systems we use WebID+TLS 14:45:13 ... which was one of the first authn mechanisms for Solid 14:45:24 ... basically mTLS authentication without using the certificate chain 14:45:33 ... but based on the WebID profile document for validation. 14:45:41 CSS reference: https://communitysolidserver.github.io/CommunitySolidServer/latest/usage/client-credentials/ 14:45:58 acoburn: You are not validating the certificate chain. Are you using some root CA with that? 14:46:09 uvdsl: We do not and have not considered that. 14:46:31 ... as far as I remember we have disabled the validation of the chain in Tomcat and introduced our own validation logic 14:47:13 acoburn: An alternative could be JWK as the serialization of your public key, you can use the x5c property to add a certificate chain 14:47:18 s? 14:47:21 q? 14:47:25 ack gibsonf 14:47:25 gibsonf, you wanted to say what is being used now (TrinPod) 14:48:07 (fwiw, I think HTTP Signatures RFC solves the server-to-server auth use case nicely) 14:48:17 gibsonf1: We have a strange approach: our servers ip address, serial number, encryption - all servers use the same encryption library 14:48:17 q? 14:48:17 ack acoburn 14:48:17 acoburn, you wanted to mention client credentials impl experience 14:49:04 q+ 14:49:05 acoburn: At Inrupt, we also implemented client credentials - it definitely works but it is cumbersome as it requires an additional pre-registration step 14:49:17 ack laurens 14:49:29 q+ to ask about UCs re S2S 14:49:50 laurens: from our perspective is also that we were not happy with client credentials as a solution 14:49:59 q+ 14:50:13 the other nice thing about HTTP Sig is that it plays nicely with DIDs 14:50:15 ... I'd be intersted in a keypair based solution 14:50:21 q? 14:50:25 ack csarven 14:50:25 csarven, you wanted to ask about UCs re S2S 14:50:42 csarven: HTTP sigs are interesting 14:51:02 q? 14:51:04 q+ to say why server to server 14:51:12 ... I am interested in the actual use cases, that hint at why we need S2S authentication 14:51:26 ... activityPub is one example, and it makes since there 14:51:36 ... but it is not specified how that works 14:51:50 ... it is more ad-hoc in reality 14:51:56 q? 14:52:11 ... but again, I am more interested in the use cases that really demand this 14:52:13 ack uvdsl 14:52:18 @csarven -- you can think of Backup as a general S2S use case 14:52:18 https://github.com/csarven -> @csarven 14:52:29 uvdsl: I am not familiar with HttpSig as an authentication mechanism 14:52:41 ... I would be interested to hear what it offers over mTLS 14:52:46 q+ 14:52:49 dmitriz: good example. then again, client can back up too =) 14:52:50 q- 14:53:01 acoburn: mTLS is a transport layer protocol 14:53:01 acoburn: mTLS is a protocol that happens at transport layer 14:53:04 @csarven - not really, not in batch/unattended mode 14:53:28 ... HTTP sigs will happen at the application layer 14:53:32 q+ 14:53:36 ... the two can happen at tandem 14:53:46 ... but they are fundamentally at different layers 14:53:57 q- 14:54:24 q? 14:54:46 uvdsl: Both do authentication one at transport and one at application level? 14:54:54 dmitriz: Well, client can ask a backup to be created and send a notification to another server to go grab it. Not saying that S2S shouldn't happen in that case but if it demands that approach then I'd like ot hear something stronger. 14:55:10 acoburn: because mTLS validates the particular server endpoint 14:55:15 q+ 14:55:19 ... with HTTP sigs you validate the message 14:55:43 @csarven -- well so lets follow that use case. 'a client can send a notification to another server to go grab it' -- and how would the server grab it? It needs to authenticate itself, right. hence the need for S2S auth 14:55:43 https://github.com/csarven -> @csarven 14:55:49 ... and you exchange public keys and certificates 14:55:59 q? 14:56:03 ack gibsonf 14:56:03 gibsonf, you wanted to say why server to server 14:56:07 ... and not 14:56:24 dmitriz: but that server that needs to grab it, is not acting as a "server"! It is acting as a "client" 14:56:32 gibsonf1: We have all our servers, and they syncronise 14:56:36 -> https://github.com/w3c/lws-ucs/issues/39 server-to-server use case 14:56:36 https://github.com/w3c/lws-ucs/issues/39 -> Issue 39 [UC] Server Side authentication and Data Access (by jeswr) [triage] [usecase] 14:56:41 ack laurens 14:56:54 ... that is, re server-to-server use cases 14:57:00 @csarven - ah, i see the confusion. we're mixing two different meanings of 'client' 14:57:37 @csarven - feel free to substitute in your mind S2S auth -> "auth that does not involve a browser url redirect" 14:57:37 q+ to ask pchampin if the draft ucs is published on a regular basis, so that I could use links to s in the draft in issues 14:57:40 laurens: what we have seen as a use case: sometimes an entity wants to access some data (e.g. an organisation accessing a user's Solid Pod) and that is while the user is offline. 14:57:44 q? 14:57:48 ack hadrian 14:57:48 hadrian, you wanted to ask pchampin if the draft ucs is published on a regular basis, so that I could use links to s in the draft in issues 14:58:21 hadrian: is the draft ucs is published regularly, so we could use links? 14:58:36 pchampin: I do not think we have a decision 14:58:45 hadrian: I'd like to link to definitions 14:58:55 q? 14:58:56 laurens: lets put the resolution of that on the agenda of the next meeting 14:59:17 RRSAgent, draft minutes 14:59:18 I have made the request to generate https://www.w3.org/2025/05/05-lws-minutes.html acoburn 14:59:24 ... thanks for joining, see you next week 14:59:30 +1 14:59:48 RRSAgent, make minutes 14:59:50 I have made the request to generate https://www.w3.org/2025/05/05-lws-minutes.html pchampin 15:05:12 acoburn has left #lws 15:43:12 timbl has joined #lws 15:48:51 timbl has joined #lws 16:33:35 timbl has joined #lws 18:02:28 timbl has joined #lws 18:38:01 timbl has joined #lws 20:30:10 timbl has joined #lws 23:19:03 timbl has joined #lws i/lets start with introducations/topic: Introductions and announcements s/introducations/introductions i/Action Items!/topic: Action Items i/any further action items?/topic: Use cases and requirements: presentation and Q&A i/last week, we discussed around authentication in the browser/topic: Discussion: server-to-server authentication