Releases: forio/epicenter-js-libs
Releases · forio/epicenter-js-libs
2.0
2.0 (2016-09-20)
This is a major release, including several major features and a few bug fixes.
- New Feature: Introspection: You can now view a listing of all of the variables and operations (functions) exposed in your model. You can access this through the Introspection Service, or through
introspect
in the Run Service. - New Feature: Epicenter APIs, v2: New in this release, all calls are now routed to
v2
of the underlying Epicenter APIs. This is largely a transparent change -- probably the biggest difference you'll notice is that Run Ids have a slightly different format; they no longer contain hyphens. Under the hood, runs are now created on a new and improved distributed model service infrastructure, which provides increased stability and improved logging and error reporting. - New Feature: jQuery 3.1: New in this release, you can include jQuery 3.1.0. Changes are backwards compatible, so you can use either jQuery 2.1.4 (as for previous releases of Epicenter.js) or jQuery 3.1.0, but you may already be using the newer version of jQuery in your project for other reasons. In particular, jQuery 3 is A+ promises compatible so will play well with ES6 code.
- Bug Fixes:
- In some cases when multiple end users were logging into a project in the same browser (but not explicitly logging out), the
always-new
strategy was failing to create a new run. This has been corrected. - The
AuthManager
'slogout()
call now correctly removes all managed cookies.
- In some cases when multiple end users were logging into a project in the same browser (but not explicitly logging out), the
v1.8.1
1.8.0
This release cleans up session handling significantly, including making cookies specific to account and project.
Improvements
- All session information is now stored in a single cookie, epicenterjs.session, that defaults to a path of
/app/{account id}/{project id}/
.- Making the cookie specific to the account and project allows end users to log in to several different projects from the same team without session information being overridden.
- As a developer, if you need to set the cookie path to something else, you can change it explicitly by passing
{ store: { root: 'other/path' } }
to the Authorization Manager.
- When a user logs in, the access token is now automatically passed to the User, Member, and State API adapters, and to the Channel and Epicenter Channel managers. As a developer, you no longer need to worry about passing tokens once the user is logged in.
- The Epicenter Channel manager now automatically validates channel names. They must be in the form
/{type}/{account id}/{project id}/{...}
, wheretype
is one ofrun
,data
,user
,world
, orchat
. (See the underlying Push Channel API for additional details.) You can disable this validation if needed.
Bug Fixes
- When automatically splitting long queries into multiple pieces, the pieces were still a little too long for Microsoft Edge when all the URL-encoding was included. This was fixed by shortening the size of the pieces to account for any encoding.
- In some situations, the login component generated extraneous errors in the console. This has been fixed.
1.7.1
- Bug fixes for the API configuration feature introduced in 1.7.0: make sure we first search for the API configuration on the current server; if it's not available, default to api.forio.com. This allows Epicenter.js to more easily be used on multiple Epicenter installations (not just forio.com), but still provides flexibility for local development.
- Upgraded test framework (sinon) version.
1.7.0
- The API configuration (that is, where the REST API calls should be sent) is now loaded from the server, rather than hard-coded in the library. This allows Epicenter.js to more easily be used on multiple Epicenter installations (not just forio.com).
- In the Authorization Manager, improve how the path in the cookie is set to make local development easier. This is an extension of the improvement in v1.6.4.
1.6.4
v1.6.3
This is a minor release.
It includes:
- Updates for the run strategies to use group name rather than group id to create runs with specific scope.
- Addition of the
Auto-Restore
header to the Variables API Servicequery()
call; previously it had only been set for theload()
call. This header means that runs are automatically pulled from the Epicenter backend database into memory (and replayed) when they are queried. A run must be in memory in order to update model variables or call model operations. - Clean up of the Authentication API Service
logout()
call; it no longer calls the (unsupported) Epicenter delete. - Documentation improvements, including more information on running Epicenter projects locally and additional examples when using Asset API Adapter.
1.6.2
This is a minor release.
It includes:
- Internal refactoring to add support for version numbers in upcoming Epicenter APIs.
- Bare-bones implementation of
F.service.File
to get contents of any file in your project. Currently only used internally, by Flow Inspector (see https://github.com/forio/flow.js/releases/v0.10.0).
Bug fixes
Bug Fixes:
- State API Service did not allow you to pass in an
exclude
filter before, now it does - Fixed issue with the
splitGet
feature in the previous release which broke up large Ajax requests.
Asset API, Auto-restore & more
Features:
- The libraries now include an Asset Service (mapping to the underlying REST Asset API) to allow end-users manage files within projects.
- Run Service now auto-restores runs which go out of memory (#132). You can turn this off by setting
autoRestore
to `false. See https://forio.com/epicenter/docs/public/run_persistence for more information on Run Persistence. - Run Service now automatically breaks apart long URLs into multiple GETs behind the scenes. Browsers typically have a URL length limit of 2048 characters, and it's easy to bump into that for GETs with lots of variables. There should be no change in behavior as a result of this change (#123).
- Run Service now supports
id
as an alias tofilter
as part of the options, to be more semantic you're only working with a single run. - World Service: delete() now takes in an optional world id as first param #56
- World Service now supports
id
as an alias tofilter
as part of the options, to be more semantic you're only working with a single world. - World Manager now takes in the model from the
run
if you don't specify it as part of theworld
.
Bug Fixes:
- Run manager sets cookie path to
/
if you're running it locally - this fixes an issue where cookies were never set locally and you always got a new run if you refreshed.