Skip to content

Commit 73d540f

Browse files
committed
README update
1 parent 224e7c3 commit 73d540f

2 files changed

Lines changed: 17 additions & 2 deletions

File tree

CLAUDE.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,18 @@ find ./document-hierarchy/ -name '*.sh' -exec bash {} \;
8080
- `ServiceContext` decouples HTTP infrastructure from `Service`, holding dataspace and service metadata separately
8181
- Dataspace metadata and service metadata are split in configuration; types for `lapp:endUserApplication`/`lapp:adminApplication` are inferred on the fly from `system.trig`
8282

83+
### Dataspaces
84+
Since v5.1.0, a single LDH instance supports multiple **dataspaces**, each identified by a distinct subdomain (origin). Each dataspace is a pair of applications: an end-user app (`<subdomain>`) and an admin app (`admin.<subdomain>`), routed by nginx via wildcard subdomain matching.
85+
86+
Configuration is split across two files:
87+
- `config/dataspaces.trig` — public metadata: origins (`lapp:origin`), ontologies (`ldt:ontology`), stylesheets (`ac:stylesheet`)
88+
- `config/system.trig` — internal wiring: maps apps to SPARQL services (`ldt:service`) and assigns types (`lapp:AdminApplication`/`lapp:EndUserApplication`)
89+
90+
Multiple dataspaces can share the same backend SPARQL service.
91+
8392
### Service Architecture
8493
The application runs as a multi-container setup:
85-
- **nginx**: Reverse proxy and SSL termination
94+
- **nginx**: Reverse proxy and SSL termination (wildcard subdomain routing for dataspaces)
8695
- **linkeddatahub**: Main Java application (Tomcat)
8796
- **fuseki-admin/fuseki-end-user**: Separate SPARQL stores
8897
- **varnish-frontend/varnish-admin/varnish-end-user**: Caching layers

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,13 @@ The following tools are required for CLI scripts in the `bin/` directory:
153153

154154
### Dataspaces
155155

156-
Dataspaces are configured in [`config/system.trig`](https://github.com/AtomGraph/LinkedDataHub/blob/master/config/system.trig). Relative URIs will be resolved against the base URI configured in the `.env` file.
156+
Since version 5.1.0, a single LinkedDataHub instance supports multiple **dataspaces**, each identified by a distinct subdomain (origin). Each dataspace consists of a pair of applications: an end-user app (e.g. `https://northwind-traders.demo.localhost:4443`) and an admin app on the `admin.` subdomain (e.g. `https://admin.northwind-traders.demo.localhost:4443`).
157+
158+
Dataspace configuration is split across two files:
159+
- [`config/dataspaces.trig`](https://github.com/AtomGraph/LinkedDataHub/blob/master/config/dataspaces.trig) — public metadata: origins (`lapp:origin`), ontologies, stylesheets
160+
- [`config/system.trig`](https://github.com/AtomGraph/LinkedDataHub/blob/master/config/system.trig) — internal wiring: SPARQL service bindings and application types (`lapp:AdminApplication`/`lapp:EndUserApplication`)
161+
162+
To add a new dataspace, add corresponding entries to both files. Relative URIs will be resolved against the base URI configured in the `.env` file.
157163

158164
_:warning: Do not use blank nodes to identify applications or services. We recommend using the `urn:` URI scheme, since LinkedDataHub application resources are not accessible under their own dataspace._
159165

0 commit comments

Comments
 (0)