Hi
I’m working on a project where I need to change the ACL for some files and I’ve run into an issue, hoping I can find some help here in debugging it because I can’t seem to find where it goes wrong.
I have a script running that updates a file every ~30 secs with some new data using the rdflib updater. (Authentication happens using solid-auth-cli by Jeffz and I’m using the WebId of the actual Solid Pod)
If the individual file does not have its own ACL yet, all works fine and I’m getting responses like this:
Updating the content at https://flordigipolis.inrupt.net/private/iot/urn:dev:mac:807d3afffe367a58_humidity.ttl with 1 messages.
UpdateManager: Return success 200 elapsed 971ms
Succesfully updated resource at https://flordigipolis.inrupt.net/private/iot/urn:dev:mac:807d3afffe367a58_humidity.ttl
Though after adding the ACL suddenly I get 403 errors, like these:
Updating the content at https://flordigipolis.inrupt.net/private/iot/urn:dev:mac:807d3afffe367a58_humidity.ttl with 1 messages.
UpdateManager: Return FAILURE undefined elapsed 1059ms
Error updating document: Web error: 403 (Forbidden) on PATCH of <https://flordigipolis.inrupt.net/private/iot/urn:dev:mac:807d3afffe367a58_humidity.ttl>
(Note: the first and third lines result from my own code, not the rdflib library)
At first I though something must be going wrong while creating the ACL, but when I print fetch it right after creating the document and it looks like this:
@prefix acl: <http://www.w3.org/ns/auth/acl#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
<#default> a acl:Authorization;
acl:agent </profile/card#me>;
acl:accessTo <./urn%3Adev%3Amac%3Ab4e62dfffe703f4d_light.ttl>;
acl:mode acl:Append, acl:Control, acl:Read, acl:Write.
<#ReadWriteAppendControl-0> a acl:Authorization;
acl:agent </profile/card#me>;
acl:accessTo <./urn%3Adev%3Amac%3Ab4e62dfffe703f4d_light.ttl>;
acl:mode acl:Read, acl:Write, acl:Append, acl:Control.
The rule I want to be in there is now in there twice, because I explicitly added the rule again to make sure. Though if I don’t do this it doesn’t make any difference to the end result.
Any idea of what could be going on? Or at least of how I could try to fix this?
Thanks in advance
Edit: Just realized I copied the ACL and 403 error messages for different files, but I’ve tried the same action on different files and all give the same result. Sorry if this causes confusion.