Sunday, November 5, 2017

Change Log: 2.50.931

Release 2.50.931 is a tiny break/fix release that deals pretty much exclusively with a major feature bug (hit the jump for complete details).

Beyond addressing that issue, this release also adds a warning to the dashboard for non-subscribers about how their settlements will be automatically removed/purged after six months.

I thought long and hard about this and ultimately ended up putting long-term storage behind the $1 "support wall" because I believe it is fair.

While actual storage cost for old settlements is absolutely trivial (we're talking literal millionths of a dollar per), the effort that goes into keeping older settlements compatible with the Manager, the API and ultimately The Watcher has a non-trivial cost (i.e. that is paid in development and support hours).

As usual, if you have a question/comment, find me on Twitter or use the comments here, etc.

Thanks for using the Manager!

Corrections and Fixes

  1. Addressed an issue that prevented users from being added to the settlement admins group. -Chris T

Application Enhancement

  1. Refactored legacy webapp to use the user.subscriber attribute as the single source of truth for subscriber/patron info.
  2. Rewrote the HTML controls for managing settlement admins:
    1. Fixed a bunch of references to $scope.settlement_sheet (which has been deprecated for a minute now).
    2. Replaced some calls to the ill-conceived (and soon to be deprecated) arrayContains() method of kdmManager.js in the admin controls with indexOf type checks.
    3. Removed the call to the deprecated modifyAsset() method from the toggleAdmin() method of kdmManager.js.
    4. Rewrote toggleAdmin() to use API calls and to update the $scope.settlement so that changes look instant.
  3. Added a warning about the upcoming support wall feature that purges non-subscriber campaigns after 180 days.

API Development

  1. The 'meta' block of serialized user assets no longer includes information on the application admins (because it's no longer necessary and is superseded by the boolean flag at the top of the user element that straight-up tells you if the user is an application admin).
  2. Moved the 'patron' element from the top level of the user (to avoid confusion).
  3. Renamed 'patron' to 'subscriber'
  4. Documented the /settlement/abandon/oid route
  5. Expanded the documentation on the /user/dashboard/oid route to explain the differences between the campaigns element and the settlements element. -Caleb
  6. Moved settlement admin list management to the API:
    1. created a new Settlement method called add_settlement_admin() and a route to it: /settlement/add_admin/<oid> that I also documented.
    2. Same same for rm_settlement_admin(), mutatis mutandis.
  7. Corrected the routes for adding/removing settlement notes in the documentation.
  8. Added can_gain_bleeding_tokens element to the survivor object. -Caleb
  9. Added support for the cannot_gain_bleeding_tokens attribute to the survivor flags list.


  1. Hi Timothy,
    while I would really love to both continue my campaign and give kdm-manager some testing, the current performance doesn't allow it to happen. So could you please consider scaling up the VM which hosts manager as a temporary workaround, for example?

    1. Unfortunately, utilization is not the issue: the current performance issues are the consequence of poorly-optimized Javascript.

      Long story short, as the Manager has moved from a CGI/form-based application to an AngularJS + API type of setup, I haven't really been paying much attention to optimizing the AngularJS side of things.

      At any rate, I hear what you are saying and I am going to spend the next day (or two) dramatically revising how all of that works and try to speed things up a bit.

      More soon!

    2. OK, I've got a new release ready to go. I'm going to give it a few more passes through my QA process and put it into production in a little bit.

      It should speed things up a bit.

  2. This comment has been removed by the author.

  3. This comment has been removed by the author.