XF 2.1 One-click upgrades and add-on install/upgrade from ZIP files

And here we are, already at the penultimate entry in our "Have you seen...?" series for XF 2.1. If you haven't seen the previous entries about what's coming in XF 2.1, check them out here.

As ever, to ensure you're kept up to date, we strongly recommend giving that "Watch forum" link a... well... click, I guess... and make sure you enable email notifications if you haven't done so already 🙂
 

Mike

XenForo developer
Staff member
Do we get a second domain with our XF license ?

I run a test-site (not publicy accessible behind a http-auth) with an additional domain to do my (upgrade) tests. If I can't do these upgrades the same way as on prod (because license check would complain), testing becomes useless ...

Besides that a really cool feature that helps a lot administering (y)
You've always been allowed a testing site. (And we've actually just made some license agreement tweaks which make some of the stuff in this feature clearer, but also allow any number of testing installs, provided they are clearly test installs, password protected, etc -- previously, our agreement only allowed one. The customer area has a license agreement update notification.)

Because of testing and development sites, the URL related checks are warnings and don't block the auto upgrade system. (If you get that warning on a production site though, then you may be doing something that falls foul of our agreement, so best to sort it/talk to us.)
 

TLDR

Active member
Because of testing and development sites, the URL related checks are warnings and don't block the auto upgrade system. (If you get that warning on a production site though, then you may be doing something that falls foul of our agreement, so best to sort it/talk to us.)
This should be added to Chris' last post where the warnings are displayed.
 

markus68

Active member
Because of testing and development sites, the URL related checks are warnings and don't block the auto upgrade system. (If you get that warning on a production site though, then you may be doing something that falls foul of our agreement, so best to sort it/talk to us.)

Perfect ! Thanks (y)
 

Arty

Well-known member
Can download and update function be used by add-ons?

For example add-on would download json file with latest version information from developer's website, inform admin if update is available and with one simple php call would download, unpack and install add-on. Would new code make that possible?
 

Mike

XenForo developer
Staff member
Can download and update function be used by add-ons?
You can certainly use the add-on archive installer system to do most of the legwork for you after you have the zip, but this doesn't handle checking for updates or downloading anything outside official elements, so you would need to implement something specific to your needs to handle that part (such as tying into your licensing system, etc).
 

DragonByte Tech

Well-known member
You can certainly use the add-on archive installer system to do most of the legwork for you after you have the zip
If I understand you correctly, you mean we can pass a zip file that's been downloaded onto the forum's server to the code that actually performs the unzip / upgrade and have it work as if we uploaded a zip in the UI?

If so, that's great. I'd imagine that'll make the ThemeHouse Install & Upgrade guys pretty happy since it lets them cut out the most dangerous and destructive part of their mod for something official and supported 👍

As well as installing add-ons, you can upgrade add-ons in the same way. You can also upload an add-on version you already have installed which will trigger a "Rebuild" of the add-on. In this context the rebuild consists of copying over the add-on files and importing all of the add-on data (a bit like a "Rebuild master data" but for an add-on).
This bit right here though, this is the sort of forethought that sets XF apart from any other platform I've worked with. It would be so easy to just assume that there's never a need to download & import the same version again. Hotfixes happen, and having the ability to use this tool to rebuild the addon after a hotfix is immensely useful.

GIVE IT ME, GIVE IT ME NOW!


Fillip
 

Chris D

XenForo developer
Staff member
If I understand you correctly, you mean we can pass a zip file that's been downloaded onto the forum's server to the code that actually performs the unzip / upgrade and have it work as if we uploaded a zip in the UI?
Deleted my original post as I just wanted to expand on this more accurately.

This is basically what the one-click upgrade system does with official XF add-ons. Once we have downloaded the add-ons from the customer area, we have a service to validate them (to make sure they are proper add-on archives, etc).

We then create a "batch" record using the InstallBatchCreator service, which allows you to add one or more downloaded files.

Once you have validated and saved the batch record, you redirect to the add-ons/install-from-archive-confirm action with the batch_id you've just created and it's basically the same as the process from this GIF (the second page where you click "Confirm actions"):

 

Snog

Well-known member
While this will work perfectly for upgrading XF and it's related official add-ons, unfortunately it wouldn't work for automatically upgrading my add-ons. As I've explained to TH and a couple of other people, my security system would reject connections where the user isn't logged in and quite possibly reject the user's server connection at the system level when the initial connection is made.

I'll have to take a close look at how this all works in the code once it's released to see if I can adopt it or not.
 

Chris D

XenForo developer
Staff member
Can you elaborate slightly?

We don't actually automatically upgrade any third party add-ons, or even notify of updates to them. The third party add-ons would need to be installed/upgraded by uploading the add-on ZIP file, which would be manually downloaded from you as it is now. It doesn't sound like that should get blocked, but what is the security system exactly?
 

RobinHood

Well-known member
Was a bit worried this wouldn't be included, this is a big time saver! Will help to encourage all installs to make sure they're on the latest version of XF too.

Hopefully it can and will be extended in the future to it can let us know when 3rd party add ons at least have new versions available to download, and let us one click update similar to some other add ons in the past. Whether it's from the resource manager here, or the 3rd party dev's own server.
 

Snog

Well-known member
Can you elaborate slightly?

We don't actually automatically upgrade any third party add-ons, or even notify of updates to them. The third party add-ons would need to be installed/upgraded by uploading the add-on ZIP file, which would be manually downloaded from you as it is now. It doesn't sound like that should get blocked, but what is the security system exactly?
Ah, OK! I misunderstood. I didn't realize the .zip file would have to be/could be uploaded manually and added to the batch.

Briefly security wise, a user must be logged in and licenses verified (both XF and mine) to download an add-on from my site. Any connection from another server to download an add-on has about an 80% chance of being denied at the system level before the request ever hits the web site itself. It's rather convoluted, but it works.
 
Top