Appman.rockstor.com maintenance / Open Collective integration

Services affected:

Nature: intermittent over next few days.

As some of you will already be aware, all of our fiscal dealings are now handled, in the open, through our new non-profit/non-business Open Collective, fiscally hosted by Open Collective Europe. This long planned and only recently executed move has unfortunately been complicated by our old Shopify shop still being the kick-off point for activation codes.

In brief, Appman calls in to Shopify to check for any new Stable Updates subscription orders, and fulfils them via an activation code email. But with our move to Open Collective for our financial contributions, we are in a limbo state of sorts. Fiscal Contributions via Open Collective - but the old Shopify shop was still required by way of Appman integration with Shopify’s API to know of new orders. Our temporary and messy hack was to update our instructions and have folks jump through both the new and the old contribution systems. Far from ideal but that was where we found ourselves.

However - Shopify has again broken our API interactions (as of today) with only 3 weeks prior notice: this explains our sudden lack of activity in our main repositories around 3 weeks ago! It was decided that instead of adapting, yet again, to yet another frivolous API change (new burdensome and overly complicated ‘order’ fulfilment procedures this time) we should instead bring forward our planned-for end-of-year Open Collective Appman integration. That is what I and @Flox have been working on in the background for the last 3 weeks.

A partial re-write of Appman was required for this new Open Collective integration. As a result there will now be some interruptions to Appman’s availability as I set about putting the new code into production.

I very much hope to keep service drop-outs to a minimum but much was needed, change wise, for this change-over, so it is difficult to know for sure how things will pan-out until the next version of Appman is instantiated and doing it’s API thing with Open Collective.

Please be patient as I fathom the final implementation elements here and I will endeavour to update this forum thread as things progress. Outages are expected intermittently for the next few days possibly as we identify bits I likely missed, but given we have critical path test coverage for the most part, I hope to be able to adapt to found failings fairly quickly.

Ongoing work on Appman will always be required and given its pending Open Collective integration, there is now renewed interest from the core developers (me and @Flox in this case) to guage the communities appetite for Appman to be Open Sourced. If so the chosen license is to be AGPL-3.0-or-later. This will involve more work initially - but will also, by way of community engagement, aford the project more time and attention than it has garnered from me & @Flox to date.

4 Likes

We have had our first new member since Appman’s partial re-write and re-instantiation as pre this Maintenance notice - and it’s newly establish Open Collective intergration. The WebHooks were received from Open Collective as expected but they were not exactly as expected. This has lead to a partial failure: - but lets call it a partial success.

I’m currently looking into what didn’t quite line up as expected and will report back here shortly with hopefully an indication of the fix having been implemented. My apologies to the most recent member affected. But it’s just a matter of time before I work out what I missed the first time and we should then be sorted for future ‘real-life’ Open Collective events. I can resubmit the unprocessed new member WebHook once I’ve done the work to resolve what went wrong the first time.

Again apologies for the interruption in service here. The Shopify to Open Collective transition was rather forced on us and time was short - but I think we are very nearly there now :crossed_fingers:.

Hope that helps, at least by way of an update.

1 Like

OK, I believe the fix is now in-place.

I’ve re-invoked what should have happened earlier for our most recent Open Collective member by re-sending the successfully logged WebHook that originally came from Open Collective and all looks to have gone as expected this time.

What went wrong

I had assumed that “id” in the Open Collective WebHook had been updated to reference the new “id” in:

OrderReferenceInput: Type - OrderReferenceInput

But in fact the WebHook “id” equates to a GraphQL query using “legacyId”, not “id”.

My apologies on this front. There will likely be a few more hickups as we change the legs we are running on here within Appman. All unit tests associated with these changes have also been updated. These tests were written with the same “id” = “id” assumption.

Appman/repos downtime this time was

UTC
Service downed at: [Tue Jul 04 17:10:33.413469 2023]
Service restored at: [Tue Jul 04 17:14:20.932014 2023]

3 Likes

OK folks, it’s that time again. I’ve been working on Appman again of late, under the watchfull eye of @Flox, and it’s now time to put our work into PRODUCTION. This will inevitably involve some down-time as I take offline snapshots, and do reboots, and related maintenance etc. But as part of the the newer Appman implementation we have further separation of the services carried by this server. So in time these service interruptions should be more discreet.

Thanks again for your patience and for all those who have reported issues that have helped with this recent deveopment work: specifically @Hooverdan @Tex1954 @KeithF @mattyvau @GeoffA. We have to date only had partical Open Collective integration, and this next push should improve that some-what :crossed_fingers:.

Hope that helps. And I will report back here once the new code is settled in.

Services affected: as before

Nature: intermittent over next few days.

3 Likes

So we appear to be back in non-business :slight_smile: . Our new code for Appman is now in play. And as stated we now have better separation between Appman itself and our update repositories. So the next time around thing should be a little smoother. We also have tighter Open Collective integration. Bit by bit.

I’ll leave the services be for a bit to let things settle and get some working knowledge of what we have now, given the proof is in the pudding. We now work a little differently in order to cope with multiple orders from the same email. Which was an unforeseen failure in our prior implementation. But all-in if this instance works out, it should be good for addressing all issues reported raised to-date.

Again my apologies for this being piece-meal, but we are rather finding our way as we go re the Open Collective integrations as there are, as-yet, few examples to follow.

The next step here will be some database by-hand tidy that will result in no longer seeing ‘old’ computer entries that are no longer associated with an active Open Collective order. Again I will report back here on progress on this and related fronts.

But for now, we have what is there. So please report any further findings; wise to not divulging your Appliance ID or activation code - but if required then use the Private Message facility within this forum.

Hope that helps. And again thanks for your patience, and input, as we streamline our various services.

6 Likes