297 Commits

Author SHA1 Message Date
Joachim Van Herwegen
f419f2f28d test: Enable file locker in notification tests 2023-07-20 17:10:14 +02:00
Joachim Van Herwegen
c0a881b980 fix: Use correct type for Webhook notifications 2023-06-13 08:14:11 +02:00
Joachim Van Herwegen
9584ab7549 fix: Make root storage subject of storage description 2023-06-13 08:14:11 +02:00
Joachim Van Herwegen
5347025720 fix: Make sure locker allows reentrant lock acquisition 2023-05-02 09:27:31 +02:00
Joachim Van Herwegen
4b7621f9e0 feat: Support both the old and new WebSocket specifications together 2023-04-27 11:27:34 +02:00
Joachim Van Herwegen
d6b438cd7b chore: Update jest and TypeScript dependencies 2023-04-27 10:47:30 +02:00
Joachim Van Herwegen
d6be724a12 Merge branch 'main' into versions/6.0.0
# Conflicts:
#	config/ldp/authorization/readers/access-checkers/agent-group.json
2023-04-24 11:21:59 +02:00
Joachim Van Herwegen
d59a1595d5 feat: Replace WebHookSubscription2021 with WebHookChannel2023 2023-04-24 11:00:54 +02:00
Joachim Van Herwegen
e9463483f4 feat: Allow unsubscribing from all notification channels 2023-04-24 10:18:17 +02:00
Joachim Van Herwegen
134237a80f feat: Support Add/Remove notifications on containers 2023-04-20 15:42:04 +02:00
Joachim Van Herwegen
702e8f5f59 feat: Replace WebSocketSubscription2021 with WebSocketChannel2023 2023-04-20 14:32:13 +02:00
Joachim Van Herwegen
cbbb10afa1 feat: Use URLs for channel identifiers
In the future these can potentially be used to dereference them
2023-04-20 14:32:13 +02:00
Joachim Van Herwegen
c36f15e2da feat: Generalize and extend notification channel type behaviour 2023-04-20 14:32:13 +02:00
Joachim Van Herwegen
61f04487a1 refactor: Rename subscription to notification channel 2023-04-20 14:32:13 +02:00
Joachim Van Herwegen
7c343a5fcc feat: Update notification object to match the updated examples 2023-04-20 14:32:13 +02:00
Joachim Van Herwegen
10980e90a3 feat: Use notification v0.2 features in discovery 2023-04-20 14:32:13 +02:00
Joachim Van Herwegen
23db528472 fix: Replace inefficient storage detection
This replaces the recursive backend calls to find the storage
by a new class that is aware what the storage URLs look like.
2023-04-19 09:47:47 +02:00
Joachim Van Herwegen
c3f48ddb97 fix: Ensure the ETag is representation specific 2023-04-18 10:41:48 +02:00
zg009
f0596c2eb8
feat: Support conditions for GET/HEAD requests
* fix: updated WrappedExpiringStorage tests and timer.unref calls

* fix: removed finalizable configs and inheritors that only used timer

* fix: updated test function to test setSafeInterval and timer.unref

* fix: added NotModifiedHttpError class

* fix: added 304 error test to HttpError test file

* fix: 304 errors when making read request with matching ETag

* Update src/util/errors/NotModifiedHttpError.ts

Co-authored-by: Ted Thibodeau Jr <tthibodeau@openlinksw.com>

* fix: updated tests

* fix: try notMatchesEtag in test

* fix: DataAccessorBasedStore test passes

* fix: removed conditions check and added extra test

---------

Co-authored-by: Ted Thibodeau Jr <tthibodeau@openlinksw.com>
2023-03-28 09:24:15 +02:00
Joachim Van Herwegen
63fd062f16 fix: Output required OAuth error fields 2023-03-07 08:36:58 +01:00
Joachim Van Herwegen
d9c0e9b043 chore(release): Update configs to v6.0.0 2023-02-01 10:54:37 +01:00
Joachim Van Herwegen
7cc0e3fbcc Merge branch 'main' into versions/6.0.0
# Conflicts:
#	src/init/ServerInitializer.ts
#	src/server/BaseHttpServerFactory.ts
#	src/server/HttpServerFactory.ts
#	src/server/WebSocketServerFactory.ts
#	test/unit/server/BaseHttpServerFactory.test.ts
2023-02-01 10:13:04 +01:00
Joachim Van Herwegen
c46d01d3d7 feat: Remove agent/user permission differentiation
This was only used for the WAC-Allow header and greatly simplifies how we use permissions.
2022-11-18 16:08:06 +01:00
Koen Luyten
bf0e35be37 feat: allow server to bind to Unix Domain Sockets 2022-11-18 15:41:20 +01:00
Joachim Van Herwegen
f54c34d1e0 feat: Add support for WebHookSubscription2021 2022-11-15 15:50:05 +01:00
Joachim Van Herwegen
334364918f test: Disable notifications when testing the file locker
There is a conflict between notifications being sent out right before a test stops,
and the file locker trying to clean up the locks folder.
This only has an impact when shutting down the server so has no real impact,
but should still be fixed eventually so we can easily write tests.
2022-11-09 09:10:00 +01:00
Joachim Van Herwegen
b1f7a6a8b1 feat: Add support for WebSocketSubscription2021 2022-11-09 09:10:00 +01:00
Joachim Van Herwegen
4223dcf8a4 feat: Split up server creation and request handling
This allows us to decouple the WebSocket listening from the HTTP configs,
making these features completely orthogonal.
2022-11-09 09:10:00 +01:00
Joachim Van Herwegen
3328f8dea6 Merge branch 'main' into versions/6.0.0 2022-11-07 09:45:22 +01:00
Samu Lang
60718a123d
fix: Expose Www-Authenticate via CORS
To support reactive authentication where clients inspect the challenge to choose an authentication mechanism.
2022-11-07 08:45:52 +01:00
Joachim Van Herwegen
7fafd646fc test: Make sure quota test succeeds if tmp folder does not exist 2022-11-04 09:55:04 +01:00
Joachim Van Herwegen
68ee9648e1 fix: Require create permission for empty PATCH bodies 2022-11-02 16:48:15 +01:00
Joachim Van Herwegen
ef48660b48 fix: Return correct status code when deleting non-existent resource 2022-11-02 09:31:42 +01:00
Joachim Van Herwegen
56b7e63843 test: Update PermissionTable to also test all ACP cases 2022-10-06 09:36:04 +02:00
Joachim Van Herwegen
fa1dee573e feat: Add required ACP headers 2022-10-06 09:36:04 +02:00
Joachim Van Herwegen
f3e7a20800 feat: Update Credentials typings to support client/issuer 2022-10-06 09:36:04 +02:00
Joachim Van Herwegen
728617ac77 test: Add ACP integration tests 2022-10-06 09:36:04 +02:00
Joachim Van Herwegen
e050f8be93 feat: Allow multiple configurations to be used during startup 2022-09-26 10:26:00 +02:00
Joachim Van Herwegen
7884348c2f fix: Always render OIDC errors correctly 2022-09-21 11:05:28 +02:00
Joachim Van Herwegen
21b2850696 fix: Remove MS-Author-Via header 2022-08-05 15:58:29 +02:00
Wout Slabbinck
ca62511d12
feat: Edit metadata resources (#1188)
* feat: only allow metadata to be edited with PATCH request & only allow metadata files to be edited when a resource is available

* fix: remove unnecesary log at POST

* feat: PUT resets metadata contents + not possible to add metadata with PUT to container

* feat: add metadataStrategy (auxiliaryStrategy) + use that strategy in operationhandlers

* feat: PUT request on existing LDPC is not allowed as it would be possible to edit (read reset) metadata

* test: add unit tests to operationhandlers to handle metadata editing

* test: add unit tests to representationPatchHandler to handle metadata editing

* fix: update dependency of meta.json to version 3.0.0

* fix: lint and dependency still v2

* fix: replaced file references to resource references + moved Patch check to new patchhandler which is more generic

* fix: moved checking metadata resources checking from DELETE and POST handler down to DABS

* fix: remove PATCH message about metadata extension

* fix: move PATCH message about metadata extension

* WIP: adding writeMetadata + getMetadata in DABS and add writeMetadata to DataAccessors (part 1)

* WIP: implement writeMetadata in memorybackend + change resourceExists

* WIP: implement writeMetadata in SparqlDataAccessor.ts

* test: fix test interfaces

* test: InMemoryDataAccessor.ts resulted into changing identifier for writeMetadata in DataAccessor.ts (now taking subject identifier instead of metadata resource identifier)

* test: accessor tests implemented for metadata

* test: add RdfImmutableCheckPatcher.test.ts

* test: add tests in DataAccessorBasedStore.test.ts

* test: fix template config for DynamicPods test

* test: add integration tests for metadata

* fix: change metaStrategy to metadataStrategy

* refactor: comments updated to new location CSS on github + some alphabetical edits

* refactor: remove getMetadata function in DABS as it is only used once

* refactor: add DataAccessorBasedStoreArgs to DataAccessorBasedStore.ts

* docs: modify documentation for writeMetadata function in DataAccessor.ts

* feat: ldp:contains is also part of the metadata resource of a container

* refactor: change function name and move check to DataAccessorBasedStore

* fix: fix tests for DABS and PutOperationHandler

* feat: avoid cloneRepresentation by introducing RdfPatcher, RdfStorePatcher and modifying ImmutableMetadataPatcher, N3Patcher, patching.json and SparqlUpdatePatcher

* test: fix patcher tests

* feat: create sparqlInsertMetadata in SparqlDataAccessor.ts

* fix: move check during put on container if it exists already back to PutOperationHandler.ts after discussion in PR

* test: update tests PutOperationHandler.ts and DataAccessorBasedStore.ts regarding previous commit

* test: add converter to DABS and replace rejection on data during container creation to warning

* test: implemented RdfPatcher test

* feat: remove ContainerPatcher

* fix: fix lint

* fix: fix integration tests

* refactor: fix minor issues mentioned in the PR

* WIP: problem with removeResponseMetadata

* refactor: remove responseMetadata in QuadToRdfConverter.ts

* feat: handle ResponeMetadata when writing to the store via a patch

* refactor: refactor based on comments in PR

* feat: make ImmutableMetadataPatcher.ts instantiation more clear

* test: achieve 100% coverage again

* fix: fix lint

* refactor: return to explicit arguments for the DABS

* fix: return to explicit arguments for the DABS (missed one)

* feat: optimise immutable checker

* fix: fix, enhance docs + optimise config files

* fix: DABS + QuadToRdfConverter feedback implemented

* fix: patching feedback implemented

* test: update operationhandler tests

* test: update integration tests after feedback

* test: update DABS tests after feedback

* test: update ImmutableMetadataPatcher.test.ts after feedback

* test: update patch tests after feedback

* docs: add documentation about editing metadata

* fix: config: intendation + name change + extra filters | filter pattern

* docs: tsdoc added to RdfStorePatcher.ts

* fix: DABS split implemented for getRepresentation + comment refactoring

* docs: further documentation on removing response data on serialization

* fix: DABS getRepresentation method

* docs: apply feedback from Joachim on the documentation of metadata-editing.md

* fix: indentation fix + fix metadata-editing.md documentation after feedback from Joachim

* docs: small fix in metadata-editing.md documentation after feedback from Joachim

* fix: fix metadata-editing.md documentation after feedback from Joachim

* fix: fix tests meta-editing after feedback Joachim

* feat: first attempt at RELEASE_NOTES.md

* docs: update release notes based on feedback

* docs: fix newline

* fix: patching config changes after feedback

* docs: metadata editing documentation changes after feedback

* docs: metadata editing documentation changes after feedback

* docs: metadata editing documentation changes after feedback

* feat: optimisation on ImmutableMetadataPatcher.ts algorithm

* feat: remove converter from DABS and add conversion for metadata resources in the RCS

* fix: Fix documentation RepresentationPatchHandler.ts + fix response graph not being stored due to convertingstore

* feat: make RepresentationPatcher generic

* test: generic RepresentationPatcher tests

* test: 100% coverage for patchers again

* feat: containers can be created with POST with no content-type

* feat: Immutable checks always with subject identifier

* feat: create AuxiliaryLinkMetadataWriter for adding description resources Link Header

* test: add tests for AuxiliaryLinkMetadataWriter and update them for ImmutableMetadataPatcher

* feat: remove metadataGenerator from acl.json and fix tests accordingly

* WIP: preserve metadata on PUT

* feat: preserve metadata on PUT

* fix: keep metadata on PATCHes

* test: add unit tests for preserving metadata on PUT

* fix: remove inConverter from sparql endpoint as that is already the default in the (converting.json)

* fix: add metadatastrategy to RepresentationConvertingStore in regex.json

* test: add integration tests for preserving metadata on PUT

* docs: update release notes and adding documentation about preserving metadata on PUT

* WIP: Template create setRepresentation

* fix: Move container exists and not allowed check to setRepresentation

* test: fix lint

* fix: update configs and documentation

* refactor: update and add documentation + small refactoring

* refactor: update and add documentation + small refactoring + fix tests

* fix: Dynamic pod config + tests

* fix: TemplatedResourcesGenerator does not create containers when they already exist

* fix: metadata preservation now deals with complex content types

* docs: explain the case when there is no content-type

* fix: minor comments
2022-08-04 15:24:36 +02:00
Joachim Van Herwegen
f9d721a372 test: Add logout integration test 2022-08-03 08:42:06 +02:00
Joachim Van Herwegen
f667911229 test: Use AppRunner to set up an integration test 2022-07-28 10:58:57 +02:00
Joachim Van Herwegen
df2cb189be test: Add CLI integration tests 2022-07-28 10:58:57 +02:00
Thomas Dupont
66e82dd772 feat: store turtle prefixes in metadata when parsing
build: correct package-lock file
2022-07-14 13:56:04 +02:00
Joachim Van Herwegen
47c54abe22 test: Add integration test for intermediate containers 2022-07-11 14:07:43 +02:00
Thomas Dupont
311f8756ec fix: return contenttype header value string with parameters 2022-07-07 10:02:24 +02:00
Wannes Kerckhove
1c65b06392 fix: Introducing initializers for handling lock cleanup on start 2022-07-06 10:00:15 +02:00
Thomas Dupont
dee08ebd89 fix: redislocker test 2022-06-01 09:13:29 +02:00
Thomas Dupont
236bbc6e5d feat: initial proposal for multithreaded execution 2022-05-16 10:15:37 +02:00