-
Notifications
You must be signed in to change notification settings - Fork 80
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
Metadata key registry #228
Comments
Looks good, I'd use |
At the time it was written, the |
An updated preliminary list, dropping top-level namespaces for now, but we can discuss again whether they're even needed. Their previous definitions are included below.
Historical namespace definitions:
|
So are we going to extend Metadata to have explicitly server-defined keys? We can simply emit |
In terms of clients knowing about keys, is it enough to just define that behaviour in the registry? |
If we have proper server-only namespaces and such, I think it should also be defined in the spec. It needs to be explicitly stated for servers that This would probably require an explicit new cap or using a character not defined in the metadata-3.2 as the namespace separator, so clients can confirm the server behaves and treats these keys that way. |
One idea is we could steal from c2c tags and require a +prefix on user settable keys. |
What about keys that need to persist vs. ones that need to not. |
What's an example of a key that shouldn't persist? Or do you mean keys that services might persist for e.g. a NickServ account? Persistence in services should be managed by services. By default keys should probably only persist for as long as a client is connected. |
In re non-persistent keys: if namespaces are reintroduced, a 'transient' namespace would basically be for keys whose state shouldn't be stored.
👎 |
@jwheare and what about persistence in a serviceless-network like mammon? |
An example of a key that shouldn't persist would be |
Clients can manage transience by simply unsetting their keys. This can be suggested on a per-key basis in a registry. I don't think there should be any concept of timeouts in the spec. |
@Aerdan I think that namespaces for keys overcomplicate the spec, I certainly have no plans of implementing any support for namespaces. |
👎 This requires an extra roundtrip and notification. |
I think the IRCd or services should have the right to garbage collect keys that are not relevant anymore when a client exits. How can a client signal which keys are relevant? |
I was interpreting 'transient' to mean "relevant only enough to pass through a notification, but not enough to keep around", but deleting keys when no longer relevant is fine for longer-term transience. |
I'll write up a persistence draft. I think it could be useful to keep specific keys around. In terms of differentiating user-settable keys vs keys that are always server-set (ie, special server-set keys where clients may come to rely on the values as being server-set, things like This is something along the lines of what I was thinking for the server-set prefixes stuff, but if there are other ideas on how to handle these sort of keys so clients can be assured they're treated specially then that'd be good. |
Originally I brought this up on IRC, but I think I should mention it here.
As the metadata key names have not yet been defined, I see an opportunity to address this in the form of standardizing the numbering convention. I.e. if the following fields (tel1, email2, url3, etc.) are utilized, servers and clients MUST start from 1, without leading zeros. This has the advantage of being compatible with the metadata spec as it exists today, in particular the Ben |
Closing this in favor of documenting what's starting to be used in the wild #336 If any keys need to be transferred they should be added over there. |
We need a registry for metadata keys, otherwise metadata usage is problematic in a heterogenous environment.
Some ideas, imported from the metadata draft from 2012:
@jwheare has indicated that he wants to work on this (eventually).
The text was updated successfully, but these errors were encountered: