Skip to content
Aaron Coburn edited this page Nov 2, 2017 · 59 revisions

Trellis is a modular LDP server that emphasizes both scalability and conformance with web standards.

The architecture of Trellis is designed such that a server can be scaled out, horizontally. Plans for new features are described in the Development Roadmap.

Core Features

Resources are managed by means of a RESTful HTTP API, following the Linked Data Platform specification. Creation, modification and deletion operations are mapped to standard HTTP methods that a client can use to interact with server resources.

An HTTP client is also able to retrieve the historical state of a resource at any arbitrary point in time. This is done by following the interaction models of the Memento specification. For more information and examples of how a client interacts with versions of a resource, please refer to the resource versioning document.

In addition to accessing historical versions of a resource, it is also useful to understand who made what change at what point in time. This information is made available to HTTP clients with a provenance (audit) feature that is part of every Trellis resource.

For content that is stored for years or decades, it is often important to be able to verify that the stored bits have not been changed or tampered with. Trellis provides a mechanism that can be used to validate the content of binaries.

Authentication and Authorization

Clients can authenticate to a Trellis repository with basic auth, token-based (JWT) auth or they can access the server anonymously. Each mechanism can be turned on or off with a runtime configuration. More information about how Trellis authenticates users can be found on the Authentication page.

After a client is authenticated and a WebID is assigned to the agent, Authorization decisions can be controlled with WebAC, an RDF vocabulary for defining access to resources. For more information and examples, please visit the Authorization page.

External integrations

Trellis does not do everything. There will naturally be a desire to make use of external systems, such as a search engine. Trellis makes it easy to support real-time integrations of such external components by publishing a notification every time a resource is added, modified or deleted.

Clone this wiki locally