Wagn 1.7 introduces a new and improved permissions system and rules interface.


With every new release, Wagn adds not just more power, but also more harmony.  Wagn 1.7 brings new power and harmony to our permissions system.


Before Wagn 1.7, Wagn's permissions were all stored outside of cards in a special permission table - now permissions are stored in cards as rules.  What does all this harmony buy you?

  1. Easier management.  Our old permissions table stored separate permissions settings for every single card.  Since our rules system allows for much more elegant expression of broad patterns, it is now far easier to see and manage your permissions. As an example, imagine you have 1000 user cards that can only be seen by "anyone signed in", and you want to change them so they can be seen by "anyone".  In the old system, this would require going to the options tab of 1000 cards.  Now this just requires one edit.
  2. Better interface.  Because permissions are now rules, all the new improvements to our rules interface will make it easier to create and edit permissions configurations.
  3. More flexible assignments.  Before, permissions could only be assigned to Roles, or groups of users.  Permissions can now be assigned to any combination of Roles and Users that you might want.
  4. Searching.  Since permissions are now in cards, you can now access them through the Wagn Query Language (WQL).
  5. Simpler API.  Now you can create and edit permissions rules through the standard card API.
  6. Customizability.  Because permissions are now managed through cards, you can tweak their editors and other views with our packs API.
Other coming benefits in progress include improved performance, simpler import/export, and REST access.



  1. Be sure to perform the 1.6.1 upgrade and migrations first before upgrading to 1.7.0.   It will not work to upgrade directly from older versions.
  2. There are several gem updates, so be sure to run `bundle install` before running the new code.  See using bundler with Wagn.
  3. It is recommended that you schedule downtime before this upgrade because the old permissions must be migrated into the new system using `rake db:migrate`.