Creating WebID for new user

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.

On this page: Getting Started · Solid
it references the PHP version of the CSS produced by PDS Interop(Standalone PHP Solid Server | Standalone Solid Server written in PHP by PDS Interop) I did not want to use the CSS because my web hosting service wants to charge an extra $45/month to run the Node.js CSS, but I may have to rethink that if the PHP version is not up to date.

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.

The PHP server may be a fine option for self-hosting, I am not familiar with it enough to say. Perhaps try contacting the development team on Github. PDS Interop has a fairly extensive set of tests, so maybe you can figure something out from their WebID-provider test suite at GitHub - solid-contrib/webid-provider-tests: A test suite with some basic happy-path checks against a DPop-based WebID-OIDC provider .

Hi @TimG

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.

You can find a range of existing hosted options at https://solid-catalog.jeswr.org (generated using data from @jeffz s catalog/catalog-data.ttl at main · solid-contrib/catalog · GitHub)

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.

Hey Tim.

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.