solid / solidcommunity.net

Operational issue tracking for solidcommunity.net
https://solidcommunity.net
MIT License
21 stars 3 forks source link

auth-upgrade migration #59

Open bourgeoa opened 3 years ago

bourgeoa commented 3 years ago

There are different ways to solve this problem :

  1. do nothing : users will have an old login/logout button that send to pages with the new new login/logout
  2. modify the lold login/logout function to return an alert explaining that this function is discarded and has no effect
  3. Not to lose any specific pod data the podRoot/index.html shall be renamed to podRoot/index_1.html with a simple script.
bourgeoa commented 3 years ago

Detail of a simple script to execute point 3 A simulation on the backup at /mnt/volume_lon1_03/solidcommunity.net/data took 1h 20

*********
* check that the destination filename do not exist
*  index1.html exists in 2 pods
*  index_1.html do not exist
*********
root@solidcommunity:~# find /mnt/volume_lon1_01/solid.community -maxdepth 2 -name index1.html
/mnt/volume_lon1_01/solid.community/sebbon.solidcommunity.net/index1.html
/mnt/volume_lon1_01/solid.community/bourgeoa.solidcommunity.net/index1.html
root@solidcommunity:~# find /mnt/volume_lon1_01/solid.community -maxdepth 2 -name index_1.html
root@solidcommunity:~#

*********
* pod count
**********
root@solidcommunity:~# find /mnt/volume_lon1_01/solid.community -maxdepth 1 -type d | wc -l
57954
*********
* podRoot/index.html count
*********
root@solidcommunity:~# find /mnt/volume_lon1_01/solid.community -maxdepth 2 -mindepth 2 -name index.html | wc -l
50006
*********
* rename filename index.html to index_1.html
*********
root@solidcommunity:~# find /mnt/volume_lon1_01/solid.community -maxdepth 2 -mindepth 2 -name index.html -exec rename -n -d 's/.html/_1.html/' '{}' \;

-n, --nono No action: print names of files to be renamed, but don't rename -d, --filename, --nopath, --nofullpath Do not rename directory: only rename filename component of path.

jeff-zucker commented 3 years ago

57,954 pods? Wow!

Script looks fine to me.

mikeadams1 commented 3 years ago

I have 10% of those pods

mikeadams1 commented 3 years ago

@bourgeoa do you want the username for all of those? lol just joking but, i do have that many at least

jeff-zucker commented 3 years ago

Here's a first pass at a public announcement. Edit at will!

After months of work, a new SolidOS Databrowser - the frontend for solidcommunity.net - is about to be released. SolidOS, the Solid operating system built into the Databrowser, provides

The new changes bring solidcommunity.net, the Databrowser, and the SolidOS software stack into line with the latest Solid OIDC specifications, making them more secure, interoperable, and forward-looking.

From a user's perspective : most will not experience any changes from the switch-over. The one exception is people who have an index.html located in the root of their pod e.g. https://you.solidcommunity.net/index.html. Previously those files were provisioned with a login button which will no longer work. So we will be running a script to change all existing index.html files in the root of pods changed to the name index_1.html. If you wish to get your index.html back, you can remove any login code and buttons from the document and then rename it back to index.html. Unfortunately, there is currently no easy way to provide a login button on a pod root index page.

From a developer's perspective : you should no longer use solid-auth-client as your authentication library. Instead use Inrupt's solid-client-authn-browser.

The changes in SolidOS and solidcommunity.net are the work of an active open source team working with an independent contractor hired by Inrupt specifically for this upgrade. The open source team actively welcomes collaborators. Please visit our team homepage at [link to SolidOS]. Please also let us know about any issues or suggestions [link to issue].

jeff-zucker commented 3 years ago

After months of work, a new SolidOS Databrowser - the frontend for solidcommunity.net - is about to be released. SolidOS, the Solid operating system built into the Databrowser, provides

The new changes bring solidcommunity.net, the Databrowser, and the SolidOS software stack into line with the latest Solid OIDC specifications, making them more secure, interoperable, and forward-looking.

From a user's perspective : most will not experience any changes from the switch-over. The one exception is people who have an index.html located in the root of their pod e.g. https://you.solidcommunity.net/index.html. Previously those files were provisioned with a login button which will no longer work. So we will be running a script to change all existing index.html files in the root of pods changed to the name index_1.html. If you wish to get your index.html back, you can remove any login code and buttons from the document and then rename it back to index.html. Unfortunately, there is currently no easy way to provide a login button on a pod root index page.

From a developer's perspective : you should no longer use solid-auth-client as your authentication library. Instead use Inrupt's solid-client-authn-browser. The entire SolidOS software stack now works with the Inrupt library.

The changes in SolidOS and solidcommunity.net are the work of an active open source team working with an independent contractor hired by Inrupt specifically for this upgrade. The open source team actively welcomes collaborators. Please visit our team homepage at [link to SolidOS]. Please also let us know about any issues or suggestions [link to issue].

P.S. For those of you with pods on other pod-providers, you can use the SolidOS Databrowser as a stand-alone web app [link to browse.html] or a local desktop app [link to Data Kitchen].

timea-solid commented 3 years ago

Thank you Jeff for starting this off. As follows my suggestion on the release note. Feel free to edit it further.

SolidOS version x release on dateX

After months of work, a new SolidOS version is about to be released. SolidOS comes in two flavours:

This release is focused on security and it makes the code stack Solid-OIDC specification compliant.

  1. The solid-auth-client library was replaced by the inrupt/solid-client-authn-js
    • All SolidOS dependencies (mashlib, solid-panes, solid-ui, solid-logic...) were updated to use the new authentication library. The exact work can be followed on this git issue.
  2. Some new features
    • 'Add me to your friends' button on your profile git issue
    • Include link to user guide git issue
  3. Some bugfixes
    • JSON-LD files are now readable git issue
    • Deleting a resource triggers a UI refresh now git issue

Impact:

The changes in SolidOS and solidcommunity.net are the work of an active open source team. The open source team actively welcomes collaborators. Please visit our project GitHub [link to SolidOS readme] for more information. For any concerns, issues or suggestions chat with the SolidOS team over at gitter or create a [git issue](maybe https://github.com/solid/solidos/issues).

bourgeoa commented 3 years ago

I have a few comments :

SolidOS [v1.7.7]() an NSS (node-solid-server) [v5.6.12]()

After months of work, a new SolidOS databrowser - the frontend for solidcommunity.net - is about to be released. SolidOS, the Solid operating system, provides

The change bring NSS, the SolidOS and dependencies into line with the latest Solid-OIDC specification, making them more secure, interoperable, and forward-looking.

SolidOS comes in 3 flavours :

This release is focused on security and it makes the code stack Solid-OIDC specification compliant.

The changes in SolidOS and solidcommunity.net are the work of an active open source team. The open source team actively welcomes collaborators. Please visit our project GitHub [link to SolidOS readme] for more information. For any concerns, issues or suggestions chat with the SolidOS team over at gitter or create a [git issue](maybe https://github.com/solid/solidos/issues).

bourgeoa commented 3 years ago

reopened. it was a mistake sorry

timea-solid commented 3 years ago

Great improvements so far, I think we are close to a final version.

  1. It is confusing to me what the naming convention is: SolidOS, SolidOS Data Browser, SolidOS Databrowser ... I do not mind which it is, as long as we are consistent in all our documentation about it. Example: "Databrowser, and the SolidOS software stack" -> what does this mean?
  2. The intention of this release seems to be:
    • inform the reader what SolidOS is (but not NSS)
    • that there is a release both on SolidOS and NSS
    • what they need to do about it Isn't this a bit too much?
  3. In the vision we talk about what SolidOS is: https://solidos.solidcommunity.net/Team/docs/SolidOSNorthStar.html My suggestion is to be consistent with the message - either change this message or change the vision document.
  4. SolidOS can be a frontend for ANY Solid server not just for NSS and CSS.

P.s. I like the title. Thanks for the versions. Also I did not know about the 3rd flavour. #neverStopLearningSolid ☺️

bourgeoa commented 3 years ago

point 1 : agreed "Databrowser, and the SolidOS software stack" either replaced with "SolidOS and dependencies" or simply `SolidOS' point 2 : a bit too much. It's a fact. We can make more messages to detail things if there are questions point 3 : can you make a proposal for discrepencies point 4 : yes and no. Actually yes integration for NSS and CSS. For other solid servers : Yes for the solidOS webapp, integration must be provided. That's why webapp is important.

(changes directly edited in the above text)

timea-solid commented 3 years ago

Thanks @bourgeoa . Trying to combine everything in one here. The description of SolidOS is copy paste from the vision (https://solidos.solidcommunity.net/Team/docs/SolidOSNorthStar.html). Here is the proposed up to date version:

SolidOS v1.7.7 an NSS (node-solid-server) v5.6.12 release

After months of work, a new SolidOS and NSS version is about to be released.

------ version with what SolidOS is --------- SolidOS, the Solid operating system, is showcasing the possibility of Solid for the future, and we mean:

SolidOS comes in 3 flavours :

This release is focused on security and it makes the code stack Solid-OIDC specification (https://github.com/solid/solid-oidc) compliant.

The changes in SolidOS and solidcommunity.net are the work of an active open source team. The open source team actively welcomes collaborators. Please visit our project on GitHub at https://github.com/solid/solidos/blob/main/README.md for more information. For any concerns, issues or suggestions chat with the SolidOS team over at gitter (https://gitter.im/solid/solidos) or create a [git issue](maybe https://github.com/solid/solidos/issues).

bourgeoa commented 3 years ago

@theRealImy I much prefer @jeff-zucker version. Yours is technical and not so much user oriented you also lost some links If you want we can add a link to NorthStar, but not sure it is relevant

jeff-zucker commented 3 years ago
  1. It is confusing to me what the naming convention is: SolidOS, SolidOS Data Browser, SolidOS Databrowser ... I do not mind which it is, as long as we are consistent in all our documentation about it.

This is how I see it :

Since rdflib is the dependency of 693 other libraries/apps, amd solid-ui of 50, this usage of the software stack is in the wild and is an important role of the software. I use "the Databrowser" or "the SolidOS Databrowser" when I am talking about the app and "SolidOS" or "the SolidOS software stack" when I am talking about the software libraries used to build the app.

bourgeoa commented 3 years ago

@jeff-zucker @theRealImy Could you agree to this as reference release text. https://github.com/solid/solidcommunity.net/issues/59#issuecomment-947505139 From your last comment @jeff-zucker shall we leave "SolidOS and dependencies" or do you prefer "SolidOS databrowser"

jeff-zucker commented 3 years ago

My thoughts on https://github.com/solid/solidcommunity.net/issues/59#issuecomment-947505139 :

Data ownership, avoiding vendor lock-in, and data reuse are the goals of the entire Solid Project. Every software in the Solid ecosystem should be striving for those. Most people in the forum understand that these are the goals of Solid. Listing these goals will not be new information for most people. Many people in the forum however do not understand what role SolidOS and the databrowser play in that ecosystem. Many think of the databrowser as a simple file explorer and are unaware of its semantic navigation and app creation features.

So this is my current draft.

Major updates to SolidOS, NSS, and solidcommunity.net

Please note : If you have a pod on solidcommunity.net, be sure to read the impact on users section below.

After months of work, a new SolidOS is about to be released. SolidOS, the Solid operating system, comes in four flavors :

SolidOS, in all of its flavors, provides pod navigation and management tools; semantic views of all data; productivity apps like notepads, and task-mangers; and collaboration apps like chat apps and meeting schedulers. All features have the aim of supporting the core Solid vision - user control, freedom from vendor lock-in, and re-usability of data.

This release is focused on security and it makes the code stack Solid-OIDC specification compliant. All code using solid-auth-client was replaced by code using @inrupt/solid-client-authn. The release also includes improvements to handling of Javascript, JSON-LD, and a variety of bug-fixes and UI improvements. See this list of upgrade issues for details. For reference : the releases are SolidOS v1.7.7 and NSS (Node solid-server) v5.6.12.

The release impacts users of solidcommunity.net, developers using the SolidOS software stack, and pod providers who use NSS.

Impact on users

Owners of Pods on solidcommunity.net with an index.html file located in the root of their Pod (ex: https://user.solidcommunity.net/index.html) : your first page on the Pod will change. Previously the index.html file was provisioned with a login button which will no longer work due to the authentication library upgrade. Upon release, we will be running a server script to rename all existing index.html files in the root of Pods to index_1.html. If you wish to get your index.html back, you can remove any login code and buttons from the document and then rename it back to index.html. Unfortunately, there is currently no easy way to provide a login button on a pod root index page.

Impact on developers

Developers who use the SolidOS stack (mashlib, solid-panes, solid-ui, solid-logic, rdflib) should be aware that these libraries have all switched to using Inrupt's solid-client-authn instead of solid-auth-client.

Impact on Pod providers

As mentioned above under impacts on users, index.html pages with login buttons will no longer work. You should contact us to get a script to rename these files and warn your users before installing the new NSS.

Join our team!

The changes in SolidOS, NSS, and solidcommunity.net are the work of an active open source team led by Sir Tim Berners-Lee. The open source team actively welcomes collaborators. Please visit our project pod or our GitHub repo for more information. For any concerns, issues or suggestions chat with the SolidOS team in the gitter chatroom or create a git issue.

bourgeoa commented 2 years ago

-status

examples of existing ACL for the https://trainwreck.solidcommunity.net pod

  root@solidcommunity:/mnt/volume_lon1_03/solidcommunity.net/data/trainwreck.solidcommunity.net# cat .acl
  # Root ACL resource for the user account
  @prefix acl: <http://www.w3.org/ns/auth/acl#>.

  <#owner>
    a acl:Authorization;

    acl:agent <https://trainwreck.solidcommunity.net/profile/card#me> ;

    # Optional owner email, to be used for account recovery:
    acl:agent <mailto:prisco1123@yahoo.com>;

    # Set the access to the root storage folder itself
    acl:accessTo </>;

    # All resources will inherit this authorization, by default
    acl:defaultForNew </>;

    # The owner has all of the access modes allowed
    acl:mode
        acl:Read, acl:Write, acl:Control.

  # Data is private by default; no other agents get access unless specifically
  # authorized in other .acls
  root@solidcommunity:/mnt/volume_lon1_03/solidcommunity.net/data/trainwreck.solidcommunity.net# ^C
  root@solidcommunity:/mnt/volume_lon1_03/solidcommunity.net/data/trainwreck.solidcommunity.net# cat index.html.acl
  @prefix acl: <http://www.w3.org/ns/auth/acl#>.
  @prefix foaf: <http://xmlns.com/foaf/0.1/>.

  <#owner>
    a acl:Authorization;

    acl:agent
        <https://trainwreck.solidcommunity.net/profile/card#me>;

    acl:accessTo </index.html>;

    acl:mode
        acl:Read, acl:Write, acl:Control.

  <#public>
    a acl:Authorization;

    acl:agentClass foaf:Agent;  # everyone

    acl:accessTo <./index.html>;

    acl:mode acl:Read.
  root@solidcommunity:/mnt/volume_lon1_03/solidcommunity.net/data/trainwreck.solidcommunity.net#

{} is the receptacle of the find : here : index_1.html sed uses + (cannot use / here) or can be nearly any 1 bit character even space (not some confusing | or \ for example) is the last + correct or \; (escaped;) : verified, yes they are I still need to make a test somewhere (on my own pod or on my server)

*** stats results on solidcommunity.net server*** 
 root@solidcommunity:/mnt/volume_lon1_01/solid.community# find /mnt/volume_lon1_01/solid.community -maxdepth 2 -mindepth 2 -name index_1.html.acl | wc -l
0
root@solidcommunity:/mnt/volume_lon1_01/solid.community# find /mnt/volume_lon1_01/solid.community -maxdepth 2 -mindepth 2 -name index_1.html | wc -l
49989
root@solidcommunity:/mnt/volume_lon1_01/solid.community# find /mnt/volume_lon1_01/solid.community -maxdepth 2 -mindepth 2 -name index.html.acl | wc -l
49446
root@solidcommunity:/mnt/volume_lon1_01/solid.community#
bourgeoa commented 2 years ago

Timea @theRealImy Feb 02 15:23 aclCopy.sh this is my script, not sure it works cleanly on linux