The widgets were previously missing user avatars due to the widget renderer not having access to the avatar links since it was a public web client, not an authenticated client. This change adds avatar caching to the data sync for a user record and stores the avatar in the datastore. This works around the permission issue as all of the data is being pulled from the Datastore instead of trying to fetch the icons from the web. This is also a performance improvement since each icon is only cached once and infrequently updated.
References and relevant issues
Closes #115
Detailed description of the pull request / Additional comments
Updated the Identity data object to fetch avatars and store them as a base64 encoded string.
Updated the Identity object to only fetch avatars when it is updated.
Changed updated staleness value to three days. This means user avatars will only be re-downloaded once every three days. This allows updates to a user's avatar to be reflected, but as this is unlikely to happen very often the update may be delayed. This value is easy to change should we wish to tune it later.
Updated the data sync to pass in the connection object when creating identity records so the avatar can be fetched.
Updated the widget templates to read avatars as an image instead of a link.
Validation steps performed
Verified functionality of avatars with several different queries and the query list widget and pull request widget.
Summary of the pull request
The widgets were previously missing user avatars due to the widget renderer not having access to the avatar links since it was a public web client, not an authenticated client. This change adds avatar caching to the data sync for a user record and stores the avatar in the datastore. This works around the permission issue as all of the data is being pulled from the Datastore instead of trying to fetch the icons from the web. This is also a performance improvement since each icon is only cached once and infrequently updated.
References and relevant issues
Closes #115
Detailed description of the pull request / Additional comments
Validation steps performed
PR checklist