Open pwalski opened 1 year ago
So how should it be decided which URLs contain a supported protocol and which does not?
Because yagna will process protocol://example.com:80
as a valid protocol that means tcp://example.com:80
.
let protocol = match url.scheme() {
"udp" => Protocol::Udp,
_ => Protocol::Tcp,
};
Yes filtering could be added, it could guide the user more. But if there is a node-descriptor, manifest or certificate that contains urls which refers to protocols that are not on the curated list, copying that into the editor will fail and the user would need to figure out what is wrong, why the editor does not allow to do things that are working fine in the system.
You could say that lets automatically convert to tcp:// but then it would need to figure out that yagna actually processes 5 protocols later (http, https, ws, wss, ftp) and would need to add the default port number if it is missing. So we would end up with reproducing the same logic from yagna in the certificate manager, which (the certificate manager) can be used without ever using yagna. So I do not see why would need to connect yagna implementation to the certificate manager.
What: Add additional validation of fields to not let in fields containing only a whitespace and URLs like "protocol://". Do not change how verification of existing certificate works (so it obeys schema and nothing more).
Why: It is an issue with schema in GAP-25 but as a result helper allows to create certificate with fields containing only whitespace, url like
protocol://
(which is validated as an URI) and expired validity period valid for 0 seconds.Originally posted by @pwalski in https://github.com/golemfactory/yagna/issues/2542#issuecomment-1591899854