I’m reviewing the Javascript Client and the prerequisite is to create a Web ID someplace. I have my own Community Solid Server PHP version running locally. I would like to create the Web ID locally, but I can not find any documentation for the JS Client to do that.
Are there examples anywhere of not only the low level registration but also the workflow?
I am not sure which server you are referring to, there is something called Community Solid Server but it isn’t PHP. You need to check the documentation for the sever you are using and either create an account the way the server wants it created or else give permission to a remote WebID account on a public server.
In any case, documentation is sparse, especially when it comes to the WebID. Even this page: https://docs.inrupt.com/ess/2.3/services/service-webid
Only talks about the format of a webID, but never talks about the API to the server on how to create it. It does talk about a profile document once a webID is created. As a developer, I would like to know that API call.
In case you weren’t aware, self hosting is not a requirement to use Solid. You can use an existing deployment such as https://solidcommunity.net and sign up for a Pod there.
If, for instance, you use the Community Solid Server with the default configuration (which is the server I suggest you use if you do want to self host), then you will get a WebId when you create a Pod; and it is just another resource at the path /profile/card#me.
To help identify which approach is best for you, can I ask what are you looking to do with Solid?
Everyone thanks for the hosting info, but unfortunately they all say “developmental” or “prototype” something along those line. Which is why I hoping to eventually host a server when my app is finally read.
BUT I think we got sidetracked.
The original question was about creating a WebID. I see a WebID like a domain name. One or 2 companies (Network solutions, GoDaddy, etc) are the keepers of those names. I see the PODs like web hosts, where the owner of the domain can host their web site.
My users want to create an account and I want them to use PODs because they should own the data. However, the whole idea of a WebID and POD and Solid is going to be “in the weeds”, mind boggling crap for most users. So, I need to be able to add my own UI in front of creating a WebID to help ease the pain of creating an account for my app. But from all the API info, I can not find an API to individually create a WebID without creating a POD by going to a specific provider. Even when trying to host CSS locally, it gives the format of the WebID created, but does not give me an API to actually create it. But then we are back to the hosting issue which I want to avoid at this point.
So a WebID is essentially any unique URI that can be dereferenced to a WebID document. CSS comes built with one, Inrupt has a separate endpoint under the same domain (id.inrupt.com) and I know they use Quarkus but it is proprietary, and PDS Interop uses PHP but I’m unsure of their deployment.
To get a WebID provider up and running easily, you probably want a service capable of performing OIDC, then expose endpoints related to the WebIDs. You can also create a separate service from the OIDC provider which is JUST a webID provider, but would still need to be authorized via Solid-OIDC from the OIDC provider.
However, you are right in pointing out that currently there is no standalone identity provider which is Solid capable. Part of this is due to the fact that the way to register a WebID and a corresponding Pod is very open in the specification. If there was more maturity in how a user can create (or in my mind request) a provisioned Pod on a resource server, then you would see more standalone WebID providers.