Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The architecture of Trellis supports scaling out a system horizontally, both to support large quantities of data, data redundancy and high server loads. Plans for new features are described in the Development Roadmap.
Downloads and installation instructions are available at the project website. This is the best and easiest way to install Trellis on a linux platform. When installing Trellis on other platforms, please refer to the Manual Installation page.
The Trellis project has also started publishing Docker containers on Docker Hub for both the RDBMS- and Triplestore-based servers. These containers follow the tip of development, currently at 0.8.0-SNAPSHOT. Beginning with the 0.8 release, stable containers that track the released versions of Trellis will also be published.
For developers extending Trellis, all Java components are available on Maven Central. They can be included in a Maven project with these coordinates:
<dependency> <groupId>org.trellisldp</groupId> <artifactId>trellis-api</artifactId> <version>0.7.3</version> </dependency>
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 some simple runtime configuration values. 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.
Trellis does not do everything. There will naturally be a desire to make use of external systems, such as a search engine or a triple store. 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. These notifications conform to the Activity Streams 2.0 specification.