%% generate tags start %% #obsidian %% generate tags end %% #obsidian/plugin ## What is It? %% run start ```ts const {LinkPreview} = customJS return LinkPreview.getLinkPreviewFromUrl("https://github.com/swar8080/obsidian-plugin-update-tracker") ``` %% <div class="nifty-link-card-container"> <a class="nifty-link-card" href="https://github.com/swar8080/obsidian-plugin-update-tracker" target="_blank"> <div class="nifty-link-card-text"> <div class="nifty-link-card-title line-clamp-2">GitHub - swar8080/obsidian-plugin-update-tracker: Know when installed obsidian plugins have updates and evaluate the risk of upgrading</div> <div class="nifty-link-card-description">Know when installed obsidian plugins have updates and evaluate the risk of upgrading - GitHub - swar8080/obsidian-plugin-update-tracker: Know when installed obsidian plugins have updates and evalua...</div> <div class="nifty-link-href"> <img class="nifty-link-icon" src="https://github.com/fluidicon.png"> https://github.com/swar8080/obsidian-plugin-update-tracker </div> </div> <div class="nifty-link-image-container"> <div class="nifty-link-image" style="background-image: url('https://opengraph.githubassets.com/32bc1f48c92b002e6e580a85f63089d48ed6a5402d0b587d1f6115aae0b76e82/swar8080/obsidian-plugin-update-tracker')"> </div> </div> </a> </div> %% run end %% ### Features #### Know when Installed Plugins Have Updates **Desktop:** This small icon is added to the status bar: [![image](https://user-images.githubusercontent.com/17691679/193410461-5882744b-670a-4cf9-9606-2864dba148d1.png)](https://user-images.githubusercontent.com/17691679/193410461-5882744b-670a-4cf9-9606-2864dba148d1.png): When 5 plugins have updates [![image](https://user-images.githubusercontent.com/17691679/193410447-395cb124-289d-4e92-b236-4d313bdc6bc8.png)](https://user-images.githubusercontent.com/17691679/193410447-395cb124-289d-4e92-b236-4d313bdc6bc8.png): When all plugins are up-to-date **Mobile/Tablet:** This ribbon action is shown when there's at least one update available: [![image](https://user-images.githubusercontent.com/17691679/201494579-ec481261-728d-4ac1-81dd-2d754420bf69.png)](https://user-images.githubusercontent.com/17691679/201494579-ec481261-728d-4ac1-81dd-2d754420bf69.png) ![](https://user-images.githubusercontent.com/17691679/198850850-5f61dba0-31a7-4d9e-aab5-8776850d3897.gif) ### Using the Public API to Check for Plugin Updates > [!info] This plugin also comes with a public API to fetch plugin data!? The API used to get plugin version info is free for anyone to use. This could be helpful for alerting your plugin's users about updates in a custom way. Cacheing + AWS Lambda is used to keep costs low, avoid hitting github rate limits, and scale automatically. Currently, cached values are used for up to `Math.ceil(number of requested plugins / 50) * 30` minutes and up to 400 plugins are processed. However, a large number of cache misses can still cause high latency. Example Request: ``` POST https://jc5gpa3gs7o2uge6iq5mgjd53q0daomi.lambda-url.us-east-1.on.aws { "currentPluginVersions": [ { "obsidianPluginId": "dataview", "version": "0.5.44" }, { "obsidianPluginId": "obsidian-excalidraw-plugin", "version": "1.7.25" } ] } ``` Example Response, which contains info on the 10 latest versions of the plugin that are greater than the version requested: ``` [ { "obsidianPluginId": "dataview", "pluginName": "Dataview", "pluginRepositoryUrl": "https://github.com/blacksmithgu/obsidian-dataview", "pluginRepoPath": "blacksmithgu/obsidian-dataview", "newVersions": [ { "releaseId": 79493021, "versionName": "0.5.47", "versionNumber": "0.5.47", "minObsidianAppVersion": "0.13.11", "notes": "# 0.5.47\n\nImproves `date + duration` behavior when either the date or duration are null.\n", "areNotesTruncated": false, "downloads": 45232, "fileAssetIds": { "manifestJson": 80616557, "mainJs": 80616558 }, "publishedAt": "2022-10-11T06:24:26Z", "updatedAt": "2022-10-11T06:24:26Z" }, { "releaseId": 76774596, "versionName": "0.5.46", "versionNumber": "0.5.46", "minObsidianAppVersion": "0.13.11", "notes": "# 0.5.46\n\n- Fix #1412: Fix bad `file.cday` and `file.ctime` comparisons due to wrong timezone being set. Ugh.\n", "areNotesTruncated": false, "downloads": 43628, "fileAssetIds": { "manifestJson": 77407853, "mainJs": 77407852 }, "publishedAt": "2022-09-10T00:17:38Z", "updatedAt": "2022-09-10T00:17:38Z" }, { "releaseId": 76553504, "versionName": "0.5.45", "versionNumber": "0.5.45", "minObsidianAppVersion": "0.13.11", "notes": "# 0.5.45\n\n- #1400: Properly use the group by field for the group name.\n- Fix bad table highlighting in some themes.\n", "areNotesTruncated": false, "downloads": 4199, "fileAssetIds": { "manifestJson": 77205985, "mainJs": 77205984 }, "publishedAt": "2022-09-08T05:24:23Z", "updatedAt": "2022-09-08T05:24:23Z" } ] }, { "obsidianPluginId": "obsidian-excalidraw-plugin", "pluginName": "Excalidraw", "pluginRepositoryUrl": "https://github.com/zsviczian/obsidian-excalidraw-plugin", "pluginRepoPath": "zsviczian/obsidian-excalidraw-plugin", "newVersions": [ { "releaseId": 80829877, "versionName": "Excalidraw 1.7.26", "versionNumber": "1.7.26", "minObsidianAppVersion": "0.15.6", "notes": "## Fixed\r\n- Transcluded block with a parent bullet does not embed sub-bullet [#853](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/853)\r\n- Transcluded text will now exclude ^block-references at end of lines\r\n- Phantom duplicates of the drawing appear when \"zoom to fit\" results in a zoom value below 10% and there are many objects on the canvas [#850](https://github.com/zsviczian/obsidian-excalidraw-plugin/issues/850)\r\n- CTRL+Wheel will increase/decrease zoom in steps of 5% matching the behavior of the \"+\" & \"-\" zoom buttons.\r\n- Latest updates from Excalidarw.com\r\n - Freedraw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)\r\n - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)\r\n\r\n## New - power user features\r\n- Force the embedded image to always scale to 100%. Note: this is a very niche feature with a very particular behavior that I built primarily for myself (even more so than other features in Excalidraw Obsidian - also built primarily for myself 😉)... This will reset your embedded image to 100% size every time you open the Excalidraw drawing, or in case you have embedded an Excalidraw drawing on your canvas inserted using this function, every time you update the embedded drawing, it will be scaled back to 100% size. This means that even if you resize the image on the drawing, it will reset to 100% the next time you open the file or you modify the original embedded object. This feature is useful when you decompose a drawing into separate Excalidraw files, but when combined onto a single canvas you want the individual pieces to maintain their actual sizes. I use this feature to construct Book-on-a-Page summaries from atomic drawings.\r\n- I added an action to the command palette to temporarily disable/enable Excalidraw autosave. When autosave is disabled, Excalidraw will still save your drawing when changing to another Obsidian window, but it will not save every 10 seconds. On a mobile device (but also on a desktop) this can lead to data loss if you terminate Obsidian abruptly (i.e. swipe the application away, or close Obsidian without first closing the drawing). Use this feature if you find Excalidraw laggy.", "areNotesTruncated": false, "downloads": 877, "fileAssetIds": { "manifestJson": 82708877, "mainJs": 82708880 }, "publishedAt": "2022-10-29T12:36:26Z", "updatedAt": "2022-10-29T12:36:10Z" } ] } ] ``` #### [](https://github.com/swar8080/obsidian-plugin-update-tracker#api-privacy)API Privacy The goal is sending the API only information needed for the plugin to function. Currently that's your list of installed plugins and their versions. AWS also automatically collects your IP which I have access to, and have no way of disabling. Any changes in what's collected will be included in release notes, but it's unlikely to change.