Skip to content

Commit 089da77

Browse files
committed
Merge branch 'develop' of github.com:AtomGraph/LinkedDataHub into develop
2 parents 7236501 + 15994ed commit 089da77

File tree

22 files changed

+852
-158
lines changed

22 files changed

+852
-158
lines changed

config/system.trig

Lines changed: 53 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,41 +15,59 @@
1515

1616
# root admin
1717

18-
<urn:linkeddatahub:apps/admin> a lapp:Application, lapp:AdminApplication ;
19-
dct:title "LinkedDataHub admin" ;
20-
# ldt:base <https://admin.localhost:4443/> ;
21-
lapp:origin <https://admin.localhost:4443> ;
22-
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
23-
ldt:service <urn:linkeddatahub:services/admin> ;
24-
ac:stylesheet <static/xsl/admin/layout.xsl> ;
25-
lapp:endUserApplication <urn:linkeddatahub:apps/end-user> ;
26-
lapp:frontendProxy <http://varnish-frontend:6060/> .
27-
28-
<urn:linkeddatahub:services/admin> a sd:Service ;
29-
dct:title "LinkedDataHub admin service" ;
30-
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
31-
sd:endpoint <http://fuseki-admin:3030/ds/> ;
32-
a:graphStore <http://fuseki-admin:3030/ds/> ;
33-
a:quadStore <http://fuseki-admin:3030/ds/> ;
34-
lapp:backendProxy <http://varnish-admin/> .
18+
<urn:linkeddatahub:apps/admin>
19+
{
20+
<urn:linkeddatahub:apps/admin> a lapp:Application, lapp:AdminApplication ;
21+
dct:title "LinkedDataHub admin" ;
22+
# ldt:base <https://admin.localhost:4443/> ;
23+
lapp:origin <https://admin.localhost:4443> ;
24+
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
25+
ldt:service <urn:linkeddatahub:services/admin> ;
26+
ac:stylesheet <static/xsl/admin/layout.xsl> ;
27+
lapp:endUserApplication <urn:linkeddatahub:apps/end-user> ;
28+
lapp:frontendProxy <http://varnish-frontend:6060/> .
29+
30+
}
31+
32+
<urn:linkeddatahub:services/admin>
33+
{
34+
35+
<urn:linkeddatahub:services/admin> a sd:Service ;
36+
dct:title "LinkedDataHub admin service" ;
37+
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
38+
sd:endpoint <http://fuseki-admin:3030/ds/> ;
39+
a:graphStore <http://fuseki-admin:3030/ds/> ;
40+
a:quadStore <http://fuseki-admin:3030/ds/> ;
41+
lapp:backendProxy <http://varnish-admin/> .
42+
43+
}
3544

3645
# root end-user
3746

38-
<urn:linkeddatahub:apps/end-user> a lapp:Application, lapp:EndUserApplication ;
39-
dct:title "LinkedDataHub" ;
40-
# ldt:base <https://localhost:4443/> ;
41-
lapp:origin <https://localhost:4443> ;
42-
ldt:ontology <https://localhost:4443/ns#> ;
43-
ldt:service <urn:linkeddatahub:services/end-user> ;
44-
ac:stylesheet <static/xsl/layout.xsl> ;
45-
lapp:adminApplication <urn:linkeddatahub:apps/admin> ;
46-
lapp:frontendProxy <http://varnish-frontend:6060/> ;
47-
lapp:public true .
48-
49-
<urn:linkeddatahub:services/end-user> a sd:Service ;
50-
dct:title "LinkedDataHub service" ;
51-
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
52-
sd:endpoint <http://fuseki-end-user:3030/ds/> ;
53-
a:graphStore <http://fuseki-end-user:3030/ds/> ;
54-
a:quadStore <http://fuseki-end-user:3030/ds/> ;
55-
lapp:backendProxy <http://varnish-end-user/> .
47+
<urn:linkeddatahub:apps/end-user>
48+
{
49+
<urn:linkeddatahub:apps/end-user> a lapp:Application, lapp:EndUserApplication ;
50+
dct:title "LinkedDataHub" ;
51+
# ldt:base <https://localhost:4443/> ;
52+
lapp:origin <https://localhost:4443> ;
53+
ldt:ontology <https://localhost:4443/ns#> ;
54+
ldt:service <urn:linkeddatahub:services/end-user> ;
55+
ac:stylesheet <static/xsl/layout.xsl> ;
56+
lapp:adminApplication <urn:linkeddatahub:apps/admin> ;
57+
lapp:frontendProxy <http://varnish-frontend:6060/> ;
58+
lapp:public true .
59+
60+
}
61+
62+
<urn:linkeddatahub:services/end-user>
63+
{
64+
65+
<urn:linkeddatahub:services/end-user> a sd:Service ;
66+
dct:title "LinkedDataHub service" ;
67+
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
68+
sd:endpoint <http://fuseki-end-user:3030/ds/> ;
69+
a:graphStore <http://fuseki-end-user:3030/ds/> ;
70+
a:quadStore <http://fuseki-end-user:3030/ds/> ;
71+
lapp:backendProxy <http://varnish-end-user/> .
72+
73+
}

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ services:
9393
- ./datasets/secretary:/var/linkeddatahub/datasets/secretary
9494
- ./uploads:/var/www/linkeddatahub/uploads
9595
- ./config/dev.log4j.properties:/usr/local/tomcat/webapps/ROOT/WEB-INF/classes/log4j.properties:ro
96-
- ./config/system.trig:/var/linkeddatahub/datasets/system.trig:ro
96+
- ./config/system.trig:/var/linkeddatahub/datasets/system.trig
9797
fuseki-admin:
9898
image: atomgraph/fuseki:4.7.0
9999
user: root # otherwise fuseki user does not have permissions to the mounted folder which is owner by root

http-tests/config/system.trig

Lines changed: 88 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -15,76 +15,104 @@
1515

1616
# root admin
1717

18-
<urn:linkeddatahub:apps/admin> a lapp:Application, lapp:AdminApplication ;
19-
dct:title "LinkedDataHub admin" ;
20-
# ldt:base <https://admin.localhost:4443/> ;
21-
lapp:origin <https://admin.localhost:4443> ;
22-
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
23-
ldt:service <urn:linkeddatahub:services/admin> ;
24-
lapp:endUserApplication <urn:linkeddatahub:apps/end-user> ;
25-
lapp:frontendProxy <http://varnish-frontend:6060/> .
18+
<urn:linkeddatahub:apps/admin>
19+
{
20+
<urn:linkeddatahub:apps/admin> a lapp:Application, lapp:AdminApplication ;
21+
dct:title "LinkedDataHub admin" ;
22+
# ldt:base <https://admin.localhost:4443/> ;
23+
lapp:origin <https://admin.localhost:4443> ;
24+
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
25+
ldt:service <urn:linkeddatahub:services/admin> ;
26+
ac:stylesheet <static/xsl/admin/layout.xsl> ;
27+
lapp:endUserApplication <urn:linkeddatahub:apps/end-user> ;
28+
lapp:frontendProxy <http://varnish-frontend:6060/> .
29+
}
2630

27-
<urn:linkeddatahub:services/admin> a sd:Service ;
28-
dct:title "LinkedDataHub admin service" ;
29-
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
30-
sd:endpoint <http://fuseki-admin:3030/ds/> ;
31-
a:graphStore <http://fuseki-admin:3030/ds/> ;
32-
a:quadStore <http://fuseki-admin:3030/ds/> ;
33-
lapp:backendProxy <http://varnish-admin/> .
31+
<urn:linkeddatahub:services/admin>
32+
{
33+
<urn:linkeddatahub:services/admin> a sd:Service ;
34+
dct:title "LinkedDataHub admin service" ;
35+
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
36+
sd:endpoint <http://fuseki-admin:3030/ds/> ;
37+
a:graphStore <http://fuseki-admin:3030/ds/> ;
38+
a:quadStore <http://fuseki-admin:3030/ds/> ;
39+
lapp:backendProxy <http://varnish-admin/> .
40+
}
3441

3542
# root end-user
3643

37-
<urn:linkeddatahub:apps/end-user> a lapp:Application, lapp:EndUserApplication ;
38-
dct:title "LinkedDataHub" ;
39-
# ldt:base <https://localhost:4443/> ;
40-
lapp:origin <https://localhost:4443> ;
41-
ldt:ontology <https://localhost:4443/ns#> ;
42-
ldt:service <urn:linkeddatahub:services/end-user> ;
43-
lapp:adminApplication <urn:linkeddatahub:apps/admin> ;
44-
lapp:frontendProxy <http://varnish-frontend:6060/> ;
45-
lapp:public true .
44+
<urn:linkeddatahub:apps/end-user>
45+
{
46+
<urn:linkeddatahub:apps/end-user> a lapp:Application, lapp:EndUserApplication ;
47+
dct:title "LinkedDataHub" ;
48+
# ldt:base <https://localhost:4443/> ;
49+
lapp:origin <https://localhost:4443> ;
50+
ldt:ontology <https://localhost:4443/ns#> ;
51+
ldt:service <urn:linkeddatahub:services/end-user> ;
52+
ac:stylesheet <static/xsl/layout.xsl> ;
53+
lapp:adminApplication <urn:linkeddatahub:apps/admin> ;
54+
lapp:frontendProxy <http://varnish-frontend:6060/> ;
55+
lapp:public true .
56+
}
4657

47-
<urn:linkeddatahub:services/end-user> a sd:Service ;
48-
dct:title "LinkedDataHub service" ;
49-
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
50-
sd:endpoint <http://fuseki-end-user:3030/ds/> ;
51-
a:graphStore <http://fuseki-end-user:3030/ds/> ;
52-
a:quadStore <http://fuseki-end-user:3030/ds/> ;
53-
lapp:backendProxy <http://varnish-end-user/> .
58+
<urn:linkeddatahub:services/end-user>
59+
{
60+
<urn:linkeddatahub:services/end-user> a sd:Service ;
61+
dct:title "LinkedDataHub service" ;
62+
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
63+
sd:endpoint <http://fuseki-end-user:3030/ds/> ;
64+
a:graphStore <http://fuseki-end-user:3030/ds/> ;
65+
a:quadStore <http://fuseki-end-user:3030/ds/> ;
66+
lapp:backendProxy <http://varnish-end-user/> .
67+
}
5468

5569
# test admin
5670

57-
<urn:linkeddatahub:apps/test/admin> a lapp:Application, lapp:AdminApplication ;
58-
dct:title "Test admin" ;
59-
lapp:origin <https://admin.test.localhost:4443> ;
60-
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
61-
ldt:service <urn:linkeddatahub:services/test/admin> ;
62-
lapp:endUserApplication <urn:linkeddatahub:apps/test/end-user> ;
63-
lapp:frontendProxy <http://varnish-frontend:6060/> .
71+
<urn:linkeddatahub:apps/test/admin>
72+
{
73+
<urn:linkeddatahub:apps/test/admin> a lapp:Application, lapp:AdminApplication ;
74+
dct:title "Test admin" ;
75+
lapp:origin <https://admin.test.localhost:4443> ;
76+
ldt:ontology <https://w3id.org/atomgraph/linkeddatahub/admin#> ;
77+
ldt:service <urn:linkeddatahub:services/test/admin> ;
78+
ac:stylesheet <static/xsl/admin/layout.xsl> ;
79+
lapp:endUserApplication <urn:linkeddatahub:apps/test/end-user> ;
80+
lapp:frontendProxy <http://varnish-frontend:6060/> .
81+
}
6482

65-
<urn:linkeddatahub:services/test/admin> a sd:Service ;
66-
dct:title "Test admin service" ;
67-
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
68-
sd:endpoint <http://fuseki-admin:3030/ds/> ;
69-
a:graphStore <http://fuseki-admin:3030/ds/> ;
70-
a:quadStore <http://fuseki-admin:3030/ds/> ;
71-
lapp:backendProxy <http://varnish-admin/> .
83+
<urn:linkeddatahub:services/test/admin>
84+
{
85+
<urn:linkeddatahub:services/test/admin> a sd:Service ;
86+
dct:title "Test admin service" ;
87+
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
88+
sd:endpoint <http://fuseki-admin:3030/ds/> ;
89+
a:graphStore <http://fuseki-admin:3030/ds/> ;
90+
a:quadStore <http://fuseki-admin:3030/ds/> ;
91+
lapp:backendProxy <http://varnish-admin/> .
92+
}
7293

7394
# test end-user
7495

75-
<urn:linkeddatahub:apps/test/end-user> a lapp:Application, lapp:EndUserApplication ;
76-
dct:title "Test" ;
77-
lapp:origin <https://test.localhost:4443> ;
78-
ldt:ontology <https://test.localhost:4443/ns#> ;
79-
ldt:service <urn:linkeddatahub:services/test/end-user> ;
80-
lapp:adminApplication <urn:linkeddatahub:apps/test/admin> ;
81-
lapp:frontendProxy <http://varnish-frontend:6060/> ;
82-
lapp:public true .
96+
<urn:linkeddatahub:apps/test/end-user>
97+
{
98+
<urn:linkeddatahub:apps/test/end-user> a lapp:Application, lapp:EndUserApplication ;
99+
dct:title "Test" ;
100+
lapp:origin <https://test.localhost:4443> ;
101+
ldt:ontology <https://test.localhost:4443/ns#> ;
102+
ldt:service <urn:linkeddatahub:services/test/end-user> ;
103+
ac:stylesheet <static/xsl/layout.xsl> ;
104+
lapp:adminApplication <urn:linkeddatahub:apps/test/admin> ;
105+
lapp:frontendProxy <http://varnish-frontend:6060/> ;
106+
lapp:public true .
107+
}
83108

84-
<urn:linkeddatahub:services/test/end-user> a sd:Service ;
85-
dct:title "Test service" ;
86-
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
87-
sd:endpoint <http://fuseki-end-user:3030/ds/> ;
88-
a:graphStore <http://fuseki-end-user:3030/ds/> ;
89-
a:quadStore <http://fuseki-end-user:3030/ds/> ;
90-
lapp:backendProxy <http://varnish-end-user/> .
109+
<urn:linkeddatahub:services/test/end-user>
110+
{
111+
<urn:linkeddatahub:services/test/end-user> a sd:Service ;
112+
dct:title "Test service" ;
113+
sd:supportedLanguage sd:SPARQL11Query, sd:SPARQL11Update ;
114+
sd:endpoint <http://fuseki-end-user:3030/ds/> ;
115+
a:graphStore <http://fuseki-end-user:3030/ds/> ;
116+
a:quadStore <http://fuseki-end-user:3030/ds/> ;
117+
lapp:backendProxy <http://varnish-end-user/> .
118+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
initialize_dataset "$END_USER_BASE_URL" "$TMP_END_USER_DATASET" "$END_USER_ENDPOINT_URL"
5+
initialize_dataset "$ADMIN_BASE_URL" "$TMP_ADMIN_DATASET" "$ADMIN_ENDPOINT_URL"
6+
purge_cache "$END_USER_VARNISH_SERVICE"
7+
purge_cache "$ADMIN_VARNISH_SERVICE"
8+
purge_cache "$FRONTEND_VARNISH_SERVICE"
9+
10+
# Test: GET /settings with If-None-Match - Conditional GET with matching ETag
11+
12+
# First GET to obtain ETag
13+
response=$(curl -i -k -s \
14+
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
15+
-H "Accept: application/n-triples" \
16+
"${END_USER_BASE_URL}settings")
17+
18+
# Extract ETag
19+
etag=$(echo "$response" | grep -i "ETag:" | sed 's/ETag: //i' | tr -d '\r\n')
20+
21+
# Second GET with If-None-Match
22+
curl -k -w "%{http_code}\n" -o /dev/null -s \
23+
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
24+
-H "Accept: application/n-triples" \
25+
-H "If-None-Match: $etag" \
26+
"${END_USER_BASE_URL}settings" \
27+
| grep -q "$STATUS_NOT_MODIFIED"

http-tests/misc/GET-settings.sh

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
initialize_dataset "$END_USER_BASE_URL" "$TMP_END_USER_DATASET" "$END_USER_ENDPOINT_URL"
5+
initialize_dataset "$ADMIN_BASE_URL" "$TMP_ADMIN_DATASET" "$ADMIN_ENDPOINT_URL"
6+
purge_cache "$END_USER_VARNISH_SERVICE"
7+
purge_cache "$ADMIN_VARNISH_SERVICE"
8+
purge_cache "$FRONTEND_VARNISH_SERVICE"
9+
10+
# Test: GET /settings - Retrieve current application settings
11+
12+
response=$(curl -k -w "%{http_code}\n" -s \
13+
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
14+
-H "Accept: application/n-triples" \
15+
"${END_USER_BASE_URL}settings")
16+
17+
# Extract status code (last line) and body (everything else)
18+
status=$(echo "$response" | tail -n 1)
19+
body=$(echo "$response" | sed '$d')
20+
21+
# Verify 200 OK response
22+
if [ "$status" != "$STATUS_OK" ]; then
23+
exit 1
24+
fi
25+
26+
# Verify response contains expected application data
27+
if ! echo "$body" | grep -q '<urn:linkeddatahub:apps/end-user>'; then
28+
exit 1
29+
fi
30+
31+
if ! echo "$body" | grep -q '<https://w3id.org/atomgraph/linkeddatahub/apps#EndUserApplication>'; then
32+
exit 1
33+
fi
34+
35+
if ! echo "$body" | grep -q '"LinkedDataHub"'; then
36+
exit 1
37+
fi
38+
39+
if ! echo "$body" | grep -q '<https://localhost:4443>'; then
40+
exit 1
41+
fi
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
initialize_dataset "$END_USER_BASE_URL" "$TMP_END_USER_DATASET" "$END_USER_ENDPOINT_URL"
5+
initialize_dataset "$ADMIN_BASE_URL" "$TMP_ADMIN_DATASET" "$ADMIN_ENDPOINT_URL"
6+
purge_cache "$END_USER_VARNISH_SERVICE"
7+
purge_cache "$ADMIN_VARNISH_SERVICE"
8+
purge_cache "$FRONTEND_VARNISH_SERVICE"
9+
10+
# Test: PATCH /settings - Remove mandatory property (should fail validation)
11+
12+
curl -k -w "%{http_code}\n" -o /dev/null -s \
13+
-X PATCH \
14+
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
15+
-H "Content-Type: application/sparql-update" \
16+
-d "PREFIX lapp: <https://w3id.org/atomgraph/linkeddatahub/apps#>
17+
DELETE { ?app lapp:origin ?origin }
18+
WHERE { ?app lapp:origin ?origin }" \
19+
"${END_USER_BASE_URL}settings" \
20+
| grep -q "$STATUS_UNPROCESSABLE_ENTITY"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
initialize_dataset "$END_USER_BASE_URL" "$TMP_END_USER_DATASET" "$END_USER_ENDPOINT_URL"
5+
initialize_dataset "$ADMIN_BASE_URL" "$TMP_ADMIN_DATASET" "$ADMIN_ENDPOINT_URL"
6+
purge_cache "$END_USER_VARNISH_SERVICE"
7+
purge_cache "$ADMIN_VARNISH_SERVICE"
8+
purge_cache "$FRONTEND_VARNISH_SERVICE"
9+
10+
# Test: PATCH /settings - Empty result (should fail with 422)
11+
12+
curl -k -w "%{http_code}\n" -o /dev/null -s \
13+
-X PATCH \
14+
-E "$OWNER_CERT_FILE":"$OWNER_CERT_PWD" \
15+
-H "Content-Type: application/sparql-update" \
16+
-d "DELETE WHERE { ?s ?p ?o }" \
17+
"${END_USER_BASE_URL}settings" \
18+
| grep -q "$STATUS_UNPROCESSABLE_ENTITY"

0 commit comments

Comments
 (0)