-
Notifications
You must be signed in to change notification settings - Fork 17
bud-12: media servers information document. #58
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
base: master
Are you sure you want to change the base?
Conversation
@hzrd149 fyi. 🫡 |
I am resultant to introduce any kind of metadata document for individual servers. I'm sure it will be useful for describing a single server, but having a "information document" or "site map" can introduce an additional step when interacting with servers. and it opens up the possibility for servers to start acting differently (besides rejecting types of uploads) For example if it became standard for servers to have an Again not that big of a deal for a single server, but if the client/user needs to intact with multiple servers it becomes a very complicated process just to upload a blob since it would have to check all requirements for every server For a good example of this look at the |
this standard wouldn't contain |
Most of this can either be expressed in HTTP headers or on the servers homepage for users to read. I want to avoid is clients changing their behavior based on what server they are talking to. If the goal is to inform the user about how the server works ( upload limitations, accepted mime types, .onion urls, etc ) I think it would be a lot better to show that on the servers homepage instead of a json document that would rely on the client to support |
@hzrd149 these are logical reasons as well. @v0l @quentintaranpino @pablof7z what do you guys think? |
I agree with both of the points you made, this can be useful as long as it doesn't change any of the existing buds |
it won't break or change anything. |
should we close this? |
No i dont think so, why would you close it? |
@v0l if it doesn't make sense and won't get implemented so its pointless. |
If you close the issue it certainly will never be implemented :D Try to get other server/client devs to give feedback |
I would like at least |
@v0l makes sense. i've mentioned them before, waiting for them to respond. |
of course, it would be possible. and basically a pubkey with kind-0 published is expected most of the time. it even enables tools like nostr watch to discover blossom servers as well and a lot more. currently they are just black boxes. |
ACK. I would like to have a machine readable file that gives some basic info about the server. For my use case, I'm principally interested in whether the server requires auth for the various standard endpoints. This makes it much easier for my app to allow users to specify what blossom server they want to use and for the app to check that that blossom server conforms to the things we need; in White Noise's case, that the |
For individual actions like a specific upload for downloading a specific blob, the |
Yeah, it's easy enough to check on a case by case basis, if you have a file. But we want to know that group members will be able to download files without auth before we allow a user to set a specific blossom server they want to use. Otherwise it's pointless to allow the user to select it. So in this case (when we don't have a file url) we need to have another way to check, otherwise we'll have to upload trash to the server, then use the HEAD method to check for the presence of auth on the GET endpoint. |
@hzrd149 @erskingardner that's correct. using such a documentt is the most proper way for both users and machines to understand these stuff. basiccly we have a lot of usecases for this and also it won't break/change anything in protocol. |
|
||
This bud defines a new endpoint that helps media servers to provide information about themselves to clients. The clients CAN show it to user or use it to check if the media is suitable for some specific action. | ||
|
||
### GET /information - get media server information document |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't /info be better than /information?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i can change it if everyone agrees with this.
I'm partially in favor of adding this. However, I think we should first reach a broader consensus about exactly what kind of information we want to include here. It might be beneficial to give this proposal a bit more time to mature before finalizing it. |
@quentintaranpino yes, fields can change. i believe cashu paid storage information can be added here. if we get implementations, we can finalize the fields based on people implementations. |
Can we maybe build this externally first, like an extended version of blossomserver.com (https://github.com/hzrd149/blossomservers) --> like caniuse.com? IMHO it would make sense to expore what data is needed, for example I would like to know |
For server discovery ( users choosing a blossom server ) I think it makes more sense to build that externally with nostr or a transitional website. blossom servers having a descriptive home pages can help with this For things like range request support or /mirror support. those can easily be checked with a HEAD request. but there are a few things like "max upload size", "accepted mime types", and "expiration time" that cant easily be exposed using http headers |
this bud is not only for discovery. it has a lot of use cases that different apps and clients need. http headers can't cover all needs. |
This is what I'm worried about in a way. If we describe how blossom servers behave in a machine readable way then clients will start being developed against that and automatically selecting blossom servers without asking the user. I don't think blossom successes if clients automatically select upload servers for the user and "hide" the complexity from the user. However having some information about the servers rules / policies is necessary to allow users to pick servers. but I'm undecided how much of that should be described on the servers homepage (In human readable format) or in a machine readable file P.S. Sorry I've been ignoring this PR and thread for a while, I've been busy and I don't think we should rush something like this |
I'm very sympathetic to this. That said, I think machine readable capabilities gives clients the ability to build some safeguards to help users select blossom servers that do support the features that they need in order to function properly. There's no point in giving a user choice, then allowing them to select a server that isn't going to work. Or, only slightly less bad, giving the user loads of required tech specs and then hoping that they'll work out what blossom server might be compatible. |
as we know currently we have more clients relaying on blobs and users/clients need to interact with blossom servers more. this bud is similar to nip-11 and help users and clients to understand media servers behavior.