Sunday, February 19, 2017

Change Log: 2.4.259

Other than a couple of bug fixes based on errors that showed up in the logs from last week, this tiny release contains all API enhancements related to the first/alpha features of The Watcher.

Just a heads up, while break/fix and bug support will not slow down at all in the near term, feature work (including refactoring and redesign) for the legacy app is going to slow down quite a bit over the next few months: between work on the The Watcher and the fact that I'm moving this spring/summer, I don't feel like I will have the free time to keep up with the kind of insane release schedule that I kept up during November/December/January 2016.

That said, we're still full steam ahead on The Watcher and should have some real news on that very soon!

Thanks again for using the Manager!

KD: M(oving)!
Corrections and Fixes

  • The API method models.users.User.get_friends() no longer throws an exception when attempting to serialize a user with no assets. -khoa
  • Resolved an issue where Sunstalker "Jowls" and the Manhunter's "Crimson Vial" could cause tracebacks during Settlement Sheet rendering. -hindenfurg

Application Improvements

  • The legacy application's module now uses the /login route for JWT auth (rather than the /auth route). See below for specifics.
  • Updated the API documentation to describe the /login route and the correct usage of the "Authorization" header.
  • Updated the API documentation to also describe the new user action route.

API Improvements

  • Deprecated the use of the api_keys file completely. Authorization will only happen through headers and JWT.
  • Installed flask_jwt_extended for lazier/better JWT operations. I think the plan going forward will be to standardize on these methods, because bare-backing flask_jwt or pyjwt is not something I'm interested in doing.
  • Created a new route called /login to replace /auth (i.e. the built-in flask_jwt route) that handles token creation and user auth. -khoa
  • Punched up the generic __repr__() method of the Models.UserAsset() class so that it complains (i.e. WARNs in the logs) when you initialize an object without a "name" attribute. Gotta police that data model, yo.
  • The /login route accepts POST and OPTIONS requests and gives a pass to the "Authorization" header.
  • The /login route now return the user's MDB _id value on auth (just in case we don't have it, e.g. at first login, etc.)
  • Created the /user/get/<user_id> route so that it functions basically like our "get" action routes for settlements and survivors (i.e. calls the method for serializing the object according to its own self.serialize() method, etc.).
  • models.users.get_friends() now returns an int of 0 if the user has no friends (rather than a None/null type).

No comments:

Post a Comment