Noticed issue where the HUD wouldn't function as expected and resolved it. Suspected it could be related to a permission issue but ended up not being related; regardless it's still resolved here.
Updated mock security to conduct a POST when logging in rather than the old GET.
Added a maxAge property to cookies in support of the session. This should allow sessions to properly end after a certain period (default 24 hours) rather than relying on the browser closing. The mock security service updates the maxAge on every request but other implementations can choose to change this.
Updated persona's login method to ensure permissions are cached before each login. This should prevent issues in which zero permissions are cached causing users to login without permissions.
Removed old alert message from Ozone.ajax; it was most of a development artifact; now it appropriately returns the error to the caller should an HTTP 403 be returned from the server.
Added minor feedback when saving permissions since I was in the area and it only took a couple of minutes. This should be later improved as far as the user experience goes.
Merge pull request #51 from ozone-development/fixes-14

Addresses issues in 14 (permission instability)
Normalized error returns to be undefined or contain a value (no longer mixes undefined and null).
Added unit tests for objectId() and Metadata within Persistence.
Revised personas unit tests since error normalization has occurred.
Covered persistence service that deals with data collections with unit tests.
Removed unnecessary items from config.
Updated mock data store to be consistent with the mongo store when dealing with errors.
Covered persistence drive in unit tests.
Merge pull request #52 from ozone-development/persistence-unit-tests

Persistence unit tests
Fixed issue with the build script that excluded some files in the static bundle.
Added sample applications.
Merge pull request #55 from ozone-development/final-fixes

Final fixes
Adding zip that was missed due to .gitignore. Archives typically wouldn't be included but this is for the example auto import.
Fixes issues not using mural
Merge pull request #57 from ozone-development/fixes-3-tier-issues

Fixes issues not using mural
Merge branch 'master' into app-service-docs

* master:
  Fixes issues not using mural
  Adding zip that was missed due to .gitignore. Archives typically wouldn't be included but this is for the example auto import.
  Added sample applications.
  Fixed issue with the build script that excluded some files in the static bundle.
  Covered persistence drive in unit tests.
  Removed unnecessary items from config. Updated mock data store to be consistent with the mongo store when dealing with errors.
  Covered persistence service that deals with data collections with unit tests.
  Normalized error returns to be undefined or contain a value (no longer mixes undefined and null). Added unit tests for objectId() and Metadata within Persistence. Revised personas unit tests since error normalization has occurred.
  Added minor feedback when saving permissions since I was in the area and it only took a couple of minutes. This should be later improved as far as the user experience goes.
  Removed old alert message from Ozone.ajax; it was most of a development artifact; now it appropriately returns the error to the caller should an HTTP 403 be returned from the server.
  Updated persona's login method to ensure permissions are cached before each login. This should prevent issues in which zero permissions are cached causing users to login without permissions.
  Added a maxAge property to cookies in support of the session. This should allow sessions to properly end after a certain period (default 24 hours) rather than relying on the browser closing. The mock security service updates the maxAge on every request but other implementations can choose to change this.
  Updated mock security to conduct a POST when logging in rather than the old GET.
  Noticed issue where the HUD wouldn't function as expected and resolved it. Suspected it could be related to a permission issue but ended up not being related; regardless it's still resolved here.