Implementing an auto updater/notifier?



  • I think I just realized a huge flaw in my idea. Expansions are encrypted with a unique key which is also used to decrypt and install them. Even if we could set the key via scripting I can't think of a way to transmit it from the server to the client securely... Might have to go with a per vendor solution after all and find other ways to mitigate the downsides



  • @d-healey One template software. Per vendor can adjust and use it acording to their needs. I think there is no need to unify brands under one.



  • @orange This is the current situation and the thing I wanted to avoid.



  • Here's a possible solution, the download manager only does download managing and placing files in appropriate folders. Each plugin that uses expansions can check on startup a specific location for any newly added expansions and extract/install them.

    This removes the need to transmit encryption keys and also means I could build the app with electron instead of HISE.



  • @d-healey -- I see from your example graphics you've counted me in already ----as usual you have me completely-- I'm in in in in in.



  • @d-healey said in Implementing an auto updater/notifier?:

    @orange This is the current situation and the thing I wanted to avoid.

    Why not making an app like your export tool that can be useful for everybody?

    I mean you can implement a Downloader/Installer/License Manager app template with Hise and everybody can use it. Of course there should be some requirments that everybody should have (like wordpress or woocommerce...etc.). but it would be a total "in the box solution". And I am sure it will be a standart for almost every Hise developer.

    So if the license handling is not included, the app definately would be deficient. One app that solves all of these ass pains and this app template will be used by everybody, then it will be a good money maker for you 🙂 Totally in my opinion of course...



  • @orange

    Why not making an app like your export tool that can be useful for everybody?

    That's kind of what I had in mind. I'd prefer it was a HISE app rather than an Electron or C++ app because it will give HISE developers (who don't know the other languages) direct control over the app. However because of the issues I've mentioned I think an Electron app will be the way to go.

    This is a big undertaking so I'm going to put it on the back burner for now and just incorporate some kind of minimalist download/installer into my current project directly. When I have some free time I'll come back to this because I think it is ultimately what is needed both for users and developers.



  • As I see it there are multiple requirements that contradict each other here:

    1. you want an open source solution. This prevents any kind of private key on the client side.
    2. if you make one proprietary installer platform that is used by multiple companies it will increase the attraction of hackers and make it more likely that the private key of this single platform will be leaked (= exactly the reason why KONTAKTs copy protection scheme is worthless).
    3. if everybody and his dog has their own installer chances are better that you stay below the radar of cracking crews, but the end user will hate it. At the moment it's already at the tipping point with one installer software for each "big" company, but if small indie developers with a portfolio of 1-2 products start shipping their installer it becomes ridiculous.

    So if you want to avoid 3. and solve the problem 2, you will have to move any kind of encryption / authentication to the plugin (so the plugin itself has to be cracked instead of the platform). But then all that you are left with is a software that downloads a file to a location and you can simply resort to existing solutions (the best one for small devs would be Pulse at the moment) or make a simple open source app based on Electron if you don't want to offload that to a 3rd company. But then again, if everybody takes that template from you and just slaps his logo on the front, we're back at scenario 3...



  • @Christoph-Hart said in Implementing an auto updater/notifier?:

    1. you want an open source solution. This prevents any kind of private key on the client side.

    The private key can still be in the compiled binary on the client side, it just can't be transmitted from the server. You can make an open source plugin without publishing the project.xml that contains the encryption key, no? --- And now I've finished reading your post and see you reached the same conclusion 🙂

    if everybody takes that template from you and just slaps his logo on the front, we're back at scenario 3...

    Yes this would be horrible. If I make an app it will be a single app for everyone (although people could take it as a template and build their own but hopefully they won't because that defeats the purpose). A template script for the HISE expansion installer side would be good, then people can drop that into their HISE projects.



  • I am going to start with users downloading their product installers bundled with samples from their accounts on my website. It is a WooCommerce platform. If I see issues arise along the way, I would consider a dedicated downloader.

    I have, however, built a fantastic download organizing tool (WP plugin) that allows customers to pick what they want to download. They see a single download button per product in their account and once they click on it, they are presented with a popup menu of folders and subfolders to pick their platform etc. It is called Woo Custom Downloads and if anyone wants it, PM me, and I will send it to you. It is not yet available in the WP plugin repository.

    I have also implemented notifications in my plugins. It lets users know of new plugin version and points them to a custom page on my website where they can read about changes. If they want to update, they will have to download it from their accounts where they purchased it. So, if someone obtains a plugin without paying, they won't be updating it 🙂


Log in to reply
 

6
Online

1.5k
Users

4.6k
Topics

42.1k
Posts