The previous package was outdated, preventing us from updating TS.
This one also lints YAML and JSON,
and applies many more rules to the test files,
explaining all the changes in this PR.
Complete rewrite of the account management and related systems.
Makes the architecture more modular,
allowing for easier extensions and configurations.
* 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
* refactor: move toCachedNamedNode (private)
* chore: only NamedNodes predicates in removes
* feat: enforce NamedNode predicates in most cases
* feat: getAll only accepts NamedNodes
* feat: toCachedNamedNode only accepts string arg
* tests: use NamedNodes for getAll calls
* test: remove unnecessary string check for coverage
* tests: fix NamedNodes in new tests after rebase
* feat: metadatawriters store NamedNodes
* refactor: toCachedNamedNode as utility function
* fix: double write of linkRelMap
* test: use the CONTENT_TYPE constant
* Add identity provider handler as a dependency
* Temp Identity
* Figured out how to get koa to work
* Hooked up idp to networking
* Feat/idp architecture refactor (#430)
* Logs in with solid oidc
* Refactored Provider
* Attempt to hook up dependencies
* Partial wiring of oidc provider components
* IdP networking now works with architecture
* Interaction Handlers Set Up
* fix: Rename & adapt to CSS
* Included Login Interaction
* Refactored architecture to bind Interaction Policy to HttpHandlers
Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>
* fix: Rebase on master
* fix: DI after rebase
* Reimplemented Routing
* Renamed modules and removed ProviderFactory (#450)
* refactor: Solid IdP DI
* refactor: IdP interaction handler DI
* refactor: IdP interaction waterfall
* refactor: Remove unnecessary legacy URL parse
* fix: Add legacy parse back in
* feat: adapter & fix: handlers
* Removed adapter factory
* fix: refactor IdP
* fix: refactor IdP
* fix: refactor IdP
* feat: Add IdP to file storage config
* fix: Unintended commit
* fix: Components ignore
* feat: Basic resource store adapter
* Partially complete idp routing
* Set up initial routing injection graph
* Clean up ResourceStorageAdapter
* Refactored configuration architecture
* Hooked up Login UIs (#518)
* feat: Use template path & run fileserver
* feat: Use util function to read resource
* Fixed DI JSON-LD context
* fixed rendering
* WebId validator
* Set up persistent storage for loing and register
* Fixed ejs template routing
* Refactored StorageAdapters
* NSS login successful
* Forgot password infrastructure
* Can send email (#557)
* Can send email
* fix: IdP crashes if interaction ID doesn't exist (#587)
* feat: Require an issuer registration token
* fix: Issuer registration token typo in error
* fix: Remove dummy IdP storage adapter
* fix: Remove unused library lodash
* fix: Remove unused library lru-cache
* Production ready keystore
* Ruben comments before clownface removal
* Removed clownface
* Change key value store
* Completed Ruben's comments
* Added comments to each class
* Fixed errors on login
* Ruben feedback
* Refactored out getPostRenderHandler
* Identity provider tests (#622)
* corrected tests lacking <void> on promises
* Added files for all idp tests
* Added unfinished tests for all added files
* ErrorHandlingWaterfallHandler
* RenderEjsHandler and RouterHandler tests
* GetPostRouterHandler and BasicOnErrorHandler tests
* Corrected tests for updates to Idp
* fix: missing export
* fix: audience claim
* Client Id Support (#630)
* Added client_id for the auth challenge
* Update src/identity/storage/ClientWebIdFetchingStorageAdapterFactory.ts
Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>
Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>
* fix: Rebase fixes
* Several minor Idp changes/refactors (#656)
* fix: Minor changes
* refactor: Split EmailPasswordInteractionPolicy
* refactor: Remove ErrorHandlingWaterfallHandler
* refactor: Clean up dependencies
* fix: Add dummy IdentityProviderHandler to fix integration tests
* Replace KeyValueStore with KeyValueStorage (#663)
* feat: Create WrappedExpiringStorage
* refactor: Update ResourceStoreEmailPasswordStore to use KeyValueStorage
* refactor: Update KeyGeneratingIdpConfigurationGenerator to use KeyValueStorage
* refactor: Update ResourceStoreStorageAdapterFactory to use ExpiringStorage
* refactor: Removed KeyValueStore
* refactor: Simplify EmailPassword handlers (#664)
* refactor: Order index.ts
* test: Add EmailPasswordForgotPasswordHandler unit tests
* test: Add EmailPasswordGetResetPasswordHandler unit tests
* test: Add EmailPasswordLoginHandler unit tests
* test: Add EmailPasswordRegistrationHandler unit tests
* test: Add EmailPasswordResetPasswordHandler unit tests
* test: Remove unnecessary test file
* feat: Basic instructions for using the IdP
* fix: IdP instructions and add example WebID
* fix: IdP registration copy
* fix: IdP instruction editorial
* Update README.md
Co-authored-by: Joachim Van Herwegen <joachimvh@gmail.com>
* Update README.md
Co-authored-by: Joachim Van Herwegen <joachimvh@gmail.com>
* test: Add KeyGeneratingIdpConfigurationGenerator unit tests
* test: Add KeyValueEmailPasswordStore unit tests
* test: Create IdP integration test
* test: Add EmailPasswordInteractionPolicy unit tests
* test: Add BasicIssuerReferenceWebIdOwnershipValidator unit tests
* test: Add ChooseInitialInteractionHandler unit tests
Also fixes the config warning.
* test: Add EjsTemplateRenderer unit tests
* test: Add EmailSender unit tests
* test: Add FormDataUtil unit tests
* test: Add IdpRouteController unit tests
* test: Add OidcInteractionCompleter unit tests
* refactor: Simplify ClientWebIdFetchingStorageAdapterFactory
* test: Add ClientWebIdFetchingStorageAdapterFactory unit tests
* refactor: Fix ejs html warnings
* test: Add step to test logging in again
Included are updates to handle cookies more correctly.
* feat: Add IdpConfirmHttpHandler
This way there's a handler for the confirm page.
* test: Add ExpiringStorageAdapterFactory unit tests
* test: Add IdentityProviderFactory unit tests
* test: Add IdentityProviderHttpHandler unit tests
* refactor: Minor refactors
* refactor: Use jose instead of node-jose
* refactor: Use jose instead of node-jose
Reduces the number of dependencies since other libraries
also depend on jose.
* Update src/identity/configuration/KeyGeneratingIdpConfigurationGenerator.ts
Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>
* refactor: Use interfaces instead of abstract classes
* refactor: Make WebIdOwnershipValidator an AsyncHandler
* refactor: Make TemplateRenderer an AsyncHandler
* fix: Fix typing issue
* fix: Convert JWK to plain object for node 15
* feat: Update CI configuration
--ignore-scripts was removed because it also stopped dependency scripts,
which was a requirement for bcrypt.
15.0 was removed since that version doesn't run the required scripts after install.
14.0 was removed since the somehow it caused the solid-authn client to do the wrong calls.
* test: Run integration tests on Node 14.2
This is the lowest 14.x version where the IdP integration tests succeed.
* feat: Use ErrorResponseWriter for handling oidc errors
* test: Mock Date in OidcInteractionCompleter tests
* fix: Correctly generate new identifiers
Previously there could be double slashes if the base URL ended in slash.
* fix: Correctly handle storagePathName in ExpiringStorageAdapterFactory
* fix: Fix issue with new CliRunner test in rebase
* fix: Handle unknown errors more consistently
* feat: Make idp parameter dynamic
* feat: Add more logging
* refactor: Link css instead of injecting
* fix: Fix redis integration tests with idp
* refactor: Shorten idp class names
* refactor: Remove e-mail configuration from default config
* feat: Store JsonResourceStorage data in a single container
* feat: Make sure expired data gets removed at some point
* feat: Only accept strings as keys in KeyValueStorage
* fix: Various minor fixes based on review
Co-authored-by: Matthieu Bosquet <matthieubosquet@gmail.com>
Co-authored-by: Joachim Van Herwegen <joachimvh@gmail.com>