Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

getPod() assumes subdomain pattern, breaks path-based pods

Offen
#651 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
48/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
typescript
Bereich
authentication

Rechercherichtung

Beginnen Sie mit getPod() in src/utils/headerFooterHelpers.ts und untersuchen Sie, wie authn.currentUser(), WebID-Daten und storage in den umgebenden Hilfsfunktionen verfügbar sind. Überprüfen Sie das Verhalten mit einem pfadbasierten Pod wie http://server.com/alice/ und behalten Sie den bestehenden ursprungsbasierten Fallback für Subdomain-Pods bei.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Problem

The getPod() function in src/utils/headerFooterHelpers.ts assumes pods are at the origin (subdomain pattern), which breaks path-based pod servers.

Current code (line 17-20):

export function getPod (): NamedNode {
  // @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
  return sym(document.location.origin).site()
}

The TODO comment acknowledges this limitation.

Impact

When using a path-based pod server (e.g., http://server.com/alice/), after login:

  • WebID: http://server.com/alice/profile/card#me ✓
  • getPod() returns: http://server.com/ ✗
  • Profile guess becomes: http://server.com/profile/card#me ✗
  • Should be: http://server.com/alice/profile/card#me ✓

This causes 404 errors when mashlib tries to load the user's profile.

Affected Servers

  • Any path-based pod server
  • CSS (Community Solid Server) supports both subdomain and path patterns
  • JSS (JavaScript Solid Server) uses path pattern

Suggested Fix

Derive the pod root from the logged-in user's WebID rather than assuming document.location.origin:

export function getPod (): NamedNode {
  const user = authn.currentUser()
  if (user) {
    // Extract pod root from WebID's pim:storage or by convention
    const storage = getStorage(user)
    if (storage) return storage
  }
  // Fallback to origin-based (subdomain pattern)
  return sym(document.location.origin).site()
}

Or use the pim:storage triple from the user's profile which explicitly declares the pod root.

Environment

  • solid-ui version: latest (via mashlib CDN)
  • Server: JSS (JavaScript Solid Server) with path-based pods
Vorherrschende Sprache
TypeScript
Sterne
153
Forks
46
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
7

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus SolidOS/solid-ui

Alle Issues in SolidOS/solid-ui

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.