554 Commits

Author SHA1 Message Date
Joachim Van Herwegen
a28fb0258f feat: Use an IdentifierStrategy in InMemoryDataAccessor
Now it's also possible to support multiple root containers.
2021-02-25 13:16:26 +01:00
Joachim Van Herwegen
29df380396 feat: Create SubdomainIdentifierStrategy
This strategy interprets all subdomains of the base to also be root containers.
2021-02-25 13:16:26 +01:00
Joachim Van Herwegen
bdb3621ee3 feat: Create SubdomainExtensionBasedMapper
This is required for file backends when supporting identifiers containing subdomains.
2021-02-25 13:16:26 +01:00
Ruben Verborgh
c3cff553e3 feat: Emit container pub event on PUT.
Closes https://github.com/solid/community-server/issues/612
2021-02-24 12:04:42 +01:00
Ruben Verborgh
6edc255707 feat: Make stores return modified resources. 2021-02-24 12:04:42 +01:00
Arthur Joppart
28c0eb7e88
Correctly handle slugs in POST requests
* bug: correctly handle slug in POST request

* bug: disallow slashes in slug + modified tests

* fix: fixed tests to work with PUT instead of POST+slug

* fix: fixed tests failing in ci

* fix: adapted to reviews

* fix: adapted to review
2021-02-24 12:03:41 +01:00
Matthieu Bosquet
894d4589d9
fix: Allow non-variable BGP boedies in SPARQL updates
* fix: SPARQL algebra update

* fix: SPARQL algebra bgp only

* fix: No SPARQL variables and refactor tests
2021-02-24 08:56:31 +01:00
Michiel de Jong
91791a0a14 Fix #621: acl:AuthenticatedAgent instead of foaf:AuthenticatedAgent 2021-02-18 15:28:29 +01:00
Joachim Van Herwegen
139342470e feat: Add WAC-Allow header when required 2021-02-18 14:13:47 +01:00
Joachim Van Herwegen
f2f265c586 feat: Let Authorizers output an Authorization 2021-02-18 14:13:47 +01:00
Joachim Van Herwegen
8ccc68d29c feat: Add acl link headers based on headers instead of hardcoding 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
0c047234e3 feat: Support auxiliary behaviour in DataAccessorBasedStore 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
f87fc61ab0 feat: Support updating multiple metadata values for a predicate 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
061c856161 feat: Add auxiliary support to LockingResourceStore
This way locks are always on the associated resource
if there is a request on an auxiliary resource.
2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
7f34fe6ae3 feat: Create separate authorizer for auxiliary functions 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
8339413ab4 feat: Add permissions extractor for acl resources 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
758f5ed083 feat: Generalize AclManager to AuxiliaryManager 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
d6cdd7dbdf feat: Introduce generic auxiliary resource support 2021-02-18 13:26:08 +01:00
Joachim Van Herwegen
766e6318ba feat: Add control permission to PermissionSet
This is in preparation of generalizing permissions
of auxiliary resources.
2021-02-18 13:26:08 +01:00
Wouter Termont
1486f01aaf
fix: do not output filesystem container size
* fix: do not output filesystem container size

* fix: only omit size metadata for containers

Signed-off-by: Wouter Termont <woutermont@gmail.com>
2021-02-12 09:18:09 +01:00
Joachim Van Herwegen
6424b07fc6 fix: Prevent setRepresentation crash if there is no root container 2021-02-11 14:35:56 +01:00
Stijn Taelemans
ce1f4300ff
feat: Replace express with native http module
* refactor: replace express with native http module

* fix: 404 when unhandled

* chore: removed express dependency

* chore: updated package-lock.json

* docs: added documentation for BaseHttpServerFactory

* chore: updated package-lock.json

Co-authored-by: Arthur Joppart <arthur@digita.ai>
2021-02-11 10:15:40 +01:00
Joachim Van Herwegen
fd45779159 feat: Pipe streams with the pump library
The library handles some edge cases we didn't yet.
The GuardedStream was also updated to ignore error listeners
already attached to the stream (since pump adds internal listeners).
2021-02-10 16:00:35 +01:00
Joachim Van Herwegen
a3f41c1d43 feat: Create GreedyReadWriteLocker using read/write locking algorithm 2021-02-09 14:35:12 +01:00
Joachim Van Herwegen
59deb989ec feat: Introduce internal storing mechanism 2021-02-09 14:35:12 +01:00
Joachim Van Herwegen
b61d46900f feat: Create new interface for lockers with only 1 kind of lock 2021-02-09 14:35:12 +01:00
Joachim Van Herwegen
59600b07f8 fix: Fixed bug with empty Accept headers and internal/quads bodies
In case the Accept header was empty and the store returned an internal/quads
resource, our  mechanism to prevent internal data from being returned
was ignored.
2021-02-09 13:26:36 +01:00
Joachim Van Herwegen
386d78277d fix: Close unpiped streams 2021-01-29 15:42:34 +01:00
Joachim Van Herwegen
c29928c32c fix: Test error classes correctly 2021-01-29 09:40:10 +01:00
Ruben Verborgh
a57105be8e change: Query string does not influence identifier. 2021-01-29 09:12:49 +01:00
Ruben Verborgh
6e50443a39 fix: Preserve query string in transformations. 2021-01-29 09:12:49 +01:00
Ruben Verborgh
c899e6c4b1
fix: Do not re-encode static assets. (#566)
Fix serving binary static assets.
2021-01-28 22:02:32 +00:00
Ruben Verborgh
2563335403 feat: Support folders in StaticAssetHandler.
Closes https://github.com/solid/community-server/issues/548
2021-01-28 09:07:54 +01:00
Joachim Van Herwegen
93e53b3d24 fix: Only require append permissions on POST requests 2021-01-27 11:54:15 +01:00
Ruben Verborgh
817cf3ac0d feat: Add ParallelHandler. 2021-01-27 11:29:35 +01:00
Ruben Verborgh
eb1440851a refactor: Move handlers into subfolder. 2021-01-27 11:29:35 +01:00
Joachim Van Herwegen
2c3300028e feat: Add acl link header writer
This writer will add a link to the corresponding acl file
for all LDP requests.
2021-01-26 11:38:46 +01:00
Ruben Verborgh
fe3957f0ae feat: Add ConstantMetadataWriter. 2021-01-26 10:52:38 +01:00
Joachim Van Herwegen
e752927171 fix: Remove all instanceof checks
This prevents problems with different environments.
Also introduces unit tests to double check HttpError values.
2021-01-25 16:11:43 +01:00
Joachim Van Herwegen
c17402517e feat: Update LockingResourceStore to use new locking interface
This has as added bonus that, in the case of getRepresentation,
the stream will be destroyed with an error in case of a timeout.
2021-01-22 11:34:51 +01:00
Joachim Van Herwegen
077f5d7069 fix: Remove locking from the SparqlUpdatePatchHandler
Due to not having re-entrant locks this would cause deadlocks
with the LockingResourceStore or require more advanced configurations.
If this is needed in the future we can potentially add a LockingPatchHandler.
2021-01-22 11:34:51 +01:00
Joachim Van Herwegen
b59357ec30 feat: Update WrappedExpiringResourceLocker to new interface
Due to the new interface, it is now possible to throw an error
if there is a timeout which should make it easier
to find locking issues.
2021-01-22 11:34:51 +01:00
Joachim Van Herwegen
4d440c6c69 feat: Update ResourceLocker interface
By making use of withReadLock and withWriteLock instead
of acquiring the locks themselves it's easier to keep control
of what happens.
2021-01-22 11:34:51 +01:00
Ruben Verborgh
5a12315554 feat: Add StaticAssetHandler. 2021-01-21 10:35:07 +01:00
Ruben Verborgh
b487dc738c fix: Create basic representations with streams. 2021-01-20 16:30:29 +01:00
Ruben Verborgh
5416d66a31 feat: Add ConstantConverter. 2021-01-20 14:36:17 +01:00
Ruben Verborgh
a21532ebf8 refactor: Allow IfNeededConverter to short-circuit. 2021-01-20 14:36:17 +01:00
Ruben Verborgh
dd9d873122 feat: Implement UnsupportedAsyncHandler. 2021-01-20 14:36:17 +01:00
Ruben Taelman
4ac0167c8d Add optional path and url suffixes to FixedContentTypeMapper 2021-01-19 10:54:49 +01:00
Joachim Van Herwegen
cf6270d161 fix: Accept absolute paths in CliRunner 2021-01-19 10:54:37 +01:00