-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Summary
JSS currently creates Settings/Preferences.ttl, Settings/publicTypeIndex.ttl, and Settings/privateTypeIndex.ttl during pod creation. This is wrong — these are app-level concerns, not server responsibilities. CSS (Community Solid Server) does not create these files.
Why this is a bug
The correct approach per CSS and the Solid spec:
-
Preferences — an app creates a preferences resource and links it from the profile by updating
profile/cardto include:<#me> <http://www.w3.org/ns/pim/space#preferences> </settings.ttl> .
-
Type Indexes — apps create and manage type indexes, then link them from the WebID profile. The server has no business knowing about type registrations.
-
Discovery — apps discover preferences via the WebID profile link (
pim:preferences), not by convention paths hardcoded by the server.
Current behavior
Pod creation in src/handlers/container.js generates:
Settings/Preferences.ttl— with links to type indexesSettings/publicTypeIndex.ttl— emptysolid:TypeIndexSettings/privateTypeIndex.ttl— emptysolid:TypeIndex
And src/webid/profile.js embeds publicTypeIndex and privateTypeIndex links directly in the profile.
Expected behavior
- Server creates only: profile/card, ACLs, basic containers (public/, private/, inbox/)
- Apps are responsible for creating preferences and type indexes via standard LDP operations (PUT/PATCH)
- Apps link preferences from the profile via PATCH on
profile/card - Aligns with CSS behavior where preferences are standard LDP resources, not server-managed
Reference
CSS treats all resources as standard LDP resources. "Preferences" in CSS refers to HTTP content negotiation (Accept headers), not user preference storage.