Open michielbdejong opened 1 month ago
The current resourceTypes
object is weird because it seems to be used both to advertise what types of resources a server can receive, and to advertise details about how this server acts as a resource server.
Concerning apiVersion, IMHO its useful for humans, as the branding, and should NOT be relied upon to decide on caps. Yet it is used for that by Nextcloud.
Capabilities should be about being able to process something you receive. Being able to send something or not is not so interesting to discover.
@michielbdejong can you please rebase this on top of develop
, as opposed to caps-disco-base
?
Rebased on develop.
I think we want to start off our capabilities list with all functionalities that we introduces since 1.0-proposal1 and for which one server needs to know whether the other one supports it. I can think of the following list:
Functionalities which I think don't make sense to announce (these functionalities can just be present unannounced):
so caps to add:
webapp URI should probably also somehow be bound to the server domain name from discovery
Let's not forget:
As very first capability (in the form of endpoint)!
In my presentation about OCM at CS3 2023 in Barcelona I had this slide about CAPabilitieS DISCOvery ;)
Now I'm thinking if we put good capability discovery into the
/.well-known/ocm
//ocm-provider
document, then discovery doesn't even have to rely on theapiVersion
field we have there. Older implementations will just have less entries in the capabilities object, or the object will be missing from the document altogether.