PodSpaces upgrade furthers the promise of a Solid ecosystem
At Inrupt we continually strive to deliver the most complete Solid experience through our products and services. Our latest upgrade to PodSpaces, a hosted offering that provides access to Inrupt’s Enterprise Solid Server (ESS) for development and testing, is a significant step towards a more open and flexible ecosystem.
This upgrade will give developers free access to build and test apps against our recently released version 2.0 of ESS, which is designed for robust scaling, availability, and performance. Among the key features of ESS 2.0 is a standalone WebID service, which will bring important changes to the experience of PodSpaces.
Following these changes, described in detail below, users’ WebIDs and Pod Storage will operate independently, giving each user significantly greater flexibility to obtain their WebID or Pod Storage from alternative providers. This flexibility has been at the heart of the Solid protocol since its inception and is an essential element to enable a rich, open, and flexible ecosystem to form.
What’s actually changing?
In order to deliver on the promise of flexibility, we have decoupled WebIDs and Pod Storage, so that they are two independent services. As part of this change, the domain component of all existing WebIDs created on Inrupt’s PodSpaces will change as follows:
- Before the change, WebIDs had the form: https://pod.inrupt.com/<user>/profile/card#me (We refer to this as the “old form” of WebID below)
- After the change, WebIDs will be updated to: https://id.inrupt.com/<user>(We refer to this as the “new form” of WebID below)
Newly created WebIDs on PodSpaces, following the upgrade to the new service, will take the new form using the id.inrupt.com domain.
In addition, Pod Storage will also be moved to a new service, changing the domain component as follows:
- Before the change, Pod data was stored in: https://pod.inrupt.com/<...>
- After the change, Pod data will be stored in: https://storage.inrupt.com/<...>
To minimize the impact of the storage change, we will operate a service to redirect storage requests to the new domain. Any application requesting a resource from pod.inrupt.com will automatically be redirected to storage.inrupt.com. See below for more details.
When will this change happen?
Updates to the PodSpaces service will begin on Tuesday 19 July 2022, 10:00 UTC and conclude on Friday 22 July 2022, 10:00 UTC. During this period individual Pods will be upgraded in batches and the necessary changes will be applied. The changes will be automated, so there will not be an option to choose when the upgrade of an individual Pod will happen.
During this change window individual Pods will be temporarily unreachable for a short time. Full details of the impact to the service are described below.
When the change has been completed and all Pods have been upgraded to the new service, we will update the banner on the page at pod.inrupt.com to indicate the upgrade has concluded.
What impact will this upgrade have?
The following list describes the impact of this upgrade and any actions required following the migration:
- Solid applications and Pod users might experience a temporary outage of a Pod
- During the upgrade process an individual Pod will be unreachable for a short period of time. This period is required for us to move the Pod data to the new service. No action is required during this period.
- Access control data within a Pod will be automatically updated
- During a Pod upgrade the access control data for all resources within the Pod will be updated.
Any access control data that includes an old form of WebID will be automatically updated to additionally include the new form of WebID.
- Applications with cached or statically defined WebIDs will need to be updated
- Any application that has a cached or statically defined WebID using the old form will need to be updated to use the new form once the upgrade has been completed. The old form of WebID will no longer work after the upgrade.
If the application accesses data from multiple Pods it is possible that each Pod will be upgraded at a different time. Do not assume that because one Pod has been upgraded that all Pods have been upgraded.
- Applications with cached or statically defined resource URIs will need to be updated
- Data stored in Pods will be moved to a new storage service that will use the domain storage.inrupt.com. Any cached or statically defined references to resources using the pod.inrupt.com domain will continue to work for 3 months following the upgrade.
Inrupt will operate a service to redirect storage requests made against pod.inrupt.com to the new storage.inrupt.com domain. This will minimize the impact to applications during the upgrade process. This service provides a grace period to ensure applications remain functional and to provide time for updates to be tested and made available.
- Independently hosted Pods that have granted permission to the old form of WebID will need updating
- Any Pods that are not hosted within PodSpaces that have granted access to the old form of WebID will need to be updated. For example, this includes any self-hosted Community Solid Server instances where a resource includes permission for an old form of WebID.
- Applications cannot infer the location of a Pod Storage from the WebID URI
- Prior to the upgrade it was possible to calculate the location of a Pod Storage from the WebID URI because the WebID profile was a Solid resource stored in a Pod. For example if the WebID URI was http://pod.inrupt.com/alice/profile/card#me then the Pod Storage location would be http://pod.inrupt.com/alice/.
Decoupling the WebID from the Pod puts the WebID profile somewhere other than the Pod. For example the Pod Storage location would still be http://storage.inrupt.com/alice/, but the WebID URI would now be http://id.inrupt.com/alice, so it is no longer possible to ascertain one from the other.
To mitigate this change the new WebID profile document will include a pim:storage statement that will point to the new location for Pod storage.