Skip to content

publicTypeIndex.jsonld should be publicly readable, not owner-only #297

Description

@melvincarvalho

Problem

Pod creation currently applies generatePrivateAcl to /settings/ (owner-only, read/write/control, acl:default). This makes every file in /settings/ private — including publicTypeIndex.jsonld, which by Solid convention must be publicly readable so other agents/apps can discover what types of resources the user has.

Current behaviour

  • /settings/.acl — owner only, with acl:default inheriting down
  • /settings/publicTypeIndex.jsonld — inherits private → not readable by anyone but the owner
  • /settings/privateTypeIndex.jsonld — inherits private ✅ (correct)

Expected behaviour

  • /settings/ — owner only (preferences, private stuff) ✅
  • /settings/publicTypeIndex.jsonldpublic read, owner write/control
  • /settings/privateTypeIndex.jsonld — owner only ✅

Fix

Write a resource-specific ACL at /settings/publicTypeIndex.jsonld.acl during pod creation that grants:

  • Owner: read, write, control
  • foaf:Agent (public): read

This overrides the inherited container default for that one file.

Impact

Without this, apps that try to read a user's public type index (data browsers, friend lists, contact apps, etc.) fail silently or get 403, breaking interop with the wider Solid ecosystem.

Files affected

  • src/handlers/container.js — pod creation (around line 202)
  • src/server.js — single-user pod creation (around line 623)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions