-
-
Notifications
You must be signed in to change notification settings - Fork 218
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
Remove support for running validations during the client-side muting transition #9652
Comments
two questions:
|
Strictly speaking, this is definitely a breaking change in that it is removing functionality that previously existed. Pragmatically speaking, though, the question is if we really need to wait for a major release to remove functionality that is half-broken and probably unused. Admittedly "probably unused" in that statement is doing a lot of heavy lifting. We don't have any telemetry in webapp around this functionality so we have no actual usage data. However, it should be possible to spot-check any configs we have access to and look at the
If we find any cases where we have
AFICT this will be difficult to quantify with any super reliable precision since IndexedDB seems to like to do its own thing when it comes to garbage collection. However, I did a rough test with my user that has |
Thanks Josh! I don't think this meaningfully changes anything, but great to have the full info during the discussion |
I believe this to be a breaking change, no matter how we hard we try to squint.
Given that we are branching out of medic-owned configurations and strongly encouraging partners and users to do their own thing, without any obligation to report back to us, we will have increasingly LESS visibility into what people are doing. So "perceptions" will not be enough to cut out features without qualifying them as breaking changes. We should assume that features are being used. With that, I think validations for muting forms are nice, both server and client side. It sucks how we have sync and async validations that depend on data and we're forced to have them all together. I think saving 43MB is not super significant for the client. It's the equivalent of ~30 seconds of video capture or one Android app. |
Fair. This is the kind of push-back I was expecting here. I do think it is valuable to have had the discussion, but ultimately, I 100% agree with your assessment of the situation. (Had to at least give the squinting a red-hot go before moving on!)
I still don't think I fully appreciate the value you see in client-side validations for the muting transition (at least not at the data cost we are paying for it...). That being said, the
My gut reaction as an engineer is to favor the Ultimately, the client bottleneck is in the syncing speeds (and not device storage). By the time the doc count starts to really affect the index sizes or storage space, we probably have long-since passed the amount of docs that we recommend syncing to an offline user. Because of all this, I am going to go ahead and just close this issue. We do not want to make this change now and it is unclear if we would ever actually want to do this in the future. |
What feature do you want to improve?
Spinning this out of #9544 to give it proper attention and consideration (and particularly to get @dianabarsan's thoughts). Also, this is a per-requisite for #9544 and can be shipped ahead of that issue.
TLDR, as a part of #9544 we want to remove the
key:value
entries from the freetext search indexes to dramatically reduce the storage space used by these indexes on device. The goal of this issue is to removevalidations
support from webapp because theexists
validation function relies on thesekey:value
entries.When the
muting
transition executes on Sentinel, it can run a set of configured validations on the muting/un-muting report before actually executing the action. The primary purpose here is to support muting via sms workflows (where you cannot really pre-validate the form data like you can when filling out an Enekto form in webapp).Describe the improvement you'd like
When client-side muting was introduced into webapp, support was also included to continue running these validations when muting a client-side contact. The arguments for removing this functionality now are:
validations
logic should instead be included in the Enekto form to prevent the user from ever submitting an invalid muting/un-muting report.validations
logic that are most difficult to re-create in an Enekto form (e.g.exists
) are limited in scope when running offline (since they only have access to the data on the device) and so could produce different results than if the validation was run on the server. (e.g. theexists
function does not find anything when running on the device, but could find something when running in Sentinel).Because of this, and the perceived strong likelihood that no one is relying on validations for their webapp-based muting workflows the benefits of reducing disk usage on the device seem to outweigh the possible downsides of losing validations on client-side muting transitions.
Describe alternatives you've considered
Perhaps it would be possible to trigger the validations to run in Sentinel _for client-side muting/unmuting operations, once the muting reports are replicated to the server. Then maybe the server could roll-back the operation if the report fails the validations.
The text was updated successfully, but these errors were encountered: