I'd like to keep the '.zip' in if possible. In jsoneditor it acts as a redundancy check on the URL - which is an easy field to get wrong. If you think it's important, then I suppose the GUI could insist on the .zip but only store the name part in the json, but this would make it inconsistent for manual editing.
The *.zip is not used internally by OPM, if it's useful for you then feel free to keep it.
With the LastNotifyDate entry, I have a couple of questions:
1. What if I upload a json with LastNotifyDate set for 10 years from now?
2. With the date in TDateTime format (which it has to be), it becomes difficult and error-prone to manually edit the json file (which some users will do)
I assume what is wanted is really an 'expire-by' date (days). If so, then it's probably better to store the current date (internally) and let the user specify a number of days for the NotifyUpdate to apply. This can be stored as a simple integer field. If OPM can parse the filedate of the json, then it doesn't even need the problematical TDateTime field - only the ExpiryDays one.
First of all the "ForceNotify" feature will be rarely used, secondly we need a system that prevents continuous alert messages even when ForceNotify is set to true. Consider this:
1. A package maintainer modifies the source, without increasing the version number(it's not unusual)
2. To trigger an alert message on the users computer, he/she sets ForceNotify to true(the other valid alert method is to increase the version number, which do not apply here)
3. OPM alerts the user, the package is downloaded/installed through the update feature
4. Now comes the confusing/annoying part, although the source is updated, the user will receive continuous alert messages since ForceNotify is true. To prevent this, I want to add a TDate/TDateTime field, which represents the date when the last update was released. After the update is done, OPM remembers internally the date, preventing further messages until the date changes again. We can replace the date with an integer, the effect would be the same. You're right about the TDate/TDatetime, it's very difficult to edit manually in the JSON file, however is more suggestive then an integer value, besides why did you developed the jsoneditor? To handle dates in the json
. So what's gonna be: integer or date?