Description
Via #239:
As we add sources and signals, our naming sometimes needs to evolve to remain clear and accurate. Right now we are stuck indefinitely with naming decisions we made long ago. We need a more flexible way to evolve while remaining backward compatible. We need to have a process for gradually deprecating old names.
This work would likely involve:
- a name-mapping table
- an additional step in assembling query parameters to map from the user-provided name to the appropriate signal key id
If there are sneaky design decisions in the details, we may want to put together a PRD for this to explore them -- the immediate questions that occur to me are:
-
how is the name-mapping table updated? who is allowed to update it? how risky are updates to this table?
-
New layer in API to support signal preprocessing and renaming #239 mentions adding deprecation notices for some renames:
Enable naming evolution by using this layer to support backward compatibility, with some feedback about deprecation. So, the current API calls would still work, but would be translated into the new calls, and old signal names will be mapped into new signal names, for as long as we want, after which they will return a "please switch to the new name" error message.
how should these be encoded? if a deprecation notice collides with another status message, how should we combine messages?
-
does this need to be incorporated into pre-pandemic endpoints, or just those that use the v4 data model?