Deep change detection for containers
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Active
- Domain
- backend-api-design
Research direction
Start with the Solid Protocol section on container Last-Modified comparison, then compare the listed header, method, query, and notification approaches. Done means the project has agreed on a concrete deep-change-detection direction and captured the resulting protocol requirements or specification changes.
Written by the indexing model from the issue text.
Description
Clients need a reliable and efficient way to determine whether any resource within a container hierarchy has changed and when, and ideally what may have changed, without having to traverse the entire tree on every sync.
(Aside: this may also need or want to incorporate if and what auxiliary resources of resources within a container hierarchy changed.)
As it stands, while the Solid Protocol expects servers to include the Last-Modified header in the response, update of that value is left to the discretion of the server, and there is no requirement that the container's Last-Modified also reflects a change that may have happened somewhere within a given container hierarchy ( https://solidproject.org/TR/2024/protocol-20240512#container-last-modified-comparison ). So, this issue is to revisit this topic since it was put aside at the time.
There may be a range of solutions with varying complexity and cost, from always requiring a server to use most up to date modified value (and the distinction between the container resource itself and a resource within a container hierarchy), to client's detecting server's capabilities, to client sending a preference signal, to sync or async updates (notifications), to querying, to... whatever. So, e.g., potentially using:
Last-ModifiedheaderPreferheaderPreference-AppliedheaderDepthheaderPROPFINDheaderHEADorGETmethodsQUERYmethod
Re QUERY, e.g.:
QUERY /
Content-Type: application/sparql-query (or whatever)
Prefer: return=deep-last-modified (or whatever)
SELECT ?resource ?modified (or whatever)
...
- Dominant language
- HTML
- Stars
- 563
- Forks
- 110
- Avg merge
- 4d 13h
- Merged PRs (30d)
- 3
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from solid/specification
-
new-work-item
Difficulty 5/5 Over a week Newbie friendliness 25/100
solid/specification#806 · 11 comments · 4 reactions ·
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
solid/specification#804 · 9 comments · 1 reaction ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
solid/specification#799 · 1 reaction ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
solid/specification#788 · 4 comments · 1 reaction ·
-
Difficulty 5/5 Over a week Newbie friendliness 38/100
solid/specification#787 · 19 comments · 10 reactions ·
All issues in solid/specification
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
mksglu/context-mode#1200 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr impact:auth-provider issue-rating: 🌊 off-meta tidepool P2
Difficulty 1/5 Under an hour Newbie friendliness 80/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100