Skip to content

Commit 0a2d74c

Browse files
committed
Release version 5.2.0
2 parents 2328ed2 + f081fe4 commit 0a2d74c

149 files changed

Lines changed: 7553 additions & 14949 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/http-tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
run: ./run.sh "$PWD/ssl/owner/cert.pem" "${{ secrets.HTTP_TEST_OWNER_CERT_PASSWORD }}" "$PWD/ssl/secretary/cert.pem" "${{ secrets.HTTP_TEST_SECRETARY_CERT_PASSWORD }}"
5050
shell: bash
5151
working-directory: http-tests
52-
- name: Stop Docker containers
53-
run: docker compose --env-file ./http-tests/.env down
52+
- name: Stop Docker containers and remove volumes
53+
run: docker compose --env-file ./http-tests/.env down -v
5454
- name: Remove Docker containers
5555
run: docker compose --env-file ./http-tests/.env rm -f

CHANGELOG.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,22 @@
1+
## [5.2.0] - 2026-01-14
2+
### Added
3+
- Application settings form with modal UI for editing dataspace configuration
4+
- Settings endpoint (`/settings`) with `GET` and `PATCH` support for dataspace settings
5+
- HTTP tests for the settings endpoint
6+
- LinkedDataHub packages system with install/uninstall functionality
7+
8+
### Changed
9+
- Core library refactored Graph Store Protocol implementation - split into `GraphStoreBase` (common functionality), `DirectGraphStoreImpl` (direct graph identification), and `GraphStoreImpl` (indirect graph identification with query parameters)
10+
- Incorporated AtomGraph Server code directly into LinkedDataHub codebase
11+
- System configuration dataset now uses named graphs instead of default graph
12+
- Web-Client dependency version bump
13+
- CLI scripts improved for better parameter handling
14+
115
## [5.1.0] - 2025-12-12
216
### Added
317
- ORCID OpenID Connect login support with JWT token verification
418
- `CORSFilter` response filter for cross-origin resource sharing on static assets
5-
- Cache invalidation (BAN requests) for agent and user account lookup queries
19+
- Cache invalidation (`BAN` requests) for agent and user account lookup queries
620
- New `Application::normalizeOrigin` method for origin normalization
721
- `ldh:parent-origin` XPath function for parent origin retrieval
822
- HTTP tests for CORS functionality, internal IP blocking, and form proxying

CLAUDE.md

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,26 @@ export PATH="$(find bin -type d -exec realpath {} \; | tr '\n' ':')$PATH"
112112
- XSLT stylesheets are processed during build to inline XML entities
113113
- Saxon-JS SEF files are generated during Maven package phase for client-side XSLT
114114
- WebID certificates are required for authenticated API access
115-
- The system expects Jena CLI tools to be available (`JENA_HOME` environment variable)
115+
- The system expects Jena CLI tools to be available (`JENA_HOME` environment variable)
116+
117+
## Debugging Test Failures
118+
119+
When HTTP tests fail:
120+
1. NEVER speculate about failures - always add debug output first
121+
2. Add echo statements showing:
122+
- The actual values being tested
123+
- The expected values
124+
- HTTP response codes and bodies where relevant
125+
3. Run the test to see actual output
126+
4. Only then diagnose and fix
127+
128+
Example debug pattern:
129+
```bash
130+
result=$(curl ...)
131+
expected="..."
132+
echo "DEBUG: Expected: $expected"
133+
echo "DEBUG: Got: $result"
134+
if [ "$result" != "$expected" ]; then
135+
echo "DEBUG: Mismatch!"
136+
exit 1
137+
fi

README.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,21 @@ The following tools are required for CLI scripts in the `bin/` directory:
105105
* There might go up to a minute before the web server is available because the nginx server depends on healthy LinkedDataHub and the healthcheck is done every 20s
106106
* You will likely get a browser warning such as `Your connection is not private` in Chrome or `Warning: Potential Security Risk Ahead` in Firefox due to the self-signed server certificate. Ignore it: click `Advanced` and `Proceed` or `Accept the risk` to proceed.
107107
* If this option does not appear in Chrome (as observed on some MacOS), you can open `chrome://flags/#allow-insecure-localhost`, switch `Allow invalid certificates for resources loaded from localhost` to `Enabled` and restart Chrome
108+
* MacOS: Chrome subdomain support: Chrome on macOS requires the server certificate to be installed to the System keychain to properly load resources from dataspace subdomains (e.g., `admin.localhost:4443`). Firefox is more lenient and will work without this step.
109+
1. Open **Keychain Access** (Applications > Utilities > Keychain Access)
110+
2. Select **System** keychain in the left sidebar
111+
3. **File** → **Import Items** → select `ssl/server/server.crt`
112+
4. Enter your admin password when prompted
113+
5. Double-click the "localhost" certificate
114+
6. Expand the **Trust** section
115+
7. Set "When using this certificate:" to **Always Trust**
116+
8. Close the window (enter password again)
117+
9. Completely quit Chrome (Cmd+Q) and restart
118+
119+
Alternatively, use the command line:
120+
```shell
121+
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ssl/server/server.crt
122+
```
108123
* `.env_sample` and `.env` files might be invisible in MacOS Finder which hides filenames starting with a dot. You should be able to [create it using Terminal](https://stackoverflow.com/questions/5891365/mac-os-x-doesnt-allow-to-name-files-starting-with-a-dot-how-do-i-name-the-hta) however.
109124
* On Linux your user may need to be a member of the `docker` group. Add it using
110125
```shell
@@ -187,7 +202,7 @@ The options are described in more detail in the [configuration documentation](ht
187202

188203
If you need to start fresh and wipe the existing setup (e.g. after configuring a new base URI), you can do that using
189204
```shell
190-
sudo rm -rf data uploads && docker-compose down -v
205+
sudo rm -rf fuseki uploads ssl datasets && docker-compose down -v
191206
```
192207

193208
_:warning: This will **remove the persisted data and files** as well as Docker volumes._
@@ -266,7 +281,6 @@ See the [Web-Algebra repository](https://github.com/AtomGraph/Web-Algebra) for s
266281

267282
LinkedDataHub includes an HTTP [test suite](https://github.com/AtomGraph/LinkedDataHub/tree/master/http-tests). The server implementation is also covered by the [Processor test suite](https://github.com/AtomGraph/Processor/tree/master/http-tests).
268283

269-
![HTTP-tests](https://github.com/AtomGraph/LinkedDataHub/actions/workflows/http-tests.yml/badge.svg)
270284
![HTTP-tests](https://github.com/AtomGraph/LinkedDataHub/actions/workflows/http-tests.yml/badge.svg)
271285

272286
## Dependencies
@@ -287,8 +301,9 @@ LinkedDataHub includes an HTTP [test suite](https://github.com/AtomGraph/LinkedD
287301
* [java-jwt](https://github.com/auth0/java-jwt)
288302
* [ExpiringMap](https://github.com/jhalterman/expiringmap)
289303
* [CSV2RDF](https://github.com/AtomGraph/CSV2RDF)
290-
* [Processor](https://github.com/AtomGraph/Processor)
291304
* [Web-Client](https://github.com/AtomGraph/Web-Client)
305+
* [Twirl](https://github.com/AtomGraph/Twirl)
306+
* [jena-shacl](https://mvnrepository.com/artifact/org.apache.jena/jena-shacl)
292307

293308
### Docker
294309

bin/admin/clear-ontology.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/usr/bin/env bash
2+
set -eo pipefail
23

34
print_usage()
45
{
File renamed without changes.

0 commit comments

Comments
 (0)