LDP Service

The Linked Data Platform (LDP) Service implements the World Wide Web Consortium (W3C) Linked Data Platform specification. This specification defines a set of rules for HTTP operations on web resources and is used within Solid to provide access and management of the data in Pods.

Pod Management

ESS’s LDP Service implements the Linked Data Platform specification. As such, navigating, creating, deleting, and editing resources within a Pod is directly supported via the standard LDP interfaces.

Pod URL

Generally, the first time a user logs into Inrupt’s Enterprise Solid Server, a new Pod is provisioned for this user.

On ESS, the user’s Pod URL has the following pattern:

https://<domain>/<username>/

For example, if the ESS domain is pods.example.com, then given a user with the username alice, the following Pod is created:

https://pods.example.com/alice/

See also Identity Broker/WebID.

Pod Structure

When creating a Pod, ESS creates the following default structure under the Pod’s root (where the Pod is represented as a directory structure):

<Pod's root>  = https://<ESS domain>/<username>/
│
├── 📁 policies/
│
├── 📁 profile/
│       └──📄 card
├── 📁 inbox/
│
├── 📁 private/
│
├── 📁 public/
│
└── 📁 settings/
        └── 📄publicTypeIndex.ttl
        └── 📄privateTypeIndex.ttl
        └── 📄prefs.ttl

ESS uses Access Control Policies to manage authorization to resources stored in Solid Pods. By default, the Access Policies for profile and public grant read access to anyone.

Data Validation

Data validation for Linked Data is provided by Shapes that define what properties must and can appear for a data entity. That is, shapes are analogous to data schemas.

You can associate a shape with a resource such that only data that conform to the shape can be stored in that resource. Shapes can also provide guidance when writing applications that act upon the data stored in the Pods.

ESS supports Shape Expressions (ShEx) shapes.

For additional information on Shapes, see:

Configure LDP Service

To configure LDP, you can use Kustomize overlays .

bases:
   - <path to the LDP base configuration directory>

configMapGenerator:
  - name: ess-ldp
    behavior: merge
    literals:
       - "<key>=<value>"

The following keys are available for configuration:

Key

LOGGING_SERVICE

AB_JOLOKIA_PORT

AB_JMX_EXPORTER_PORT

QUARKUS_DATASOURCE_JDBC_URL

QUARKUS_DATASOURCE_USERNAME

QUARKUS_DATASOURCE_PASSWORD

QUARKUS_DATASOURCE_JDBC_MAX_SIZE

TRELLIS_HTTP_BASE_URL

MP_MESSAGING_OUTGOING_INRUPT_REACTIVE_CHANNEL_BOOTSTRAP_SERVERS

INRUPT_REGISTER_PROFILE_OIDC_ISSUER

INRUPT_AUTHN_ADMIN_USERS

INRUPT_REGISTER_REGISTRAR_AGENT

Additional environment variables that may be of interest:

Env Var

Default Value

Description

TRELLIS_FILE_BINARY_PATH

[path to runtime]/data/binaries

Location on disk to store binary files.

Configure Logging and Auditing

Logging, including auditing, is configured through Quarkus. To configure logging for LDP, see Logging.