Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LinkedDataHub v5 WIP #198

Closed
wants to merge 1,545 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1545 commits
Select commit Hold shift + click to select a range
b406782
Debug `$y`
namedgraph Oct 17, 2024
4c16b73
Re-introduced `.block` class
namedgraph Oct 17, 2024
a70e78a
Debug `onmousemove`
namedgraph Oct 17, 2024
640de72
Replaced `getBoundingClientRect()` with `offsetY`
namedgraph Oct 17, 2024
723b7e5
Changed `$offset-y` calculation
namedgraph Oct 17, 2024
4716207
Attempt to fix `$offset-y` value
namedgraph Oct 17, 2024
b1fbf91
Toggle block controls on/off during `onmousemove`
namedgraph Oct 17, 2024
be0d8d6
Toggle the `.btn-edit` button only and not the whole row
namedgraph Oct 17, 2024
e9038a1
Declared `fn:` namespace
namedgraph Oct 17, 2024
ff89d1a
Fixed `display: none` placement
namedgraph Oct 17, 2024
01fe53d
Use `z-index: -1` to hide the row with the block controls
namedgraph Oct 17, 2024
d4a922b
Check X coordinate as well when toggling block controls
namedgraph Oct 17, 2024
a65ecb0
`$offset-x` fix
namedgraph Oct 17, 2024
1f0caf3
Use `$width` to check mouse at the right edge
namedgraph Oct 17, 2024
7058bc0
Fixed `$block` value for when block content is saved
namedgraph Oct 17, 2024
eb6268c
Use import-specific `Client` for the `LinkedDataClient` in `Graph::su…
namedgraph Oct 18, 2024
53f6879
Fixed `$class` in admin-specific `bs2:RowForm`
namedgraph Oct 18, 2024
55265ce
Actually pass `$method` to `bs2:RowForm`
namedgraph Oct 18, 2024
4a963f7
Set `ClientProperties.REQUEST_ENTITY_PROCESSING` on `ClientConfig` ra…
namedgraph Oct 18, 2024
b0c021f
Fixed log message
namedgraph Oct 18, 2024
fb145d1
Guard against multiple subject URI/bnode values as there can be neste…
namedgraph Oct 18, 2024
4c8c962
Fixed `$resource-uri`/`$resource-bnode` expressions
namedgraph Oct 18, 2024
8e1e114
Use `RequestEntityProcessing.BUFFERED` on all HTTP clients
namedgraph Oct 18, 2024
8c9a491
Fixed `URIResource` check
namedgraph Oct 18, 2024
fa684ce
Only show block controls is agent has `acl:Write` permission
namedgraph Oct 20, 2024
ac16323
Check ACL when rendering block's `.btn-edit` server-side
namedgraph Oct 20, 2024
ed8431f
Simplified `CSVGraphStoreRowProcessor::add` method
namedgraph Oct 21, 2024
9c4c059
Try to use `ApacheConnectionClosingStrategy.GracefulClosingStrategy()`
namedgraph Oct 22, 2024
e708a42
Pass optional `$chart-uri` to the `onSPARQLResultsLoad` template
namedgraph Oct 23, 2024
8f93c9c
Added `MAX_IMPORT_THREADS` env variable (default value is 10)
namedgraph Oct 23, 2024
085a326
Debug `$category`/`$series`
namedgraph Oct 24, 2024
e17e50a
Debug `$forClass`
namedgraph Oct 24, 2024
c60c801
Fix `$forClass` value in `ldh:ResourceUpdated` by adding `@typeof` on…
namedgraph Oct 24, 2024
4542e90
`ldh:ResourceUpdated` does not use neither `$container` nor `$forClas…
namedgraph Oct 24, 2024
2654f11
Removed `$container` usage
namedgraph Oct 24, 2024
28f1869
Removed `$resource` usage
namedgraph Oct 24, 2024
bef5662
Attempt to handle constraint violations in modal forms in `ldh:Resour…
namedgraph Oct 24, 2024
f068fa6
Fixed XSLT syntax
namedgraph Oct 24, 2024
d7ffb03
Fixed var name
namedgraph Oct 24, 2024
b0497ad
Fixed var name
namedgraph Oct 24, 2024
2d7dcad
`$base-uri` fix
namedgraph Oct 24, 2024
d56a1c2
Fixed `$body` context
namedgraph Oct 24, 2024
7bf8844
Fixed `$method` and `$action`
namedgraph Oct 24, 2024
6fa856f
Moved `spin:ConstraintViolation`-suppressing templates to the client-…
namedgraph Oct 24, 2024
50cefcb
Don't apply `ldh:PostConstruct` in `ldh:ResourceUpdated` as `ldh:Rend…
namedgraph Oct 24, 2024
8743ed3
Attempt to fix block drag-and-drop by basing it on the `.block` class
namedgraph Oct 24, 2024
b824ca5
Try to fix `$query` value
namedgraph Oct 25, 2024
7a63745
Replace server-side query content except header
namedgraph Oct 29, 2024
a56e7b7
Fixed `sp:` namespace in `<queries/#select-queries-query>`
namedgraph Oct 29, 2024
515a15f
Removed `version` from docker-compose config
namedgraph Oct 29, 2024
391f5da
Make `div.violations` visible
namedgraph Oct 30, 2024
4675504
Fixed ` WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not m…
namedgraph Nov 1, 2024
552b2c2
`ldh:View` and `ldh:Object` specific templates (not all yet) moved to…
namedgraph Nov 1, 2024
1d34759
Fixed `rdfs:` namespace
namedgraph Nov 1, 2024
4a01fc4
New `ldh:ProcessUpdateResponse` XSLT mode for extensibility
namedgraph Nov 3, 2024
28ff1a7
Toggle display of `button.btn-edit` during `ixsl:onmousemove`
namedgraph Nov 1, 2024
1e2ba32
Commented out `ObjectMode` template
namedgraph Nov 6, 2024
616a373
Forward params via the overriding `bs2:RowForm` template
namedgraph Nov 6, 2024
08dfb2d
Added missing param
namedgraph Nov 6, 2024
9c110f2
Renamed `ldh:RenderBlock` and `ldh:PostConstruct` modes
namedgraph Nov 6, 2024
f43f062
Make `.row-fluid.block` the default class in `bs2:RowForm`
namedgraph Nov 6, 2024
e68f099
Added `.row-fluid.block` to `bs2:Row` as well
namedgraph Nov 6, 2024
cbf552b
Bumped SaxonJS to 2.7
namedgraph Nov 6, 2024
ee3b891
In `PATCH` handling, collect triples of changed resources into a new …
namedgraph Nov 8, 2024
5a3c622
Get changed model triples explicitly from the updated model
namedgraph Nov 8, 2024
6b5b67a
Removed `version` from docker-compose.http-tests.yml
namedgraph Nov 9, 2024
a40a6ac
Added `DELETE WHERE` to the forms of SPARQL Update supported by the `…
namedgraph Nov 9, 2024
d5880e5
Added new HTTP test that failes when a SPARQL Update in the `PATCH` r…
namedgraph Nov 9, 2024
a3c4248
Pass `$type-metadata` param when applying `bs2:RowForm` after constra…
namedgraph Nov 9, 2024
bfd67c9
Make `$about` optional in `btn.btn-remove-resource` handler
namedgraph Nov 10, 2024
0262511
Enabled `RequestEntityProcessing.BUFFERED` again
namedgraph Nov 10, 2024
37f29a9
Replacing `$container` with `$block` and other cleanup
namedgraph Nov 11, 2024
721050f
Load `$service` resource over HTTP from `$service-uri` instead of dep…
namedgraph Nov 11, 2024
c02c6a5
Query/chart refactoring
namedgraph Nov 11, 2024
60e30ee
Fix `$service` expression to handle empty `$service-uri`
namedgraph Nov 11, 2024
a14e303
Refactored the `ldh:triples-to-descriptions()` function using `regex(…
namedgraph Nov 13, 2024
d30c112
Fixed typed literal output in `ldh:parse-rdf-post()` - datatype URI h…
namedgraph Nov 13, 2024
67e11c0
Regex match fix to account for the fact that SPARQL.js 2.x does *not*…
namedgraph Nov 13, 2024
264aba5
Debug RDF/XML data during `PATCH` request
namedgraph Nov 13, 2024
21adada
Added `s` flag to `matches()` and `regex` in order to allow newlines …
namedgraph Nov 13, 2024
5238b00
Fixing container mode for queries
namedgraph Nov 13, 2024
b1584ca
Pass `$block` to `ldh:RenderRow` instead of `$block-uri`
namedgraph Nov 13, 2024
cd29679
Debug `$query-uri`
namedgraph Nov 13, 2024
1ca1a1c
Fixed var name
namedgraph Nov 13, 2024
aaeb144
Fix `$query-uri` value
namedgraph Nov 13, 2024
91c640e
Fixed `$block-uri` usage
namedgraph Nov 13, 2024
7f82be8
Updated chart rendering in `ldh:RenderRow` mode
namedgraph Nov 15, 2024
f097648
Build `$chart-html` in the `.btn-save-chart` handler
namedgraph Nov 15, 2024
0e186ae
Fixed `xsl:for-each` syntax
namedgraph Nov 15, 2024
512630e
Fixed `$chat-html`
namedgraph Nov 15, 2024
040035e
Apply `bs2:RowForm` on `$constructed-doc`
namedgraph Nov 15, 2024
3392826
Added missing `$resource` definition
namedgraph Nov 15, 2024
183bdf1
Define `$method`
namedgraph Nov 15, 2024
b1ea4bd
Defined `$doc-uri`
namedgraph Nov 15, 2024
93670ba
Added `@rdf:nodeID` to chart resource in the constructor
namedgraph Nov 15, 2024
99fb5db
Try to insert `$row-form` after `$block` by calling `Element.after()`
namedgraph Nov 15, 2024
27b5278
Added `$form-actions` param to `bs2:Chart` mode
namedgraph Nov 15, 2024
ee449f5
Copy following siblings of the `$block` and re-insert them after the …
namedgraph Nov 15, 2024
6fb59dd
Trace `$row-form`
namedgraph Nov 15, 2024
1833437
Added default `xmlns="http://www.w3.org/1999/xhtml"` namespace to (X)…
namedgraph Nov 16, 2024
7bfe378
Try `cdata-section-elements="script"`
namedgraph Nov 16, 2024
4a79c25
Added `CDATA` escaping hack for `<script>` elements with inline JS
namedgraph Nov 16, 2024
02dca89
Wrap `<![CDATA[` into `<xsl:text disable-output-escaping="yes">`
namedgraph Nov 16, 2024
0b9b035
More `<xsl:text disable-output-escaping="yes">`
namedgraph Nov 16, 2024
73438d5
More `<xsl:text disable-output-escaping="yes">`
namedgraph Nov 16, 2024
29756ec
More `disable-output-escaping="yes"`
namedgraph Nov 16, 2024
d7c8420
Refactored `.add-constructor` handler to call `Element.before()`
namedgraph Nov 16, 2024
1a57901
Don't call `ldh:RenderRowForm`
namedgraph Nov 16, 2024
fa17be4
Apply client-side templates on the appended row form (now following s…
namedgraph Nov 16, 2024
e5df9d9
Apply `ldh:RenderRowForm` on the inserted row form
namedgraph Nov 16, 2024
d4460b8
Store `$block-html` when `.btn-edit` is clicked (HTML before editing …
namedgraph Nov 17, 2024
4271790
Fixed var name
namedgraph Nov 17, 2024
a8194fe
Commented out unused code
namedgraph Nov 17, 2024
0a1f4f4
Create new `window.LinkedDataHub.contents[$about]` object if it doesn…
namedgraph Nov 17, 2024
7a547e2
Fixed the type of `$block-html`
namedgraph Nov 17, 2024
72374c6
Restore snapshot of block HTML that was captured before entering edit…
namedgraph Nov 17, 2024
e7debbb
Fixed var name
namedgraph Nov 17, 2024
32f1f93
Debug `$block`
namedgraph Nov 17, 2024
5728ef9
Debug `.btn-edit $block`
namedgraph Nov 17, 2024
f86184d
Store `$block-html` as a clone of `$block`
namedgraph Nov 17, 2024
becfb6c
Make a deep clone of `$block` instead of shallow one
namedgraph Nov 17, 2024
8fc67d4
Remove the `$block-html` value after it has been used
namedgraph Nov 17, 2024
042e35b
Attempt to handle `.btn-cancel` with a single template in form.xsl
namedgraph Nov 17, 2024
0e02df2
Cleanup
namedgraph Nov 17, 2024
4260925
Getting rid of `bs2:RowContent` mode
namedgraph Nov 21, 2024
ac52be7
Re-introduced `$main-class` param to `bs2:Row` mode
namedgraph Nov 21, 2024
bb23114
Stripping namespaces in `ldh:XHTMLContent` mode should not be necessa…
namedgraph Nov 21, 2024
8905aaa
Don't copy namespaces in the `ldh:XHTMLContent` identity transform
namedgraph Nov 21, 2024
f4609c6
Replaced `VARNISH_TTL` env var (which has no effect) with `command: -…
namedgraph Nov 21, 2024
f5822ec
Fixing Varnish's `command`
namedgraph Nov 21, 2024
9144165
Added `$@` to the varnish entrypoint
namedgraph Nov 21, 2024
0948d14
Escaped `$`
namedgraph Nov 21, 2024
37bfc3c
Try to fix Varnish entrypoint
namedgraph Nov 21, 2024
f90368b
Escape `$`
namedgraph Nov 21, 2024
d177afc
Another attempt to fix entrypoint
namedgraph Nov 21, 2024
f115a97
Fix entrypoints of other Varnish services
namedgraph Nov 21, 2024
cb4ece0
Default Varnish VCL template only allows cookies in the admin app (fo…
namedgraph Nov 21, 2024
24d7ee9
Changed VCL
namedgraph Nov 21, 2024
b370428
Add `req.http.Client-Cert` value to the Varnish hash instead of passi…
namedgraph Nov 22, 2024
cf5730a
Include SHA-256 hash of the `Client-Cert` header in the cache key
namedgraph Nov 22, 2024
5032044
Don't use digest, hash `req.http.Client-Cert` directly
namedgraph Nov 22, 2024
6f09257
Removed usage of `remote` clients in the VCL
namedgraph Nov 22, 2024
0e9c444
Include `LinkedDataHub.id_token` cookie value in the VCL hash, if it …
namedgraph Nov 22, 2024
d5fc56d
Hash user-specific content only when (X)HTML is returned
namedgraph Nov 22, 2024
4d6164d
Revert the `vcl_hash()` logic. Authenticated (X)HTML requests are not…
namedgraph Nov 22, 2024
1a062dd
Do not cache (X)HTML requests that have a `LinkedDataHub.id_token` co…
namedgraph Nov 22, 2024
2c16b28
`ldh:View` is now a "normal" resource, not a content block
namedgraph Nov 24, 2024
a559653
Transclude `ldh:View` instances via `ldh:Object`
namedgraph Nov 24, 2024
512fbe4
Dataset fixes
namedgraph Nov 24, 2024
9a56b31
Debug `ldh:LoadBlockObjectMetadata`
namedgraph Nov 24, 2024
dcb5265
Fix `$block` expression in view's `bs2:RenderRow` mode
namedgraph Nov 24, 2024
5474bb8
Added icon for `.btn-view`
namedgraph Nov 24, 2024
22b464d
Removed the unused `Reserialize` Saxon function (replaced with a pure…
namedgraph Nov 24, 2024
1d084a3
Moved the `ldh:reserialize` function to server-side
namedgraph Nov 24, 2024
cb8063a
Optimized authorization query
namedgraph Nov 24, 2024
1bf10ac
Auth query optimization
namedgraph Nov 26, 2024
99631b6
Take care not to load unnecessary documents over HTTP when the respon…
namedgraph Nov 26, 2024
a4894cd
Fixed `$block-values` expression?
namedgraph Nov 26, 2024
78c5c55
Separate VCL template for `varnish-end-user`/`varnish-admin`
namedgraph Nov 26, 2024
a4a7e8b
Set `mem_limit` on `linkeddatahub` service
namedgraph Dec 13, 2024
91ec684
`ldh:ViewQueryLoad` now sets both `$this` and `$about` on the view query
namedgraph Dec 15, 2024
406cd25
`$about` in the query gets set to the `@about` of the *parent* block
namedgraph Dec 15, 2024
32f15dc
Fixed `$select-string` expression
namedgraph Dec 15, 2024
2f85710
Fixed var name in `$template-query`
namedgraph Dec 15, 2024
8b42c02
Attempt to unify `bs2:Row` templates
namedgraph Dec 16, 2024
d778d7e
Attempt to fix `bs2:Row`
namedgraph Dec 16, 2024
72c6bb9
`$about` param is unused
namedgraph Dec 16, 2024
5d2f13a
Set unique `@about` for blocks loaded from `ldh:template`s
namedgraph Dec 17, 2024
c0d1dc8
Fixed `$about` expression
namedgraph Dec 17, 2024
34c8973
Set `@id` on blocks from `$block-values`
namedgraph Dec 18, 2024
cc5cc28
Fixed `$id` value
namedgraph Dec 18, 2024
c14c149
SNAPSHOT bump
namedgraph Dec 18, 2024
195dd34
Updated the `ldh:ChildrenViewContructor` as well as the CLI script to…
namedgraph Dec 18, 2024
273e802
chmod script
namedgraph Dec 19, 2024
295b189
Made `$title` arg optional in `add-object-block` CLI script
namedgraph Dec 19, 2024
06fd3b6
Fixed `$form-actions` cardinality
namedgraph Dec 20, 2024
cc3c68c
Typo fix
namedgraph Dec 20, 2024
7021ba1
If there is no block, the chart is rendering the current document
namedgraph Dec 20, 2024
44b946c
Don't hide the progress bar when `ldh:Object` finishes loading
namedgraph Dec 20, 2024
c278d25
Make sure view and chart rendering hides the row with the block controls
namedgraph Dec 20, 2024
b84e383
Fix the `div.span12` expression
namedgraph Dec 20, 2024
2176027
Do not set `z-index`
namedgraph Dec 20, 2024
e270cbc
Attempt to fix progress bar expression
namedgraph Dec 20, 2024
7377c61
Hide progress bar in default `ldh:RenderRow`
namedgraph Dec 21, 2024
290bd73
Try to fix XPath
namedgraph Dec 21, 2024
b2ddc4f
Attempt to hide the progress bar by adding an override of `ldh:Render…
namedgraph Dec 22, 2024
0d1a9b3
Try to fix `@typeof` pattern
namedgraph Dec 22, 2024
e1534f6
Removed `[@about]` from the chart match pattern in `ldh:RenderRow` mode
namedgraph Jan 3, 2025
441ece5
Debug anchor onclick template match
namedgraph Jan 4, 2025
91aee0e
XPath fix
namedgraph Jan 4, 2025
c658636
In the `ldh:base-uri` function, make sure to strip the fragment ID fr…
namedgraph Jan 4, 2025
afca8c3
Undo debug output
namedgraph Jan 4, 2025
4f8d966
Set `mem_limit` on `linkeddatahub` service
namedgraph Dec 13, 2024
0488d13
Merge branch 'rf-retry-handler' of github.com:AtomGraph/LinkedDataHub…
namedgraph Jan 6, 2025
f2746ba
Define `MAX_REQUEST_RETRIES` in the Dockerfile and pass it to `Applic…
namedgraph Jan 6, 2025
c9c8a29
SNAPSHOT bump
namedgraph Jan 7, 2025
c2aa382
SNAPSHOT bump
namedgraph Jan 10, 2025
5c4af3d
Fixing HTTP tests to reflect the fact that `application/xhtml+xml` is…
namedgraph Jan 10, 2025
9463256
Fixed `xhtml:DefinitionDescription` RDFa override for language-tagged…
namedgraph Jan 10, 2025
f3411b5
Attempt to fix block drag-and-drop by only allowing it on top-level b…
namedgraph Jan 11, 2025
3bfd029
Drag start fix
namedgraph Jan 11, 2025
061ec51
Debug `ondragstart`
namedgraph Jan 11, 2025
1b1ae3d
Debug `ixsl:ondragstart`
namedgraph Jan 11, 2025
6f05b87
Get the top-level block for this block (could be self) and use its URI
namedgraph Jan 11, 2025
8793d76
Blocks nested within `ldh:Object` are not draggable
namedgraph Jan 11, 2025
0536412
Debug `ondragstart` block
namedgraph Jan 11, 2025
78bdf83
`ixsl:ondragstart` refactoring
namedgraph Jan 11, 2025
e2ad895
`atomgraph/letsencrypt-tomcat` base image bump (now multi-platform!)
namedgraph Jan 14, 2025
a7ac2e6
GitHub workflow that builds a multi-platform Docker image and pushes …
namedgraph Jan 14, 2025
20c327b
`atomgraph/fuseki` image bump
namedgraph Jan 14, 2025
5bbba24
Refactored entrypoint to generate owner and secretary keystore/cert/p…
namedgraph Jan 31, 2025
9e5aa31
Attempt to fix the http-tests workflow using secrets
namedgraph Jan 31, 2025
473e16d
http-tests workflow fixes
namedgraph Jan 31, 2025
2a350ad
Generating server certificate in the http-tests workflow
namedgraph Jan 31, 2025
d053862
Fixed .env arg for server-cert-gen.sh
namedgraph Feb 1, 2025
fed8d8f
Server cert generation fix
namedgraph Feb 1, 2025
33ac88f
Fix test owner cert mount
namedgraph Feb 1, 2025
cf30b60
Validate OWNER_URI and SECRETARY_URI
namedgraph Feb 1, 2025
d8b3a05
Debug cert file permissions
namedgraph Feb 1, 2025
a72912d
Debug permissions
namedgraph Feb 1, 2025
1072ab1
Mount ownrr/secretary datasets
namedgraph Feb 1, 2025
c05edfa
Debug cert permissions
namedgraph Feb 1, 2025
48774c6
Execute webid-uri.sh as sudo
namedgraph Feb 1, 2025
eaa6653
Run the whole test suite as sudo
namedgraph Feb 1, 2025
21feac3
Attempt to fix $JENA_HOME error
namedgraph Feb 1, 2025
97a8472
Debug $JENA_HOME
namedgraph Feb 1, 2025
0443473
Set JENA_HOME in GITHUB_ENV
namedgraph Feb 1, 2025
1f5941b
YAML fix
namedgraph Feb 1, 2025
092e3bc
Pass $PATH to sudo script
namedgraph Feb 1, 2025
1b49240
Mount datasets folder
namedgraph Feb 1, 2025
826353f
Script cleanup
namedgraph Feb 1, 2025
b9fb4ee
Removed `-s` flag from `realpath` calls to make them MacOS-compatible
namedgraph Feb 2, 2025
6cea026
Unprivileged user
namedgraph Feb 2, 2025
454cd2f
Debug permissions
namedgraph Feb 2, 2025
f3bb55b
Attempt to fix cert.pem permissions
namedgraph Feb 2, 2025
b911324
Try sudo
namedgraph Feb 2, 2025
6bb880a
Fix secretary cert permissions
namedgraph Feb 2, 2025
6bc52d1
Removed Mac-specific file
namedgraph Feb 3, 2025
0f3ec0d
Merge branch 'develop' of github.com:AtomGraph/LinkedDataHub into dev…
namedgraph Feb 3, 2025
ffc7685
Debug user
namedgraph Feb 3, 2025
63c1e21
Debug UID and GID
namedgraph Feb 3, 2025
6008e42
Debug GID
namedgraph Feb 3, 2025
31992f3
Local user is back to `root`
namedgraph Feb 3, 2025
6c4becc
Merge branch 'develop' of github.com:AtomGraph/LinkedDataHub into dev…
namedgraph Feb 3, 2025
83a1ead
Removed `-s` flag from `realpath` calls to make them MacOS-compatible
namedgraph Feb 2, 2025
26409d5
Merge branch 'fix-realpath-macos' of github.com:AtomGraph/LinkedDataH…
namedgraph Feb 3, 2025
2ed419c
Removed IMPORT_KEEPALIVE param
namedgraph Feb 4, 2025
9866ebc
SNAPSHOT bumped to 5.0.8-SNAPSHOT
namedgraph Feb 4, 2025
21d18dc
README update
namedgraph Feb 7, 2025
fff8676
README update
namedgraph Feb 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 23 additions & 15 deletions .github/workflows/http-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,37 +7,45 @@ jobs:
name: Build Docker image and run HTTP test suite against it
runs-on: ubuntu-latest
env:
ASF_ARCHIVE: http://archive.apache.org/dist/
ASF_ARCHIVE: https://archive.apache.org/dist/
JENA_VERSION: 4.7.0
BASE_URI: https://localhost:4443/
OWNER_CERT_PWD: changeit
SECRETARY_CERT_PWD: LinkedDataHub
steps:
- name: Install Linux packages
run: sudo apt-get update && sudo apt-get install -qq raptor2-utils && sudo apt-get install curl
- name: Download Jena
run: curl -sS --fail "${{env.ASF_ARCHIVE}}jena/binaries/apache-jena-${{env.JENA_VERSION}}.tar.gz" -o "${{runner.temp}}/jena.tar.gz"
run: curl -sS --fail "${{ env.ASF_ARCHIVE }}jena/binaries/apache-jena-${{ env.JENA_VERSION }}.tar.gz" -o "${{ runner.temp }}/jena.tar.gz"
- name: Unpack Jena
run: tar -zxf jena.tar.gz
working-directory: ${{runner.temp}}
- run: echo "$JENA_HOME/bin" >> $GITHUB_PATH
env:
JENA_HOME: "${{runner.temp}}/apache-jena-${{env.JENA_VERSION}}"
working-directory: ${{ runner.temp }}
- name: Set JENA_HOME and Update PATH
run: |
echo "${{ runner.temp }}/apache-jena-${{ env.JENA_VERSION }}/bin" >> $GITHUB_PATH
- name: Checkout code
uses: actions/checkout@v3
- name: Generate owner's and secretary's certificates/public keys
run: ../scripts/setup.sh .env ssl "${{env.OWNER_CERT_PWD}}" "${{env.SECRETARY_CERT_PWD}}" 3650
shell: bash
- name: Generating server certificate
run: ../scripts/server-cert-gen.sh .env nginx ssl
working-directory: http-tests
- name: Writing secrets to files
run: |
mkdir -p ./secrets
printf "%s" "${{ secrets.HTTP_TEST_OWNER_CERT_PASSWORD }}" > ./secrets/owner_cert_password.txt
printf "%s" "${{ secrets.HTTP_TEST_SECRETARY_CERT_PASSWORD }}" > ./secrets/secretary_cert_password.txt
printf "%s" "${{ secrets.HTTP_TEST_SECRETARY_CERT_PASSWORD }}" > ./secrets/client_truststore_password.txt
shell: bash
- name: Build Docker image & Run Docker containers
run: docker-compose -f docker-compose.yml -f ./http-tests/docker-compose.http-tests.yml --env-file ./http-tests/.env up --build -d
run: docker compose -f docker-compose.yml -f ./http-tests/docker-compose.http-tests.yml --env-file ./http-tests/.env up --build -d
- name: Wait for the server to start...
run: while ! (status=$(curl -k -s -w "%{http_code}\n" https://localhost:4443 -o /dev/null) && echo "$status" && echo "$status" | grep "403") ; do sleep 1 ; done # wait for the webapp to start (returns 403 by default)
- name: Fix certificate permissions on the host
run: |
sudo chmod 644 ./ssl/owner/cert.pem ./ssl/secretary/cert.pem
working-directory: http-tests
- name: Run HTTP test scripts
run: ./run.sh "$PWD/ssl/owner/cert.pem" "${{env.OWNER_CERT_PWD}}" "$PWD/ssl/secretary/cert.pem" "${{env.SECRETARY_CERT_PWD}}"
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 }}"
shell: bash
working-directory: http-tests
- name: Stop Docker containers
run: docker-compose --env-file ./http-tests/.env down
run: docker compose --env-file ./http-tests/.env down
- name: Remove Docker containers
run: docker-compose --env-file ./http-tests/.env rm -f
run: docker compose --env-file ./http-tests/.env rm -f
44 changes: 44 additions & 0 deletions .github/workflows/image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: ci

on:
push:
tags:
- '*'

jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Extract version parts
id: version
run: |
VERSION="${{ github.ref_name }}"
MAJOR="${VERSION%%.*}"
MINOR="${VERSION%.*}"
MINOR="${MINOR#*.}"
echo "MAJOR=$MAJOR" >> $GITHUB_ENV
echo "MINOR=$MAJOR.$MINOR" >> $GITHUB_ENV
echo "FULL_VERSION=$VERSION" >> $GITHUB_ENV

- name: Build and push
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
tags: |
atomgraph/linkeddatahub:latest
atomgraph/linkeddatahub:${{ env.FULL_VERSION }}
atomgraph/linkeddatahub:${{ env.MINOR }}
atomgraph/linkeddatahub:${{ env.MAJOR }}
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
.DS_Store
/target
/certs
/.env
/data
/uploads
/nb-configuration.xml
/node
/node_modules
/docker-compose.override.yml
/secrets
/datasets
/ssl
/http-tests/ssl
/http-tests/datasets
/http-tests/uploads
44 changes: 32 additions & 12 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM maven:3.8.4-openjdk-17 as maven
FROM maven:3.8.4-openjdk-17 AS maven

# download and extract Jena

Expand All @@ -22,7 +22,7 @@ RUN mvn -Pstandalone clean install

# ==============================

FROM atomgraph/letsencrypt-tomcat:10.1.4
FROM atomgraph/letsencrypt-tomcat:10.1.34

LABEL maintainer="[email protected]"

Expand All @@ -38,10 +38,6 @@ ENV SOURCE_COMMIT=$SOURCE_COMMIT

WORKDIR $CATALINA_HOME

# add XSLT stylesheet that makes changes to ROOT.xml

COPY platform/context.xsl conf/context.xsl

ENV CACHE_MODEL_LOADS=true

ENV STYLESHEET=static/com/atomgraph/linkeddatahub/xsl/bootstrap/2.3.2/layout.xsl
Expand Down Expand Up @@ -72,17 +68,26 @@ ENV HTTPS=false

ENV SERVER_CERT=/var/linkeddatahub/ssl/server/server.crt

ENV SECRETARY_CERT=/var/linkeddatahub/ssl/secretary/cert.pem
ENV OWNER_CERT_ALIAS=root-owner
ENV OWNER_KEYSTORE=/var/linkeddatahub/ssl/owner/keystore.p12
ENV OWNER_CERT=/var/linkeddatahub/ssl/owner/cert.pem
ENV OWNER_PUBLIC_KEY=/var/linkeddatahub/ssl/owner/public.pem
ENV OWNER_PRIVATE_KEY=/var/linkeddatahub/ssl/owner/private.key

ENV SECRETARY_CERT_ALIAS=secretary
ENV SECRETARY_COMMON_NAME=LinkedDataHub
ENV SECRETARY_CERT_ALIAS=root-secretary
ENV SECRETARY_KEYSTORE=/var/linkeddatahub/ssl/secretary/keystore.p12
ENV SECRETARY_CERT=/var/linkeddatahub/ssl/secretary/cert.pem
ENV SECRETARY_PUBLIC_KEY=/var/linkeddatahub/ssl/secretary/public.pem
ENV SECRETARY_PRIVATE_KEY=/var/linkeddatahub/ssl/secretary/private.key

ENV CLIENT_KEYSTORE_MOUNT=/var/linkeddatahub/ssl/secretary/keystore.p12

ENV CLIENT_KEYSTORE="$CATALINA_HOME/webapps/ROOT/WEB-INF/keystore.p12"

ENV CLIENT_TRUSTSTORE="$CATALINA_HOME/webapps/ROOT/WEB-INF/client.truststore"

ENV OWNER_PUBLIC_KEY=/var/linkeddatahub/ssl/owner/public.pem
ENV CERT_VALIDITY=3650

ENV SIGN_UP_CERT_VALIDITY=

ENV LOAD_DATASETS=

Expand All @@ -102,12 +107,18 @@ ENV MAX_CONN_PER_ROUTE=20

ENV MAX_TOTAL_CONN=40

ENV MAX_REQUEST_RETRIES=3

ENV IMPORT_KEEPALIVE=

ENV MAX_IMPORT_THREADS=10

ENV GOOGLE_CLIENT_ID=

ENV GOOGLE_CLIENT_SECRET=

ENV SERVLET_NAME=

ENV GENERATE_SITEMAP=true

# remove default Tomcat webapps and install xmlstarlet (used for XPath queries) and envsubst (for variable substitution)
Expand All @@ -120,6 +131,14 @@ RUN apt-get update --allow-releaseinfo-change && \
rm -rf webapps/* && \
rm -rf /var/lib/apt/lists/*

# add XSLT stylesheet that makes changes to ROOT.xml

COPY platform/context.xsl /var/linkeddatahub/xsl/context.xsl

# add XSLT stylesheet that makes changes to web.xml

COPY platform/web.xsl /var/linkeddatahub/xsl/web.xsl

# copy entrypoint

COPY platform/entrypoint.sh entrypoint.sh
Expand Down Expand Up @@ -172,6 +191,7 @@ ENV PATH="${PATH}:${JENA_HOME}/bin"

RUN useradd --no-log-init -U ldh && \
chown -R ldh:ldh . && \
mkdir -p "$(dirname "$OIDC_REFRESH_TOKENS")" && \
chown -R ldh:ldh /var/linkeddatahub && \
mkdir -p "${UPLOAD_ROOT}/${UPLOAD_CONTAINER_PATH}" && \
chown -R ldh:ldh "$UPLOAD_ROOT" && \
Expand All @@ -180,7 +200,7 @@ RUN useradd --no-log-init -U ldh && \

RUN ./import-letsencrypt-stg-roots.sh

HEALTHCHECK --start-period=80s --interval=20s --timeout=10s \
HEALTHCHECK --start-period=80s --retries=5 \
CMD curl -f -I "http://localhost:${HTTP_PORT}/ns" -H "Accept: application/n-triples" || exit 1 # relies on public access to the namespace document

USER ldh
Expand Down
24 changes: 18 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,23 @@ It takes a few clicks and filling out a form to install the product into your ow
OWNER_STATE_OR_PROVINCE=Denmark
OWNER_COUNTRY_NAME=DK
```
3. Setup SSL certificates/keys by running this from command line (replace `$owner_cert_pwd` and `$secretary_cert_pwd` with your own passwords):
```
./scripts/setup.sh .env ssl $owner_cert_pwd $secretary_cert_pwd 3650
3. Setup server's SSL certificates by running this from command line:
```shell
./scripts/server-cert-gen.sh .env nginx ssl
```
The script will create an `ssl` sub-folder where the SSL certificates and/or public keys will be placed.
4. Launch the application services by running this from command line:
```
```shell
docker-compose up --build
```
It will build LinkedDataHub's Docker image, start its container and mount the following sub-folders:
- `ssl`
* `owner` stores root owner's WebID certificate, keystore, and public key
* `secretary` stores root application's WebID certificate, keystore, and public key
* `server` stores the server's certificate (also used by nginx)
- `data` where the triplestore(s) will persist RDF data
- `uploads` where LDH stores content-hashed file uploads
The first should take around half a minute as datasets are being loaded into triplestores. After a successful startup, the last line of the Docker log should read something like:
It should take up to half a minute as datasets are being loaded into triplestores. After a successful startup, the last line of the Docker log should read something like:
```
linkeddatahub_1 | 09-Feb-2021 14:18:10.536 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [32609] milliseconds
```
Expand All @@ -78,7 +82,15 @@ It takes a few clicks and filling out a form to install the product into your ow
- Mozilla Firefox: `Options > Privacy > Security > View Certificates... > Import...`
- Apple Safari: The file is installed directly into the operating system. Open the file and import it using the [Keychain Access](https://support.apple.com/guide/keychain-access/what-is-keychain-access-kyca1083/mac) tool (drag it to the `local` section).
- Microsoft Edge: Does not support certificate management, you need to install the file into Windows. [Read more here](https://social.technet.microsoft.com/Forums/en-US/18301fff-0467-4e41-8dee-4e44823ed5bf/microsoft-edge-browser-and-ssl-certificates?forum=win10itprogeneral).
6. Open **https://localhost:4443/** in that web browser
6. For authenticated API access use the `ssl/owner/cert.pem` HTTPS client certificate.
If you are running Linux with user other than `root`, you might need to fix the certificate permissions because Docker bind mounts are owned by `root` by default. For example:
```shell
sudo setfacl -m u:$(whoami):r ./ssl/owner/*
```
7. Open **https://localhost:4443/** in the web browser or use `curl` for API access, for example:
```shell
curl -k -E ./ssl/owner/cert.pem:<your cert password> -H "Accept: text/turtle" 'https://localhost:4443/'
```

### Notes

Expand Down
1 change: 0 additions & 1 deletion docker-compose.debug.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
version: "2.3"
services:
linkeddatahub:
ports:
Expand Down
Loading