Feature Request: Apps published via API should expire if the instance is not updated

Due to a recent power outage the Raspberry Pi that pushes my Pixlet apps to my Tidbyt went down and I failed to notice that it had stopped working. I had no way of knowing that the apps on my Tidbyt were no longer being updated since the instance that was last pushed to the device continued to show up in the rotation even though the data it contained was stale.

It would be useful if apps published by API could expire automatically after a certain timeframe. This way if the app stops being updated by the remote server, the latest instance that was published, will be removed from the device automatically after a certain duration (e.g. 24 hours). This way apps containing stale data will be removed if they are no longer being updated.

Currently, it is all too easy for stale data to remain in the rotation, even when it is no longer being updated. I admit that there are rare apps that have static information and never need to be updated but most need updating periodically via a cron trigger. For these rare static apps there could be an override to prevent them expiring. The default expiry could be 24hrs but the developer could override this to a suitable duration, or to ‘never’.

It would also be helpful if any apps published from the API showed the date and time that they were published in the Tidbyt app. This way we can see at a glance when they were last updated, and quickly see how fresh the data is.

I was thinking that another solution would be for apps to be able to generate an ‘expired data’ apng along with the live data apng. This could be useful for apps that update on a regular interval for displaying live status - such as crypto prices etc. The ‘expired data’ image could be set to display automatically if the ‘live data’ does not get updated within certain time frame. This was, a Bitcoin price app, for example, could expire the current price if it is not updated after 2 hours and replace the live data image with the ‘expired data’ image that tells the user that the data is stale or that there is a connection error to the API etc.

Would it be simpler to separate the data from the app? Namely, push the app when needed (anytime the features or bug fixes are added) and have the app fetch the data from the Raspberry PI over HTTP. If the app is unable to fetch the data, you could print an error message on the screen alerting you to the issue.