Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

migration to CSS #62

Open
bourgeoa opened this issue Mar 5, 2022 · 7 comments
Open

migration to CSS #62

bourgeoa opened this issue Mar 5, 2022 · 7 comments

Comments

@bourgeoa
Copy link
Member

bourgeoa commented Mar 5, 2022

CSS has a file-system mode that could allow migration/mapping at the filesystem level.

This is a work in progress, to summarize some of the questions raised by solidcommunity.net migration/mapping from NSS to CSS

file system mapping

  • resource mapping is using the same mapping convention : resource + contentType is mapped
    • to file if file mimeType = contentType
    • else to file$.ext with mimeType of ext = contentType
    • profile is stored in card$.ttl
    • .meta and .acl are turtle resources stored as files at the same relative location.
  • pod mapping
    • CSS a pod is allways stored in a folder named user
    • while NSS pod data is stored in a folder named subdomain

IdP

  • authentication have different entry points (login) :
    • CSS is using email as entryPoint versus WebId for NSS
    • NSS may have multiple pod's with the same email, not CSS
      solidcommunity.net on 20220603 has 59030 accounts but only 48445 emails
  • idp migration

WebId structure

WebId profile

CSS functionalities

  • CSS container as turtle do not display contentType by default
    • v4 has it by default
  • app authorisation
    • CSS do not use the trustedApp mechanism.
      • Note that this goes beyond the v0.9 spec; the mechanism is not secure and will not be supported in the default CSS configuration. However, no breakage occurs; the statements are simply ignored.
    • NSS uses trustedApp at the pod or ACL document level
  • notifications ?
    • CSS supports the unsecure Solid WebSockets API 0.1 in all versions up to and including v4.0.0, but the mechanism is scheduled to be removed from the default configuration in v5.0.0. (Note that this does conform to 0.9 since support is indicated as SHOULD, not MUST.) However, it will still be available as a custom module that can be plugged in, so keeping that functionality will not be an issue.
  • owner implementation ? to allow unlock ACL Control : yes it does

mashlib issues

  • mashlib can be linked to CSS has an external webApp
    and CSS v3.0.0 has a recipe using mashlib by default
  • extended profile is not available in CSS missing properties are :
    • space:storage
    • solid:account
    • preference files
  • CSS domain is allways seen as a podStorage : pim:Storage is available on container representation even with no profile
@elpoelma
Copy link

On the issues with mashlib

  • You can easily configure mashlib in order to generate new files for a pod on pod creation using handlebars templates. I have added handlebars files to my configuration: https://github.com/redpencilio/app-solid which are responsible for generating preference files. These are located in templates/pod. In order to use these templates, you can configure a TemplatedResourcesGenerator in the components.js config file to use the correct pod-templates folder.

@bourgeoa
Copy link
Member Author

Top post edited with @RubenVerborgh responses

One new question : does CSS implement : "owner implementation ? to allow unlock ACL Control"

@bourgeoa
Copy link
Member Author

Thanks

@bourgeoa
Copy link
Member Author

bourgeoa commented Jun 4, 2022

as of 20220603 there are 59030 accounts but only 48445 emails

This covers 2 different situations : no email, or same email on multiple pods

# find /mnt/v*/solid.community -maxdepth 1 -type d | wc -l
# find /mnt/v*/.db/oidc/users/users-by-email | wc -l

@timea-solid
Copy link
Member

timea-solid commented Jun 27, 2022

The plan I was tracking on this topic is:

  • First experiments with mashlib on CSS (reporting bugs)

  • Prioritize and fix high prio problems of SolidOS(mashlib) to be able to move to CSS

  • SolidOS team concerns about CSS

    • Tim migrated and switched timbl.com to CSS
    • all SolidOS team has local CSS installations - gather valuable learning experience
    • collecting issues on multi-user setup
    • fix any big multi-user setup problems
    • git solidOS clone needs to automatically setup CSS instead of NSS for local dev
    • solidcommunity.net test environment setup for CSS
  • Working on checking/documenting Solid Apps working with CSS

    • Working with the latest DPoP
  • Migrate Pods

    • Existing Pods Data
      • added solid:oidcIssuer missing tripple to solidcommunnity.net and inrupt.net
      • collect info on pod users
      • collect potential issues
      • find solutions to issues
      • develope a migration script for data (with testing)
    • Existing Pods username/password
      • collect concerns about migration of login experience
      • solve/reconcile any login to CSS issues
    • migration plan approved by SolidOS team & Solid Team
      • prepare communication to community

Ongoing:

Done:

All tickets are monitored here: https://github.com/orgs/SolidOS/projects/1/views/9

@timbl @justinwb @RubenVerborgh @bourgeoa @oolivo let's keep ourselves up to date with this ticket/comment. I will make sure to propagate this in SolidOS and Solid Team meetings to keep everyone (us and everyone else) informed.

@bourgeoa
Copy link
Member Author

bourgeoa commented Oct 11, 2022 via email

@timbl
Copy link
Contributor

timbl commented Nov 3, 2023

Now we have https://github.com/RubenVerborgh/NSS2CSS -- thanks to @RubenVerborgh -- I have checked off the box above "develop a migration script for data". I had understood originally that CSS and NSS used different password hash algorithms, and so a conversion from one to the other was impossible. But now it seems that was not in fact the case, and the conversion script is possible. That is a major step

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants