All notable changes to this project will be documented in this file.
7.0.1 (2023-10-20)
- Remove duplicate identifier reference when disabling accounts (f1fdbb0)
7.0.0 (2023-10-19)
- Add config option to enable account and pod creation (9321add)
- Update migration to clear all old non-account data (9daeaf8)
- Use new MaxKeyLengthStorage to prevent keys that are too long (b5a61cb)
- Remove base64 encoding from storages (e1c5189)
- Support all notification methods in all default configs (b54c6b9)
- Add support for initializing a server with a root pod (864dd7c)
- Link to the account page in the pod README (764b392)
- Update configurations so ldp/accounts/oidc can be disabled (010017a)
- Add migration for v6 account data (0ac7d40)
- Allow ConditionalHandler to set the expected value (fedd9e0)
- Create PodCreator class to contain most pod creation logic (42a1ca7)
- Add support for pod owners (cd07338)
- Use IndexedStorage to store account data (4230db5)
- Full rework of account management (a47f523)
- Move storage location decision to separate import (ade977b)
- Remove setup (5eff035)
- Update StaticAssetHandler to allow for easier overrides (ea83ea5)
- Update oidc-provider to v8 (7024ee9)
- Introduce IndexedStorage for a more extensive storage solution (3ade2ad)
- Split up EncodingPathStorage functionality into different classes (154d981)
- Use ETagHandler for ETag generation and comparison (afcbfda)
- Store ETag in metadata (b608080)
- Add error causes to error serializations (0245b31)
- Add metadata to errors (f373dff)
- StaticAssetHandler can link a container to a document (36ff95e)
- Ensure setup values are migrated correctly (7a44581)
- Be consistent in slash usage in storages (f954fc9)
- Encode notification keys before accessing the storage (16378ec)
- Make sure stored tokens expire (7504817)
- Update generated keys in ExpiringAdapterFactory to prevent overlap (2914fd7)
- Fix issue in warning on pod settings HTML page (7684198)
- Add links on account page (3bfd9e3)
- Rename cookie field to authorization (307dba3)
- Update supported DPoP algorithms to run CTH (1e3684b)
- Add workaround for authn library issue (180d5f1)
- Use local file for oidc-provider typings (b3ef4ed)
- Return WAC-Allow header in 304 responses (43e8ef9)
- Return ETag in 304 responses (baa6498)
- Add missing error causes (7505f07)
- Make all ways to start the server more consistent (e921d62)
- Use one identifier to reference main template engine (92a0856)
- Sort default config imports (851eafd)
- Move single IDP configurations into one folder (862ac48)
- Rename WebIdAdapterFactory to ClientIdAdapterFactory (607c04f)
- Rename WebHook to Webhook (531c299)
- Move condition classes to separate folder (5ec6edd)
- Workaround for Jest dynamic import issues (cccca96)
- Workaround for Jest ESM issues (bfa70a4)
- Remove test tmp folder after all tests are finished (9bf7348)
- Stop cleaning up folders after quota test to prevent CI issues (3a57e88)
6.1.0 (2023-10-05)
- Prevent error when creating a root pod(da46bec)
- Remove URL encoding from base64 strings before decoding (d31393f)
- Simplify README by pointing to our docs. (d618f97)
- Add starting guide. (e424b84)
- Add quick start to README. (1fa6d24)
6.0.2 (2023-08-30)
- Have FixedContentTypeMapper ignore .meta (9e682f5)
- Ignore invalid header parts (9c2c5ed)
- Do not show PUT in Allow header for existing containers (6f6784a)
- Store activity streams context locally (a47cc8a)
- Clear test data folder before running tests (6fc3f2c)
- Enable file locker in notification tests (f419f2f)
- Name HTTP handlers (937c41f)
6.0.1 (2023-06-15)
- Use correct type for Webhook notifications (c0a881b)
- Make root storage subject of storage description (9584ab7)
- Prevent illegal file paths from being generated (fdee4b3)
6.0.0 (2023-05-02)
- Support both the old and new WebSocket specifications together (4b7621f)
- Use WebSocket2023Channel identifier for WebSocket URL (69af7c4)
- Replace WebHookSubscription2021 with WebHookChannel2023 (d59a159)
- Allow unsubscribing from all notification channels (e946348)
- Restrict channels to 2 weeks by default (f7e05ca)
- Support Add/Remove notifications on containers (134237a)
- Replace WebSocketSubscription2021 with WebSocketChannel2023 (702e8f5)
- Use URLs for channel identifiers (cbbb10a)
- Ignore unsupported notifications features in subscriptions (67d1ff4)
- Support GET requests on subscription services (65860f7)
- Update notification object to match the updated examples (7c343a5)
- Replace expiration feature with startAt and endAt (caee563)
- Use notification v0.2 features in discovery (10980e9)
- Support conditions for GET/HEAD requests (f0596c2)
- Provide clear error message for unknown clients (c332412)
- SeededPodInitializer log exceptions as warning instead of crashing (2efc141)
- Explain changes to template folders (a4d4118)
- Describe how notifications work on the server (1a1a6ee)
- Update RELEASE_NOTES with correct notification information (40ad4a6)
- Add references to the configuration generator (4b33017)
- Add responses when client credentials are incorrect (50bb8cf)
- Add Zenodo badge in README (5acddcb)
- Fix Jest memory issues (26f24aa)
- Make sure locker allows reentrant lock acquisition (5347025)
- Make aggregated errors prettier (0d5d072)
- Support new ETag format in notification states (b250bea)
- Minor documentation and configuration updates (4ff6fe6)
- Update the lastEmit value after sending a notification (b2f4d7f)
- Replace inefficient storage detection (23db528)
- Use EqualReadWriteLocker with file locker to prevent deadlocks (0a30be5)
- Ensure the ETag is representation specific (c3f48dd)
- Store internal JWK as JWKS to be backwards compatible (7fd0b50)
- Updated WrappedExpiringStorage to use timer.unref (b6faed0)
- Output required OAuth error fields (63fd062)
- Do not add port 80 to default base URL (bb74278)
6.0.0-alpha.0 (2023-02-01)
- Hash lock-related identifiers (0d6b895)
- Take preferences as input in
RepresentationConvertingStore
(7422fbf) - Return clear error when multiple values for a cli flag are given (5c79e60)
- Allow css configuration from package.json or config file (d61bf9b)
- Remove agent/user permission differentiation (c46d01d)
- Move WAC-Allow metadata collecting to HTTP handler (6ad5c0c)
- Allow CachedHandler to cache on multiple object fields (9b15b1d)
- Allow server to bind to Unix Domain Sockets (bf0e35b)
- Add support for WebHookSubscription2021 (f54c34d)
- Add support for WebSocketSubscription2021 (b1f7a6a)
- Add support for the Notification specification (cbc07c6)
- Create a CachedHandler that caches AsyncHandler results (be7af27)
- Expose a storage description resource for storage containers (df2f69f)
- Create an OperationRouterHandler (3db1921)
- Create an ArrayUnionHandler which flattens the sources results (da99ff3)
- Split up server creation and request handling (4223dcf)
- Create a GenericEventEmitter interface (764ce3c)
- Support async default values in getDefault (a1e916b)
- Add required ACP headers (fa1dee5)
- Update Credentials typings to support client/issuer (f3e7a20)
- Update templates and generators to support ACP (40f2c8e)
- Create configs for server with ACP authorization (db68074)
- Create AcpReader (a6409ad)
- Allow vocabularies to be extended (97f7ca0)
- Improve vocabulary typings (2e1bae9)
- Remove caching from AgentGroupAccessChecker (3c43d04)
- Expose Www-Authenticate via CORS (60718a1)
- Prevent accidental nested storages (4d9d1b9)
- Convert TemplateEngine to AsyncHandlers (cf74ce3)
- Reduce integration test memory usage (80fa81a)
- Update PermissionTable to also test all ACP cases (56b7e63)
- Add links to tutorial repo (f0c7c60)
- Add notification architecture documentation (7b6ddfa)
- Document ACP-related changes (c73ef50)
5.1.0 (2022-11-03)
- Add additional redis settings to redis locker (79fa83a)
- Add support for key namespacePrefixes in a RedisLocker instance (d690cc7)
- Allow JSON-LD contexts to be stored locally (b0924bf)
- Allow multiple configurations to be used during startup (e050f8b)
- Require create permission for empty PATCH bodies (68ee964)
- Return correct status code when deleting non-existent resource (ef48660)
- Fix incorrect config import (e1af8ee)
- Add missing parameter to
sparql-file-storage.json
configuration (f7742cf) - Always render OIDC errors correctly (7884348)
- Clarify application consent screen. (7987824)
- Prevent websockets from being used with worker threads (327ce74)
- Update metadata documentation (abbf3dd)
5.0.0 (2022-08-08)
- Accept both Settings and VariableBindings to create an App (f609f1a)
- Add a map that can check equality between object keys (c35cd59)
- Add a SetMultiMap interface and implementation (b5d5071)
- Add contains function to IdentifierStrategy (11c0d1d)
- Add find utility function for Iterables (145758a)
- Add utilities for Iterables (45f8aa1)
- Allow switching accounts (3fea5c9)
- Change permission interface to store identifiers (23f0b37)
- Edit metadata resources (#1188) (ca62511)
- Enable strict parsing of CLI arguments (4e999eb)
- Extend OIDC error descriptions (3f817b1)
- Initial proposal for multithreaded execution (236bbc6)
- Introduce ModesExtractor for intermediate containers (18391ec)
- Parse Accept headers as early as possible (df08259)
- RegexRoutes stored as ordered array (5399e75)
- Respect root path for static assets and HTML links (2814e72)
- Rework ResourceStore to return extra info (e0954cf)
- Split WebAclReader behaviour over multiple classes (7996fe5)
- Store turtle prefixes in metadata when parsing (66e82dd)
- Update configs based on all permission changes (d5bcec7)
- Update ModesExtractors to support new permission interface (7085252)
- Update PermissionReaders to support new permission interface (0ff05fd)
- Update WebAclMetadataCollector to support new permission interface (fd83f4b)
- Use an IdentifierMap for ResourceStore responses (9a12152)
- Add imports that allow for HTTPS through CLI params (9dcba1a)
- Introducing initializers for handling lock cleanup on start (1c65b06)
- Logging component logs as coming from a worker (c89cc4b)
- Prevent FileSystemResourceLocker from writing to ./ (a99616a)
- Remove MS-Author-Via header (21b2850)
- Remove workaround for cli parameters being turned into string (a99db00)
- Return contenttype header value string with parameters (311f875)
- Stop creating meta files for each new resource #1217 (fbbccb0)
- Update the default timeout to 6s (839a923)
- Add architecture diagrams and documentation (5288237)
5.0.0-alpha.0 (2022-05-05)
- Feat: add a process-/thread-safe file-based ResourceLocker (fa78bc6)
- Feat: file-based backend fallback for unknown media types (ff80079)
- Fix: Fix typing issues with latest Components.js generator (0e32d9a)
- Fix(1de1f7c: Update to Comunica v2 (https://github.com/CommunitySolidServer/CommunitySolidServer/commit/1de1f7c12a8ae3f89fd91e9cb33af0405af7d995))
- Refactor: Replace RedirectAllHttpHandler usage with RedirectingHttpHandler (d2bc995)
- Fix: Update prefixes in all configs (ce27bec)
- Fix: Always define @type in configs (cfdd122)
- Fix: Change YargsCliExtractor structure to avoid Components.js issues (6f4e70d)
4.1.0 (2022-08-04)
- Add test phase for docker images (0159557)
- Args as env vars (a461586)
- Build versioned documentation site from CI pipeline (027c803)
- Accept client WebIDs with a context array (d290848)
- Enable ACL in default quota config (26b42f0)
- Improve HTTP stream error messages (93a141d)
- Prevent JsonResourceStorage from generating too long filenames (13dbcb6)
- Rdf convertors should not read or write plain JSON (9ecb769)
- Rewrite request with a root path to OIDC Provider (0a84230)
- Use encrypted field to check for TLS. (82f9070)
- Update dependencies (15e756e)
- Update docs links to new documentation site (d0f9d1e)
4.0.1 (2022-05-10)
- Chore: Fix oidc-provider library to v7.10.6 (ef9dd43)
- Chore: Drop support for Node 12 (3d6e3d2)
- Fix: %2F not handled correctly in file backend #1184 (dbdb9b4)
- Fix: Make delimiter encoding case-insensitive. (50469e2)
4.0.0 (2022-04-19)
- Feat: Support seeding pods and accounts (c8d4bfe)
- Feat: Store content type parameters (a860205)
- Feat: Pass access modes to PermissionReaders (2ae5924)
- Feat: Add CachedResourceSet (0e4d012)
- Feat: Return 404 for read/delete requests if there is no resource (e86e0cf)
- Feat: Check parent ACL permissions for create/delete requests (d908374)
- Test: Create permission table to automate tests (6f83ac5)
- Feat: Handle OPTIONS requests in OperationHandler (ad3edcf)
- Docs: Write initial user documentation (a5a34f5)
- Feat: Add utility functions for generating error classes (f3dedf4)
- Feat: Store methods in MethodNotAllowedHttpError (effc20a)
- Feat: Dynamically generate Allow and Accept-* headers (6e98c6a)
- Feat: Make LazyLoggerFactory buffer messages. (238570b)
- Feat: Warn about UnsecureWebSocketsProtocol. (5c21819)
- Feat: Create MetadataParser that detects JSON with Context link and throws an error (48efc6f)
- Feat: Add RedirectingHttpHandler (468e11d)
- Feat: Allow dynamically adding CLI parameters in configs (bedab90)
- Feat: Add support for client_credentials authentication (2ec8fab)
- Refactor: Rename resourceExists to hasResource (4404fa0)
- Feat: Parse content-type more strictly (027e370)
- Feat: Create separate storage to generate keys (a1a6ce0)
- Refactor: Move key/value storages to relevant configs (30ad301)
- Feat: Remove meta parameter from logging. (2c6167e)
- Refactor: Make Logger an interface. (3685b7c)
- Refactor: Use fs-extra instead of fs to simplify file access (fe39f97)
- Feat: new helper functions to replace regexes #807 (283c301)
- Feat: Only accept NamedNodes as predicates for metadata (668d0a3)
- Fix: Prevent slugs with trailing slashes for non-container resources (5965268)
- Fix: Extract correct access modes from request (9a29cc2)
- Fix: Add IANA type to child metadata in FileDataAccessor (7152897)
- Fix: Support entries function in JsonResourceStorage (7654801)
- Fix: Prevent expired storage cleanup from crashing the server (f08cdf7)
- Fix: Undo authorization on OPTIONS requests (97e600b)
- Fix: Throw error when accessing URLs out of scope (d42125a)
- Fix: Add missing imports from default configs (30799f6)
- Fix: Keep storage paths consistent with previous version (570e167)
- Feat: add a Redis based Read-Write Locker (e2e2d08)
3.0.0 (2022-02-23)
- Feat: Determine Typed Converter output based on input type (fa94c7d)
- Feat: Add ContentTypeReplacer to conversion chain (fdd42bb)
- Feat: Add "no conversion" as possible path in ChainedConverter (d52aa94)
- Feat: Support redirection through errors (7163a03)
- Feat: Move redirect support from IDP handler to specific handlers (4241c53)
- Feat: Create VoidLocker to disable locking resources (9a1f324)
- Chore: Build and push official docker image in CI (65d1eeb)
- Feat: Add support for quota limits (0cb4d7b)
- Feat: Add support for N3 Patch (a9941eb)
- Feat: Allow for custom CLI and variable options (c216efd)
- Feat: Send reset password recordId as query parameter (8f8e8e6)
- Feat: Split up IDP HTML, routing, and handler behaviour (bc0eeb1)
- Feat: Update IDP templates to work with new API format (a684b2e)
- Feat: Simplify setup to be more in line with IDP behaviour (9577791)
- Feat: Return client information from consent handler (e604c0c)
- Feat: Warn users when they change the base URL (62e2210)
- Feat: Store the server version on start (2dc20fe)
- Refactor: Create BaseTypedRepresentationConverter (27306d6)
- Feat: Update IDP parameters to latest Solid-OIDC version (fc60b5c)
- Feat: Move OIDC library behaviour to separate path (520e4fe)
- Fix: Update OIDC provider dependency to v7 (c9ed90a)
- Fix: Prefer all inputs equally when generating quads (c6544fa)
- Fix: Handle JSON preferences correctly in dynamic converter (4d319d2)
- Fix: Make UnionCredentialsExtractor tolerate failures. (c13456c)
- Fix: Accept lowercase Authorization tokens. (9c52011)
- Feat: Return correct status codes for invalid requests (1afed65)
- Fix: Split AccountStorage and ForgotPasswordStorage (expiring now) (d067165)
- Fix: Add content-negotiation when fetching dataset from url (ce754c1)
- Fix: Prevent login page from showing error before redirect (1ed45c8)
- Fix: Make IDP routes independent of handlers (1769b79)
- Fix: Improve OIDC error descriptions (e9e3c6d)
2.0.1 (2021-11-02)
- Feat: Display symlinks in container listings. (2e45899)
- Fix: Added a content-type parser to HeaderUtil (54ccbed)
- Fix: Allow URLs with multiple leading slashes. (b42150c)
- Fix: Do not serve UI on special pages. (8c9887f)
2.0.0 (2021-10-15)
- Feat: Keep track of last modified date of resources (97c534b)
- Feat: Expose Last-Modified and ETag headers (77d695c)
- Feat: Create conditions based on input headers (20f783a)
- Feat: Verify conditions in DataAccessorBasedStore (0d42987)
- Feat: Use RequestParser and ResponseWriter for IDP (7b7040a)
- Feat: Support content negotiation for IDP requests (80ebd02)
- Feat: Add support for agentGroup ACL rules (401923b)
- Feat: Support LDN inbox headers (759112b)
- Feat: Convert IDP input data to JSON (4f1a86d)
- Feat: Support JSON errors (cc1c3d9)
- Feat: Patch containers by recreating Representation from metadata (ef9703e)
- Feat: Create SetupHttpHandler (4e1a2f5)
- Feat: Integrate setup behaviour (b592d44)
- Feat: Let CredentialsExtractors specify what type of Credentials they generate (c3fa74d)
- Feat: Create UnionHandler to combine AsyncHandler results (62f026f)
- Feat: Combine the results of multiple CredentialsExtractors (ba1886a)
- Feat: Extract set of required modes instead of PermissionSet (e8dedf5)
- Feat: Use PermissionReaders to determine available permissions (bf28c83)
- Feat: Create OperationMetadataCollector to handle operation metadata (5104cd5)
- Feat: Store account settings separately (6c4ccb3)
- Feat: Always grant control permissions to pod owners (8f5d619)
- Feat: Support acl authorization for IDP components (13c4904)
- Fix: Explain why logging in will not work (a062a71)
- Fix: Prevent parent containers from storing generated metadata (7f3eab0)
- Fix: Make json-ld prefix generation deterministic (a75d5aa)
- Fix: Hide internal data by making it auxiliary (0271133)
- Fix: Only check DataAccessor canHandle call for Documents (a1c3633)
- Feat: Replace acl specific permissions with generic permissions (7f8b923)
- Fix: Add required triple to pod README acl (f40e2c7)
- Fix: Let Representations always have a body (5613ff9)
- Fix: Return 201 when creating new resources (76c87bb)
- Fix: Return 409 when there is a slash semantics issue (fb3a59c)
- Change: Rename resourceStore to aclStore. (60fc273)
- Refactor: Restructure source code folder (b3da9c9)
1.1.0 (2021-09-03)
- Feat: Throw error when trying to complete interaction out of session (cb227d6)
- Feat: Indicate to templates if this is part of an auth request (f71f868)
- Feat: Allow filtering in ConstantConverter based on type (ab06dd3)
- Fix: Allow clients to be remembered in the SessionHttpHandler (47b3a2d)
- Fix: Convert data to SparqlDataAccessor in regex config (f34e124)
- Fix(deps): update dependency @solid/access-token-verifier to ^0.12.0 (7928f43)
1.0.0 (2021-08-04)
- Feat: Create ChainedTemplateEngine for combining engines (18a7103)
- Feat: Accept asset paths as config. (f28279e)
- Change: Use @css: instead of $PACKAGE_ROOT/ (1719857)
- Fix: Replace rimraf with fs-extra.remove (2a82c4f)
1.0.0-beta.2 (2021-07-30)
- Feat: Allow registration to be disabled (916dce5)
- Feat: Prevent access to internal storage containers (7b94b71)
- Feat: Cache static assets. (745eef7)
- Feat: Update ExtensionBasedMapper custom types (3f8f822)
- Docs: Make registration form self-explanatory. (969bb0e)
- Refactor: Rename AllowEverythingAuthorizer to AllowAllAuthorizer (dee3828)
- Fix: Trust X-Forwarded headers in the IDP (2df3f1f)
- Fix: Prevent cyclical dependency with locker and storage (45f9a51)
- Fix: Use memory key/value storage for sparql backends (c01e33e)
- Fix: Expose WAC-Allow via CORS. (0271536)
- Fix: Expose Link via CORS. (643cece)
1.0.0-beta.1 (2021-07-23)
- Feat: Support metadata in multiple graphs (35a7cf9)
- Feat: Allow HttpErrors to store cause and errorCode (e44c337)
- Feat: Convert errorCodes using markdown (f2f967f)
- Feat: Add IndexRepresentationStore to support index resources (cc1e332)
- Feat: Style main template. (264b970)
- Refactor: Match IDP templates to main template. (6897784)
- Feat: Render Markdown documents as HTML. (c0dac12)
- Feat: Add HTML container listing. (1394b9c)
- Feat: Add support for client_id WebIDs (3bb7a32)
- Feat: Split ResourceStore config into 2 parts (ad7f4ed)
- Fix: Use #me for WebID generation (ee456a5)
- Fix: Fix incorrect path in https example config (0c3210f)
- Fix: Always find the best path with ChainedConverter (e7ff134)
- Fix: Prevent generated metadata from being stored (12e5018)
- Fix: Throw internal error with invalid ACL. (e43b579)
- Fix: Make sure there is always a fallback for error handling (bd10256)
- Fix: Remove the cache from the ChainedConverter (fe8d579)
1.0.0-beta.0 (2021-06-29)
- Feat: Support creation of HTTPS server (7faad0a)
- Feat: Combine pod creation with IDP registration (4d7d939)
- Feat: Create ErrorHandler to convert errors to Representations (e1f9587)
- Feat: Add showStackTrace CLI variable (b604dd8)
- Feat: Create WWW-Authenticate metadata writer (e3c5b39)
- Expose constant Allow header (a6371b0
- Feat: Add ErrorToHtmlConverter using templates (9c0fa77)
- Fix: Support BGPs with variables in SPARQL UPDATE queries (f299b36)
- Refactor: Move config templates to templates folder (fadbaef)
- Feat: Split preset configurations by feature (452032e)
- Feat: Remove /interaction/:uid from IDP URLs (df33b6d)
- Fix: Support missing type preferences in ChainedConverter (52a3b84)
- Fix: Add solid_oidc_supported to openid config (b328f9a)
0.9.0 (2021-05-04)
- Feat: Add identity provider (#455) (1d65143)
- Feat: Add redis based locking mechanism (99d0173)
- Feat: enable more compact config props using type-scoped contexts (2861b90)
- Feat: Update ChainedConverter to create dynamic paths (44d82ea)
- Feat: Expose AppRunner.run for easily serving from JS apps (d1eadd7)
- Fix: Prevent CliRunner tests from outputting errors (a00de24)
- Fix: Use HttpErrors instead of Errors (218c8f4)
- Fix: Prevent HttpRequest from being closed (9534582)
- Fix: Allow owners to edit their own profile (7aebab1)
0.8.1 (2021-03-23)
- Feat: Fallback to X-Forwarded-* headers (de51a23)
- Feat: Added oidc validation triples to template (e2284c4)
- Fix: Make new pod profile card public (613dd56)
- Fix: Fix issue when there are multiple values for the same CLI parameter (dd5b496)
0.8.0 (2021-03-04)
- Feat: Static favicon asset (03e631f)
- Feat: Introduce internal storing mechanism (59deb98)
- Feat: Create GreedyReadWriteLocker using read/write locking algorithm (a3f41c1)
- Feat: Introduce generic auxiliary resource support (d6cdd7d)
- Feat: Support auxiliary behaviour in DataAccessorBasedStore (0c04723)
- Feat: Add WAC-Allow header when required (1393424)
- Feat: Emit container pub event on PUT. (c3cff55)
- Feat: Create SubdomainExtensionBasedMapper (bdb3621)
- Feat: Added resourceExists method to ResourceStore (b3f292d)
- Feat: Solid community server Docker image (52551ac)
- Feat: Create pod manager for generating dynamic pods (88d008e)
- Feat: Create KeyValueStorage with a JSON file backend (6288003)
- Fix: Error when unknown parameters are passed to the main executable (1589def)
- Feat: Replace express with native http module (ce1f430)
- Feat: Make stores return modified resources. (6edc255)
- Change: Query string does not influence identifier. (a57105b)
- Fix: Do not re-encode static assets. (#566) (c899e6c)
- Fix: Preserve query string in transformations. (6e50443)
- Fix: Test error classes correctly (c29928c)
- Fix: Close unpiped streams (386d782)
- Fix: Prevent race condition in OPTIONS call (73acb9c)
- Fix: Fix problem with piping streams for PATCH requests (6c4378a)
- Fix: Fixed bug with empty Accept headers and internal/quads bodies (59600b0)
- Fix: Simply GuardedStream check (c05933f)
- Fix: Prevent setRepresentation crash if there is no root container (6424b07)
- Fix: Remove default root container from InMemoryDataAccessor (bb65630)
- Test: Remove root folder creation from integration tests (49a04c4)
- Fix: Make mkdir recursive in FileDataAccessor (30cebec)
- Fix: do not output filesystem container size (1486f01)
- Fix #621: acl:AuthenticatedAgent instead of foaf:AuthenticatedAgent (91791a0)
- Fix: Allow non-variable BGP boedies in SPARQL updates (894d458)
- Correctly handle slugs in POST requests (28c0eb7)
- Fix: Update faulty token verifier (5c6822d)
- Fix: SPARQL PATCH Content Type (2a34a43)
- Fix: SPARQL body parser test content type metadata (23473f5)
0.7.0 (2021-01-28)
- Feat: Update config to include LockingResourceStore (69c3144)
- Feat: Add ConstantMetadataWriter. (fe3957f)
- Feat: Set MS-Author-Via header. (8c2f737)
- Feat: Set Accept-Patch header. (153d2d9)
- Feat: Add acl link header writer (2c33000)
- Feat: Add ParallelHandler. (817cf3a)
- Feat: Support folders in StaticAssetHandler. (2563335)
- Feat: Update ResourceLocker interface (4d440c6)
- Feat: Update WrappedExpiringResourceLocker to new interface (b59357e)
- Fix: Remove locking from the SparqlUpdatePatchHandler (077f5d7)
- Feat: Update LockingResourceStore to use new locking interface (c174025)
- Fix: Only require append permissions on POST requests (93e53b3)
0.6.0 (2021-01-21)
- Feat: Export UnsecureConstantCredentialsExtractor. (5429014)
- Feat: Add IfNeededConverter and PassthroughConverter. (6763500)
- Feat: Support composite PATCH updates (36761e8)
- Add optional path and url suffixes to FixedContentTypeMapper (4ac0167
- Feat: Implement UnsupportedAsyncHandler. (dd9d873)
- Feat: Add ConstantConverter. (5416d66)
- Feat: Set Vary header. (693d48b)
- Feat: Add StaticAssetHandler. (5a12315)
- Feat: Add placeholders for static assets to configuration. (75d0d41)
- Refactor: Rename BasicTargetExtractor to OriginalUrlExtractor. (3a4ec48)
- Fix: Accept absolute paths in CliRunner (cf6270d)
0.4.1 (2021-01-13)
- Feat: Only convert when needed. (2efebf9)
- Feat: Add BaseResourceStore. (998296a)
- Fix: Update acl authorizer to make write rights imply append rights (61aa2e1)
- Feat: Add transformSafely. (995a2dc)
- Refactor: Make request related handle calls consistent (f17054c)
- Feat: Store target identifier when parsing metadata (76def28)
- Fix: Use base IRI when parsing SPARQL update queries (775aaa7)
- Feat: Add Content-Type constructor to metadata. (be1af89)
- Feat: Add BasicRepresentation. (66e6368)
- Feat: Use ldp: prefix in container representations. (ba42861)
- Fix: Prevent POST BasicRequestParserests from creating intermediate containers (a5bc8d2)
- Fix: Don't get normalized metadata for root containers (5995057)
- Fix: Take baseIRI into account when calling parseQuads (fea726a)
- Test: Move diamond identifier test to ldp handler tests (d3c8069)
- Fix: Generalize typing on pushQuad. (27a1150)
- Fix: Allow Content-Type: 0 on GET. (16ef86a)
- Fix: Always keep guarded error listener attached (27cc1ec)
0.4.0 (2021-01-06)
- Feat: Create new resources when patching (7011b76)
- Feat: Add read-only store. (038d572)
- Feat: Create ContainerManager for containing container conventions (9c080c2)
- Feat: Add constant WebID extractor. (209b87a)
- Feat: Initialize root containers with RootContainerInitializer (231349b)
- Feat: ExtensionBasedMapper no longer throws if there is no file (d7434df)
- Feat: Support .meta files for pod provisioning (e722cc6)
- Feat: Add pod template to indicate storage (70cc359)
- Feat: Add RecordObject. (147f3cf)
- Feat: Bearer token support (bdfd7cf)
- Feat: Add extra logging for root container creation. (5a3a612)
- Feat: Add mainModulePath and globalModules CLI flags. (ba4f7ff)
- Feat: Improve path logging. (e20510a)
- Feat: Expose UriConstants. (0bd48f0)
- Feat: Expose ConversionUtil. (dfc1d46)
- Feat: Expose ContentTypes. (4df11c1)
- Feat: Expose GuardedStream. (166c4de)
- Feat: Support strings in addQuad. (feaac1c)
- Feat: Expose UriUtil. (882c0fd)
- Feat: Incorporate server-side representation quality. (8cd3f7d)
- Feat: Validate Accept-DateTime. (ba5c620)
- Feat: Allow querying metadata. (3b63786)
- Feat: Support writer prefixes. (87752dd)
- Refactor: Split off AclInitializer. (8fbb4f5)
- Refactor: Split off LoggerInitializer. (b0ecf1c)
- Refactor: Split off ServerInitializer. (04a9185)
- Refactor: Remove Setup. (badbe00)
- Change: Refactor AllVoidCompositeHandler into SequenceHandler. (ba47ce7)
- Change: Rename FirstCompositeHandler into WaterfallHandler. (f26178b)
- Change: Make RepresentationMetadata accept a ResourceIdentifier. (accfc2e)
- Refactor: Replace getParentContainer util function with ContainerManager (f0db9e5)
- Refactor: Also create named nodes for vocabularies. (ae06e99)
- Refactor: Rename UriUtil into TermUtil. (2e18855)
- Refactor: Use record for representation preference. (4828912)
- Refactor: Rename RepresentationPreference into ValuePreferences. (09ae959)
- Fix: Only set content-type for documents in sparql store (d7e189c)
- Fix: Allow quad data for containers (d5bf4e1)
- Fix: Do not write error if response already started. (907caa1)
- Fix: Allow overwriting and deleting root container in SparqlDataAccessor (fc8540f)
- Fix: Allow deletion of root in InMemoryDataAccessor (3e3dd7f)
- Fix: Allow DataAccessorBasedStore to create root (a08b7e9)
- Fix: Remove metadata content-type assumption from FileDataAccessor (1464288)
- Fix: Remove metadata content-type assumption from QuadUtil (a114d00)
- Fix: Only check relevant type triples (a721684)
- Fix: Execute only one main handler. (2443f2c)
- Fix: Prevent deletion of root storage containers (39a79db)
- Fix: Remove faulty no-routing configuration. (eb6ba03)
- Fix: Expose Location header via CORS. (a5c372c)
- Fix: Export all errors. (f7825be)
- Fix: Distinguish instantiation and initialization errors. (49551eb)
- Fix: Ensure root file path is absolute. (c41c41d)
- Fix: Emit all guarded errors to all listeners. (4faf916)
- Fix: Sort preferences by descending weight. (98bf8c1)
- Fix: Allow credentials over CORS. (ee072b0)
- Fix: Join and normalize paths consistently. (f454b78)
- Fix: Prefer Turtle as default content type. (e70e060)
0.3.0 (2020-12-03)
- Feat: Store status, body and metadata in ResponseDescription (1260c5c)
- Feat: Create MetadataSerializer (aebccd4)
- Feat: Reject unacceptable content types (69ed2e0)
- Feat: Make internal/quads unacceptable output (715ba12)
- Feat: Implement ExpiringLock and -ResourceLocker (9fd8440)
- Feat: Add a monitoring store. (4ef4d44)
- Feat: Add WebSocket functionality to server. (5948741)
- Feat: Implement the Solid WebSocket protocol. (0099d1d)
- Feat: Include parent containers in POST and DELETE changes. (d879936)
- Feat: Advertise WebSocket via Updates-Via header. (f08617b)
- Feat: Create function to wrap streams to not lose errors (1a30b51)
- Feat: Export WebSocket classes. (4a7ea4a)
- Feat: Wire up WebSockets. (9b70068)
- Feat: Add DPoPWebIdExtractor. (0407a36)
- Feat: Add patch logging. (de07906)
- Feat: Make HeaderHandler customizable. (d6c0f89)
- Feat: Make CorsHandler customizable. (8dec921)
- Feat: Expose Updates-Via header via CORS. (49d37dc)
- Feat: Implement --baseUrl flag. (eabe6bc)
- Feat: Add LDP request logging. (535cbcd)
- Feat: Support the Forwarded header. (ecfe3cf)
- Feat: create PodHttpHandler with default interfaces (39745cc)
- Feat: add implementations of pod-related interfaces (9653dee)
- Feat: add template based data generator (f387b36)
- Feat: integrate pod creation (1a043ac)
- Refactor: Create multiple composite handlers (840965c)
- Refactor: Make piping consistent (95ab0b4)
- Refactor: Remove identifier parameter (acebf03)
- Refactor: Clean up utility functions (1073c2f)
- Refactor: Add isContainerPath function (75e4f73)
- Refactor: Add ExpressHttpServerFactory. (e39e796)
- Refactor: move ExtensionBasedMapper into mapping directory (2c46d70)
- Refactor: abstract parts of ExtensionBasedMapper into MapperUtil (971e417)
- Change: use isContainerIdentifier in FixedContentTypeMapper (f23073b)
- Refactor: Move lock stuff in its own folder (dacfb74)
- Change: Drop Node 10 support. (03ffaae)
- Change: Make credential extractors specialized. (b0c50b8)
- Change: Do not warn in canHandle. (baf6888)
- Change: Increase logging level of lock expiry. (1d08f46)
- Refactor: Separate middleware from Express. (023ff80)
- Change: Move WebSocketAdvertiser to middleware. (fc3942b)
- Refactor: Refactor runCli to take optional arguments. (528688b)
- Fix: Integrate wrapStreamError to prevent uncaught errors (e418333)
- Fix: Correctly handle acl behaviour for acl identifiers (ee31291)
- Fix: Update quad converter config parameters (59f99e1)
- Fix: Rename UnsupportedHttpError into BadRequestError. (af8f197)
- Fix: Always release lock when patching (3362eee)
- Fix: Create container data before adding content-type (c2b1891)
- Fix: Do not generate empty INSERT graph. (0ecbffa)
- Fix: Do not overwrite existing root ACL. (77db5c0)
0.2.0 (2020-11-05)
- Feat: Expose types (1dd1469)
- Feat: Implement resource mapper for the file resource store (#142) (383da24)
- Feat: More integration tests and test configs (#154) (b1991cb)
- Feat: Update RepresentationMetadata to store triples (76319ba)
- Feat: Add logging (99464d9)
- Feat: Implement HEAD request support (0644f8d)
- Feat: Have ExtensionBasedMapper handle extensions correctly (b47dc3f)
- Feat: Decode URI in target extractor (bb28af9)
- Feat: Create MetadataHandler (7dcb3ea)
- Feat: Integrate MetadataHandler (31844a4)
- Feat: Add support for mocking fs (e00cb05)
- Feat: Create DataAccessorBasedStore to have a standard store implementation (6ad4076)
- Feat: Create file-based DataAccessor (9a857b7)
- Feat: Add DataAccessorBasedStore integration (9b26bbe)
- Feat: Create InMemoryDataAccessor (b896004)
- Feat: Fully support storing content-type in file extensions (e861b08)
- Feat: Implement SPARQL-based ResourceStore (6cc7053)
- Feat: Support SPARQL store backends (9f7c246)
- Feat: Update RepresentationConvertingStore to convert incoming data (712a690)
- Feat: Implement a first draft of the RoutingResourceStore (86de805)
- Feat: Create a RoutingResourceStore that takes routing rules (5287cd1)
- Feat: Create multiple configs supporting different store backends (892b5f5)
- Feat: Create routing configs and partially clean up config structure (f8542a2)
- Refactor: Rename BasePermissionsExtractor to MethodPermissionsExtractor (ba8b357)
- Refactor: Simplify MethodPermissionsExtractor (389fb33)
- Refactor: More precise error messages (063437e)
- Refactor: Make PassthroughStore generic (3d95078)
- Chore: update to componentsjs-generator with generics support (e9983d5)
- Refactor: Remove RuntimeConfig in favor of config variables, Closes #106 (1dd140a)
- Refactor: Streamline RepresentationMetadata interface (8d39793)
- Refactor: Make URI constants consistent (85df2e5)
- Refactor: Fix typo (c150da3)
- Refactor: Update eslint related dependencies (9657fba)
- Refactor: Apply naming-convention rules (e349e04)
- Refactor: Rename UriUtil functions (e1533a0)
- Refactor: Remove Turtle to Quad and Quad to Turtle converters (d8e6c08)
- Refactor: Move file related metadata to FileResourceStore (fa935cc)
- Refactor: Let caller decide which error pipeStreamAndErrors should throw (006f7ea)
- Refactor: Rename instances of data resource to document (626b311)
- Refactor: Remove file and in memory stores (03c64e5)
- Refactor: Make ExtensionBasedMapper only expose what is needed (4df2645)
- Refactor: Implement empty canHandle on base class. (#289) (1a45b65)
- Chore: Organize tests (#292) (73a56d8)
- Chore: Use Jest recommended linting. (4b4f737)
- Refactor: Change constructor so it is supported by Components.js (dee4eef)
- Refactor: Change routing constructors to work with Components.js (50dfea1)
- Refactor: Change PreferenceSupport constructor to work with Components.js (ef6f01a)
- Chore: Add docker npm scripts. (5f4f4b0)
- Chore: Enable/disable Docker testing with a flag. (fe870f0)
- Fix: metadata file error in FileResourceStore (c808dfe)
- Fix: Retain status codes when combining errors (10723bb)
- Fix: Have AsyncHandlers only check what is necessary (4d34cdd)
- Fix typo. (79defc3)
- Fix: Make sure all URI characters are correctly encoded (e85ca62)
- Fix: Fix test issues (2296219)
- Fix: Remove metadata file if no new metadata is stored (63f891c)
- Fix: Provide full coverage for util functions (c999abb)
- Fix: Correctly parse URL domain (5fa0686)
- Fix: Resolve duplicate error message and no trailing newline (a7fa61a)
- Fix: Write tests and fix related bugs, refactor code (dff4ba8)
0.1.1 (2020-09-03)
0.1.0 (2020-09-03)
- Feat: Send server identification (4965b47)
- Feat: Integrate ChainedConverter into the server (3931d5f)
- Feat: Dynamically determine matching types in ChainedConverter (af4a82f)
- Feat: Create RepresentationConverter that chains other converters (734f7e7)
- Feat: allow custom config to be passed (09707a9)
- Feat: Enable dependency injection with auto-generated components (db04c55)
- Feat: add support for parsing more RDF formats using rdf-parse (e88e680)
- Feat: Support link and slug headers in SimpleBodyParser (86d5f36)
- Feat: Move runtime config into dedicated component, Closes #67 (5126356)
- Feat: Add file based ResourceStore (#52) (381dae4)
- Feat: Add more extensive permission parsing support (e06d0bc)
- Feat: Integrate acl with rest of server (769b492)
- Feat: Add acl support (0545ca1)
- Feat: Integrate data conversion with rest of server (4403421)
- Feat: Convert data from ResourceStore based on preferences (5e1bb10)
- Feat: Specifiy constants in separate file (14db5fe)
- Feat: Integrate PATCH functionality (0e486cf)
- Feat: Add support for SPARQL updates on ResourceStores (04a12c7)
- Feat: Add OperationHandler for PATCH (482991c)
- Feat: Add BodyParser for SPARQL updates (95c65c8)
- Feat: Add lock functionality (a9b811a)
- Feat: Add prepare script (a4dc001)
- Feat: Set up server using express (a9dc59b)
- Feat: Add coveralls support (7923237)
- Feat: Validate Accept* headers while parsing (64a3f90)
- Feat: Fully support Accept* headers (9d9f7df)
- Feat: add simple response writer (6180056)
- Feat: add simple operation handlers (fe87493)
- Feat: add simple resource store (12fd00e)
- Feat: add simple permissions related handlers (d983fca)
- Feat: add response description interface (e0343fc)
- Feat: add simple request parser (cf258d0)
- Feat: add simple preference parser (09eb665)
- Feat: add simple target extractor (3c8a087)
- Feat: add simple body parser (d4f70d9)
- Feat: add request parsing related interfaces (70af469)
- Feat: add typed readable (e0d74fd)
- Feat: Add README with architecture links (aaf3f8e)
- Feat: add AuthenticatedLdpHandler (3e2cfaf)
- Feat: add FirstCompositeHandler to support multiple handlers (4229932)
- Feat: add custom errors (57405f3)
- Feat: add additional supported interfaces (a4f2b39)
- Initial configuration (b949b6c)