A plugin to make Nextcloud compatible with Solid

Overview

solid-nextcloud

A plugin to make Nextcloud compatible with Solid.

You can download it via the Nextcloud app store: https://apps.nextcloud.com/apps/solid IMPORTANT: Follow the additional install instructions!.

Unattended install

To programmatically build a Nextcloud server that has this plugin working, you can look at the nextcloud-server image in the Solid test-suite, combined with how it's initialized in the runTests.sh script.

Development install

Clone https://github.com/pdsinterop/test-suites, cd into it, and run:

docker pull nextcloud
docker build -t nextcloud-server-base ./servers/nextcloud-server/base/
docker build -t nextcloud-server ./servers/nextcloud-server/server/
docker run -p 443:443 -d --rm --name=server nextcloud-server
echo sleeping
sleep 10
echo slept
docker logs server
docker exec -u www-data -it server sh /init.sh
docker exec -u root -it server service apache2 reload

Now visit https://localhost and log in as alice / alice123.

Manual install

If you enable this app in your Nextcloud instance, you should edit your .htaccess file and then test whether https://your-nextcloud-server.com/.well-known/openid-configuration redirects to https://your-nextcloud-server.com/apps/solid/openid.

Also, take the CORS instructions from site.conf and add them to your own webserver configuration.

Unattended testing

To test whether your server is install correctly, you can run Solid's webid-provider-tests against it.

Manual testing

Go to https://solidcommunity.net and create a Solid pod. Go to https://generator.inrupt.com/text-editor and log in with https://solidcommunity.net. Tick all 4 boxes in the consent dialog. Click 'Load', type something, click 'Save'. Grant access to co-editor https://your-nextcloud-server.com/apps/solid/@your-username/profile/card#me. For instance if you're using the development install, that would be https://localhost/apps/solid/@alice/profile/card#me Now in a separate browser window, log in to https://generator.inrupt.com/text-editor with https://your-nextcloud-server.com. You should be able to edit the file as a co-author now, using your Nextcloud account as a webid identity provider.

Publishing to the Nextcloud app store

Comments
  • Could not extract app solid

    Could not extract app solid

    Hi,

    I have my own instance of nextcloud and I am trying to install the solid plugin via nextcloud. It throws the following error "Could not extract app solid: Out-of-path file extraction {/tmp/oc_tmp_yc3XAx-folder/solid/vendor/bin/generate-defuse-key --> ../defuse/php-encryption/bin/generate-defuse-key}"

    Test case: -Open nextcloud -Go to Apps

    • Look for Solid and click download and enable.

    image

    Looking forward to hearing from you.

    Thanks, Angel

    opened by ch1ch0gz 23
  • Migration causing upgrade to fail

    Migration causing upgrade to fail

    Just FYI:

    The migration that's part of 0.6.0 is causing updates to fail with:

    Exception: Database error when running migration 000000Date20220923134100 for app solid An exception occurred while executing a query: SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 3072 bytes
    

    on MySql 10 databases with default config.

    bug 
    opened by KDederichs 14
  • help needed for configuration

    help needed for configuration

    After installing from NC app store and activating solid app i can find "/var/www/nextcloud/apps/solid/composer.json". Are you talking about this when considering something like "take and put JSON from ... to" and do you mean "copy the file". When doing "https://myDomain/.well-known/openid-configuration" i get "message: openid-configuration not supported".

    Some hints would be great.

    Regards markus

    question 
    opened by aakerbeere 14
  • Debug installation with snap

    Debug installation with snap

    Install nextcloud using snap. This installs the latest released version from the Nextcloud app store, so for development:

    sudo /bin/bash
    cd /var/snap/nextcloud/current/nextcloud/extra-apps/
    rm -r solid
    git clone https://github.com/pdsinterop/solid-nextcloud
    ln -s solid-nextcloud/solid
    cd solid
    apt update
    apt install -y php git php-curl php-gd php-opcache php-xml php-gd \
      php-curl php-zip php-json libxml2 libxml2-dev php-xml php-mbstring \
      build-essential curl php-sqlite3 php-xdebug php-mbstring php-zip \
      php-imagick imagemagick php-intl
    make
    
    opened by michielbdejong 6
  • NGI0 - Updating licensing aspects according REUSE

    NGI0 - Updating licensing aspects according REUSE

    Hello, I would like to propose some updates regarding copyright and licensing information. REUSE specifications intend to make licensing easier by setting one way to display all this legal information through comment headers on source files that can be human - and machine – readable. Feel completely free to adopt these specifications by merging this pull request.

    REUSE Features:

    • SPDX copyright and license comment headers for all relevant files

    • LICENSES directory with all licenses used on the repository

    • Licensing of image files (please be aware that I licensed the image file under the MIT license, but you can also use another license, in this case please do not forget to add the selected license text to the LICENSES folder that I have created within the repository)

    Files missing copyright and licensing information:

    I added the comment headers with copyright and license information to some of the files that lacked that information. Please take into consideration that some files such as ".list" were not modified. However, we suggest to license these files under the CC0-1.0 license. (in this case please do not forget to add the selected license text to the LICENSES folder that I have created)

    I provided license information to README file as well.

    Please also double check if the personal information in the headers is correct and consistent

    No contribution policy:

    We have noticed that your project does not have a contribution policy. Therefore, we strongly recommend you to implement one. To get further information about this please check our documentation: https://download.fsfe.org/NGI0/V2/FSFE%20-%204%20-%20Free%20Software%20Contribution%20Policy.pdf

    Further REUSE compliance

    In case you find REUSE useful, we offer a wide range of tools to help you to continuously check and display compliance with the REUSE guidelines.

    Hope that helps and thank you very much for the amazing job!

    documentation enhancement 
    opened by lnceballosz 6
  • Install instructions in one place

    Install instructions in one place

    I know we created install instructions for the test server we created in August but I don't know where I put those. Also, the development install refers to https://github.com/pdsinterop/test-suites, I'm going to test whether that is still current

    opened by michielbdejong 4
  • How to use this app?

    How to use this app?

    I am sorry for the dumb question, but I am a non-developer with very limited technical skills. I host my own Nextcloud instance and I have installed this plugin. Now what? If I try to log into Solid apps such as Media Kraken, both https://cloud.tommi.space and https://cloud.tommi.space/index.php/apps/solid/openid do not seem to be working. Which URL should I use? Do I need to do something else after installing the app?

    Sorry for the silly question, thanks a lot in advance!

    documentation 
    opened by xplosionmind 4
  • Run solid-oidc-tests against Solid-Nextcloud

    Run solid-oidc-tests against Solid-Nextcloud

    See https://inrupt.github.io/solid-oidc-tests/ I'm setting up a Solid-Nextcloud instance and running the tests against it, will try to resolve the issues that I run into one-by-one.

    opened by michielbdejong 3
  • solid app error logged app.php

    solid app error logged app.php

    Don't know if this is of any meaning. I find

    ....","app":"solid","method":"GET","url":"/apps/serverinfo/update","message":"/appinfo/app.php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:100.0) Gecko/20100101 Firefox/100.0","version":"24.0.1.1"}
    

    in the nextcloud log.

    /appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.

    opened by aakerbeere 3
  • Application crash in /solid/lib/Controller/AppController.php

    Application crash in /solid/lib/Controller/AppController.php

    Hi, I just installed this app only to see what it's all about, but could not do anything with it:
    Whenever I access '/apps/solid/', I get the NextCloud's internal server error (HTTP 500).
    In the NextCloud's logs, I get 3 error entries:

    • [PHP] Error: Undefined variable $userClients at /var/www/html/custom_apps/solid/lib/Controller/AppController.php#37
      GET /apps/solid/
      from 172.18.0.3 by aa at 2021-12-30T15:55:09+00:00
    • [PHP] Error: foreach() argument must be of type array|object, null given at /var/www/html/custom_apps/solid/lib/Controller/AppController.php#37
      GET /apps/solid/
      from 172.18.0.3 by aa at 2021-12-30T15:55:09+00:00
    • [index] Error: in_array(): Argument # 2 ($haystack) must be of type array, string given in file '/var/www/html/custom_apps/solid/lib/Controller/AppController.php' line 55
      GET /apps/solid/
      from 172.18.0.3 by aa at 2021-12-30T15:55:09+00:00

    'not too sure what's happenning here.
    NextCloud v23.0.0.10
    PHP 8.0.14
    Apache 2.4.51 from Docker image nextcloud:23.0.0-apache

    bug 
    opened by alaincao 3
  • https://mydomain.org/apps/solid/@validuser gives HTTP 405 error

    https://mydomain.org/apps/solid/@validuser gives HTTP 405 error

    Steps to reproduce.

    On a Cloudron instance of Nextcloud

    Install and enable the Solid app from Nextcloud app store.

    Visit https://mydomain.org/apps/solid/@validuser

    Error log below

    Sep 24 17:51:23 [Fri Sep 24 16:51:23.101959 2021] [php7:notice] [pid 323] [client 172.18.0.1:59960] {"reqId":"MOzAKYOp9gcX4YSkytpk","level":3,"time":"2021-09-24T16:51:23+00:00","remoteAddr":"82.132.xxx.xxx","user":"user","app":"PHP","method":"GET","url":"/apps/solid/@user/","message":"require_once(/app/data/apps/solid/lib/Controller/../../vendor/autoload.php): failed to open stream: No such file or directory at /app/data/apps/solid/lib/Controller/PageController.php#24","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36","version":"22.1.1.2","exception":{"Exception":"Error","Message":"require_once(/app/data/apps/solid/lib/Controller/../../vendor/autoload.php): failed to open stream: No such file or directory at /app/data/apps/solid/lib/Controller/PageController.php#24","Code":0,"Trace":[{"file":"/app/data/apps/solid/lib/Controller/PageController.php","line":24,"function":"onError","class":"OC\\\\Log\\\\ErrorHandler","type":"::"},{"file":"/app/data/apps/solid/lib/Controller/PageController.php","line":24,"function":"require_once"},{"function":"__construct","class":"OCA\\\\Solid\\\\Controller\\\\PageController","type":"->"},{"file":"/app/code/lib/private/AppFramework/Utility/SimpleContainer.php","line":106,"function":"newInstanceArgs","class":"ReflectionClass","type":"->"},{"file":"/app/code/lib/private/AppFramework/Utility/SimpleContainer.php","line":114,"function":"buildClass","class":"OC\\\\AppFramework\\\\Utility\\\\SimpleContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/Utility/SimpleContainer.php","line":131,"function":"resolve","class":"OC\\\\AppFramework\\\\Utility\\\\SimpleContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":460,"function":"query","class":"OC\\\\AppFramework\\\\Utility\\\\SimpleContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":432,"function":"queryNoFallback","class":"OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/App.php","line":143,"function":"query","class":"OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer","type":"->"},{"file":"/app/code/lib/private/Route/Router.php","line":301,"function":"main","class":"OC\\\\AppFramework\\\\App","type":"::"},{"file":"/app/code/lib/base.php","line":1000,"function":"match","class":"OC\\\\Route\\\\Router","type":"->"},{"file":"/app/code/index.php","line":36,"function":"handleRequest","class":"OC","type":"::"}],"File":"/app/code/lib/private/Log/ErrorHandler.php","Line":92,"CustomMessage":"--"}}
    Sep 24 17:51:23 [Fri Sep 24 16:51:23.102015 2021] [php7:error] [pid 323] [client 172.18.0.1:59960] PHP Fatal error: require_once(): Failed opening required '/app/data/apps/solid/lib/Controller/../../vendor/autoload.php' (include_path='/app/code/3rdparty/pear/archive_tar:/app/code/3rdparty/pear/console_getopt:/app/code/3rdparty/pear/pear-core-minimal/src:/app/code/3rdparty/pear/pear_exception:/app/code/apps') in /app/data/apps/solid/lib/Controller/PageController.php on line 24
    Sep 24 17:51:23 [Fri Sep 24 16:51:23.102133 2021] [php7:notice] [pid 323] [client 172.18.0.1:59960] {"reqId":"MOzAKYOp9gcX4YSkytpk","level":3,"time":"2021-09-24T16:51:23+00:00","remoteAddr":"82.132.xxx.xxx","user":"user","app":"PHP","method":"GET","url":"/apps/solid/@user/","message":"require_once(): Failed opening required '/app/data/apps/solid/lib/Controller/../../vendor/autoload.php' (include_path='/app/code/3rdparty/pear/archive_tar:/app/code/3rdparty/pear/console_getopt:/app/code/3rdparty/pear/pear-core-minimal/src:/app/code/3rdparty/pear/pear_exception:/app/code/apps') at /app/data/apps/solid/lib/Controller/PageController.php#24","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36","version":"22.1.1.2"}
    Sep 24 17:51:23 82.132.xxx.xxx - - [24/Sep/2021:16:51:23 +0000] "GET /apps/solid/@user/ HTTP/1.1" 500 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
    Sep 24 17:51:24 82.132.xxx.xxx - - [24/Sep/2021:16:51:24 +0000] "GET /apps/photos/service-worker.js HTTP/1.1" 200 4828 "https:/mydomain/apps/photos/service-worker.js" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
    Sep 24 17:51:30 - - - [24/Sep/2021:16:51:30 +0000] "GET /index.php/login HTTP/1.1" 200 3715 "-" "Mozilla (CloudronHealth)"
    Sep 24 17:51:30 [Fri Sep 24 16:51:30.413447 2021] [php7:notice] [pid 323] [client 172.18.0.1:60062] {"reqId":"5ejhUZwDrqXrSy3zBOcx","level":3,"time":"2021-09-24T16:51:30+00:00","remoteAddr":"82.132.xxx.xxx","user":"user","app":"PHP","method":"GET","url":"/apps/solid/@frank/","message":"require_once(/app/data/apps/solid/lib/Controller/../../vendor/autoload.php): failed to open stream: No such file or directory at /app/data/apps/solid/lib/Controller/PageController.php#24","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36","version":"22.1.1.2","exception":{"Exception":"Error","Message":"require_once(/app/data/apps/solid/lib/Controller/../../vendor/autoload.php): failed to open stream: No such file or directory at /app/data/apps/solid/lib/Controller/PageController.php#24","Code":0,"Trace":[{"file":"/app/data/apps/solid/lib/Controller/PageController.php","line":24,"function":"onError","class":"OC\\\\Log\\\\ErrorHandler","type":"::"},{"file":"/app/data/apps/solid/lib/Controller/PageController.php","line":24,"function":"require_once"},{"function":"__construct","class":"OCA\\\\Solid\\\\Controller\\\\PageController","type":"->"},{"file":"/app/code/lib/private/AppFramework/Utility/SimpleContainer.php","line":106,"function":"newInstanceArgs","class":"ReflectionClass","type":"->"},{"file":"/app/code/lib/private/AppFramework/Utility/SimpleContainer.php","line":114,"function":"buildClass","class":"OC\\\\AppFramework\\\\Utility\\\\SimpleContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/Utility/SimpleContainer.php","line":131,"function":"resolve","class":"OC\\\\AppFramework\\\\Utility\\\\SimpleContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":460,"function":"query","class":"OC\\\\AppFramework\\\\Utility\\\\SimpleContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/DependencyInjection/DIContainer.php","line":432,"function":"queryNoFallback","class":"OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer","type":"->"},{"file":"/app/code/lib/private/AppFramework/App.php","line":143,"function":"query","class":"OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer","type":"->"},{"file":"/app/code/lib/private/Route/Router.php","line":301,"function":"main","class":"OC\\\\AppFramework\\\\App","type":"::"},{"file":"/app/code/lib/base.php","line":1000,"function":"match","class":"OC\\\\Route\\\\Router","type":"->"},{"file":"/app/code/index.php","line":36,"function":"handleRequest","class":"OC","type":"::"}],"File":"/app/code/lib/private/Log/ErrorHandler.php","Line":92,"CustomMessage":"--"}}
    Sep 24 17:51:30 [Fri Sep 24 16:51:30.413507 2021] [php7:error] [pid 323] [client 172.18.0.1:60062] PHP Fatal error: require_once(): Failed opening required '/app/data/apps/solid/lib/Controller/../../vendor/autoload.php' (include_path='/app/code/3rdparty/pear/archive_tar:/app/code/3rdparty/pear/console_getopt:/app/code/3rdparty/pear/pear-core-minimal/src:/app/code/3rdparty/pear/pear_exception:/app/code/apps') in /app/data/apps/solid/lib/Controller/PageController.php on line 24
    Sep 24 17:51:30 [Fri Sep 24 16:51:30.413630 2021] [php7:notice] [pid 323] [client 172.18.0.1:60062] {"reqId":"5ejhUZwDrqXrSy3zBOcx","level":3,"time":"2021-09-24T16:51:30+00:00","remoteAddr":"82.132.xxx.xxx","user":"user","app":"PHP","method":"GET","url":"/apps/solid/@frank/","message":"require_once(): Failed opening required '/app/data/apps/solid/lib/Controller/../../vendor/autoload.php' (include_path='/app/code/3rdparty/pear/archive_tar:/app/code/3rdparty/pear/console_getopt:/app/code/3rdparty/pear/pear-core-minimal/src:/app/code/3rdparty/pear/pear_exception:/app/code/apps') at /app/data/apps/solid/lib/Controller/PageController.php#24","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36","version":"22.1.1.2"}
    Sep 24 17:51:30 82.132.xxx.xxx - - [24/Sep/2021:16:51:30 +0000] "GET /apps/solid/@frank/ HTTP/1.1" 500 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36"
    
    opened by samuk 3
  • Secure WebSockets

    Secure WebSockets

    The new Notifications protocol that is expected to become required in addition to the current pubsub protocol requires:

    • a new discovery mechanism, same as for webhooks
    • auth checks, same as for webhooks
    • a new pub format, same as for webhooks

    So far I created the rudimentary https://github.com/pdsinterop/solid-nextcloud/blob/main/solid/lib/Controller/SolidWebsocketController.php which points to the old pubsub server.

    I thought of a way to improve this:

    • add a second port to the pubsub server
    • when a client subscribes, create a corresponding webhook subscription, but as the target, put the new port of the pubsub server + an auth token
    • give the URL with auth token to the client
    • the pubsub server second port forwards webhook messages into the open websocket (if any) that matches its token
    opened by michielbdejong 3
  • Support for Client ID Documents

    Support for Client ID Documents

    As per https://github.com/solid/solid-oidc/blob/a5a966c7342da01a57bfb316e5533ea7d82fd245/index.bs#L163-L166

    The serialized JSON form of a Client ID Document SHOULD use the normative JSON-LD @context provided at https://www.w3.org/ns/solid/oidc-context.jsonld such that the resulting document produces a JSON serialization of an OIDC client registration, per the definition of client registration metadata from [!RFC7591] section 2.

    opened by michielbdejong 1
  • Add unit-tests to PDS Interop maintained dependencies/packages

    Add unit-tests to PDS Interop maintained dependencies/packages

    We want to have more unit-level test in all PDS Interop PHP repositories that are dependencies for this repository.

    This ticket serves as full list of all the steps that need to be taken.

    All repositories (except solid-nextcloud) already have real or dummy tests and a GitHub Action to run those test(s).

    Per repository, a separate ticket has been created outlining what should be tested in more details:

    • php-solid-auth https://github.com/pdsinterop/php-solid-auth/issues/25
    • php-solid-crud https://github.com/pdsinterop/php-solid-crud/issues/21
    • flysystem-nextcloud https://github.com/pdsinterop/flysystem-nextcloud/issues/10
    • flysystem-rdf https://github.com/pdsinterop/flysystem-rdf/issues/11
    opened by Potherca 0
  • Workflow to run PHPUnit tests

    Workflow to run PHPUnit tests

    A PHPUnit GitHub Workflow needs to be created.

    As this entails more work than was needed for the individual packages, this ticket was created as a follow-up of #67

    opened by Potherca 0
  • Test with Solid bot example

    Test with Solid bot example

    I'm trying to use https://github.com/michielbdejong/solid-bot-example in combination with https://github.com/pdsinterop/solid-nextcloud/blob/main/setup-test-server.sh and debuggin g the errors I run into.

    opened by michielbdejong 13
Releases(v0.7.1)
  • v0.7.1(Nov 11, 2022)

    Release v0.7.1

    What's Changed

    • Run latest version of solid-crud-tests by @michielbdejong in https://github.com/pdsinterop/solid-nextcloud/pull/103
    • Change the JtiReplayDetector to use a hash rather than a full URL. by @Potherca in https://github.com/pdsinterop/solid-nextcloud/pull/108
    • Change GitHub test suite action (and cleanup Dockerfile and run-solid-test-suite.sh) by @Potherca in https://github.com/pdsinterop/solid-nextcloud/pull/109

    Full Changelog: https://github.com/pdsinterop/solid-nextcloud/compare/v0.7.0...v0.7.1

    Source code(tar.gz)
    Source code(zip)
    solid.tar.gz(3.38 MB)
  • v0.7.0(Sep 30, 2022)

    Experimental features notice

    This release contains a first implementation of webhooks. The specifications for notifications, specifically webhooks, is currently still in development. Expect this functionality to change in the future to keep up with the latest versions of the specifications.

    What's Changed

    • adding /.well-known/solid by @michielbdejong in https://github.com/pdsinterop/solid-nextcloud/pull/96
    • implement notifications by @ylebre in https://github.com/pdsinterop/solid-nextcloud/pull/85
    • Revisit install instructions by @michielbdejong in https://github.com/pdsinterop/solid-nextcloud/pull/94

    Full Changelog: https://github.com/pdsinterop/solid-nextcloud/compare/v0.6.0...v0.7.0

    Source code(tar.gz)
    Source code(zip)
  • v0.6.0(Sep 30, 2022)

    What's Changed

    • Add security check for dependancies by @ylebre in https://github.com/pdsinterop/solid-nextcloud/pull/79
    • Add PHP version sniff by @ylebre in https://github.com/pdsinterop/solid-nextcloud/pull/80
    • Move CORS config from webserver config to middleware by @ylebre in https://github.com/pdsinterop/solid-nextcloud/pull/83
    • Re-enable test suite by @michielbdejong in https://github.com/pdsinterop/solid-nextcloud/pull/88
    • webid-provider-tests v2.1.0 by @michielbdejong in https://github.com/pdsinterop/solid-nextcloud/pull/89
    • Send CORS headers on /.well-known/openid-configuration response by @michielbdejong in https://github.com/pdsinterop/solid-nextcloud/pull/93
    • added oidcIssuer to webid profile by @poef in https://github.com/pdsinterop/solid-nextcloud/pull/97
    • Add support for a JWT "jti" value to prevent replay attacks by @Potherca in https://github.com/pdsinterop/solid-nextcloud/pull/86

    New Contributors

    • @poef made their first contribution in https://github.com/pdsinterop/solid-nextcloud/pull/97

    Full Changelog: https://github.com/pdsinterop/solid-nextcloud/compare/v0.5.0...v0.6.0

    Source code(tar.gz)
    Source code(zip)
    solid.tar.gz(3.38 MB)
  • v0.5.0(Aug 24, 2022)

    What's Changed

    • Add script for setting up a test server by @michielbdejong in https://github.com/pdsinterop/solid-nextcloud/pull/75
    • Feature/nextcloud 24 by @Potherca in https://github.com/pdsinterop/solid-nextcloud/pull/78

    Full Changelog: https://github.com/pdsinterop/solid-nextcloud/compare/v0.4.3...v0.5.0

    Source code(tar.gz)
    Source code(zip)
  • v0.4.3(Jan 12, 2022)

  • v0.4.0(Nov 30, 2021)

Owner
PDS Interop
Interoperability between Personal Data Stores
PDS Interop
The SOLID principles demonstrated in PHP as seen on Elaniin's SOLID Booster Session.

SOLID Principles SOLID is the mnemonic acronym that represents 5 design principles that aim to make software designs more understandable, flexible, an

Vlass Contreras 5 Aug 24, 2022
The fastest way to make a powerful JSON:API compatible Rest API with Laravel.

The first fully customizable Laravel JSON:API builder. "CRUD" and protect your resources with 0 (zero) extra line of code. Installation You can instal

BinarCode 394 Dec 23, 2022
Resources back-end for the Nextcloud CalDAV server

Calendar Resource Management This app enables the ??️ Calendar App to work with resources and rooms Installation Place this app in nextcloud/apps/ You

Nextcloud 35 Nov 8, 2022
🔖 Bookmark app for Nextcloud

Nextcloud Bookmarks Bookmarks app for Nextcloud This app provides you with a web interface for collecting and organizing bookmarks to the places on th

Nextcloud 803 Jan 8, 2023
↪️🔔 Send notification action for Nextcloud Flow

Nextcloud Flow Notifications ?? Notification action for Nextcloud Flow ?? Configure your flow ?? Receive notifications ?? Development setup ☁ Clone th

Nextcloud 13 Dec 2, 2022
Nextcloud app to do preview generation

Preview Generator Nextcloud app that allows admins to pre-generate previews. The app listens to edit events and stores this information. Once a cron j

Nextcloud 343 Dec 29, 2022
📷 Yet another photo management app for Nextcloud

Memories ?? Yet another photo management app for Nextcloud How is this different? ?? Photo and Video Timeline: Sorts photos by date taken, parsed from

Varun Patil 322 Jan 8, 2023
Nextcloud-App to add groups with AppDirect

App Direct Place this app in nextcloud/apps/ Building the app The app can be built by using the provided Makefile by running: make This requires the

Tim Vosskühler 3 Dec 2, 2022
A small, modern, PSR-7 compatible PSR-17 and PSR-18 network library for PHP, inspired by Go's net package.

Net A small, modern, PSR-7 compatible PSR-17 and PSR-18 network library for PHP, inspired by Go's net package. Features: No hard dependencies; Favours

Minibase 16 Jun 7, 2022
A small, modern, PSR-7 compatible PSR-17 and PSR-18 network library for PHP, inspired by Go's net package.

Net A small, modern, PSR-7 compatible PSR-17 and PSR-18 network library for PHP, inspired by Go's net package. Features: No hard dependencies; Favours

Minibase 16 Jun 7, 2022
A simple social groups compatible with ActivityPub.

A simple social groups compatible with ActivityPub.

wxw.moe 23 Dec 2, 2022
Laravel Blog Package. Easiest way to add a blog to your Laravel website. A package which adds wordpress functionality to your website and is compatible with laravel 8.

Laravel Blog Have you worked with Wordpress? Developers call this package wordpress-like laravel blog. Give our package a Star to support us ⭐ ?? Inst

Binshops 279 Dec 28, 2022
Algolia Search integration for Magento 1 - compatible with versions from 1.6.x to 1.9.x

Algolia Search for Magento 1.6+ End of Support ?? The Algolia Magento 1 extension has reached End of Life regarding support and maintenance. We do not

Algolia 163 Dec 20, 2022
[ONLY Magento 2.0.x Compatible] Code samples for Magento developers

Synopsis This project is a collection of samples to demonstrate technologies introduced in Magento 2. You will find the most simple extension along wi

Magento 58 Dec 26, 2022
Algolia Search integration for Magento 2 - compatible with versions from 2.3.x to 2.4.x

Algolia Search for Magento 2 ?? Need help? Check out our Technical Troubleshooting Guide. For feedback, bug reporting, or unresolved issues with the e

Algolia 147 Dec 20, 2022
Faker-driven, configuration-based, platform-agnostic, locale-compatible data faker tool

Masquerade Faker-driven, platform-agnostic, locale-compatible data faker tool Point Masquerade to a database, give it a rule-set defined in YAML and M

elgentos ecommerce solutions 219 Dec 13, 2022
TiDB is an open source distributed HTAP database compatible with the MySQL protocol

What is TiDB? TiDB ("Ti" stands for Titanium) is an open-source NewSQL database that supports Hybrid Transactional and Analytical Processing (HTAP) wo

PingCAP 33.1k Jan 9, 2023
Pika is a nosql compatible with redis, it is developed by Qihoo's DBA and infrastructure team

Introduction中文 Pika is a persistent huge storage service , compatible with the vast majority of redis interfaces (details), including string, hash, li

OpenAtomFoundation 4.9k Jan 6, 2023
Allows installing Drupal extensions event if not compatible with installed drupal/core package

mglaman/composer-drupal-lenient Lenient with it, Drupal 10 with it. Why? The Drupal community introduced a lenient Composer facade that modified the d

Matt Glaman 14 Dec 18, 2022