-
Setup: Add
apiVersion:2
as default and add URL configuration based on apiVersion and region -
Scopes: Add
Operator
andAccessToken
scopes forapiVersion:2
-
Access Policies: Add
accessPolicies()
for access policies API to Operator and AccessToken scopes forapiVersion:2
-
Operator Accesses: Add
operatorAccess()
for operator accesses API to Operator and AccessToken scopes forapiVersion:2
-
Me: Add
me()
for me API to Operator and AccessToken scopes forapiVersion:2
-
Access Tokens: Add
accessToken()
for access tokens API to Operator and AccessToken scopes forapiVersion:2
- Files: Add
files()
resources to User scope for creating and reading by file ID.
-
ActionApp: Allow
createAction()
to target athng
orproduct
by including an ID in thedata
parameter. -
ActionApp: All
getAnonymousUser()
to allow usage of the managed anonymous Application User.
- ActionApp: Fix bug preventing use of built-in action types.
- Pagination: Add
streamPages()
to all resources to allow asynchronously streaming pages of resources.
-
Purchase Orders: Add
purchaseOrder()
for purchase orders API to Operator scope. -
Shipment Notices: Add
shipmentNotice()
andshipmentNotice().container()
for shipment notices API to Operator scope.
- Scopes: Prevent scopes from reading access twice when using
init()
.
- ADI Orders: Added
adiOrder()
resources to Operator scope for creating and reading ADI Orders. Also includesevent()
for creating ADI Order events.
- redirections:
redirection()
resource now allows nominating theshortDomain
in that call, and no longer requires some templating ({shortId}
/{productId}
) as part of the URL submitted. - redirections:
settings
now includesdefaultShortDomain
to allow setting the default short domain used forredirection()
requests.
- api: Better handle parts of the API that return non-standard empty response bodies.
## Features
- entities: Export
Entity
through the pluginapi
. - files: Add
upload()
method for files to upload file data. - upsert:
upsert()
can now be performed byname
in addition to an identifier object where a resource supports filtering byname
.
- param setters: Add missing
setIds()
param setter. - permissions: Support referring to permission by name, such as
permission('global_read')
- plugins: Added the
use()
method in order to support plugins. Seesrc/use.js
for API details.
If you are updating from a previous version, please see the Migration Guide.
- evrythng-extended.js:
evrythng-extended.js
is no longer required as a separate dependency. - Browser global: The
EVT
browser global is nowevrythng
. - Scope names: The
App
andTrustedApp
scopes are nowApplication
andTrustedApplication
. - User scope: Manual creation of a
User
scope using a pre-existing API key now only requires the key as a parameter. - $init: The
$init
promise property has been formalised as theinit()
method, and behaves the same way. - Request options: The
authorization
parameter forapi()
is nowapiKey
. - Iterators: The
EVT.Utils.forEachAsync()
anditerator()
resource method is nowpages()
, and is an async generator.
- Redirections: The
thng()
andproduct()
resources now have aredirection()
resource for managing redirections. - Accounts: Added a
sharedAccount()
resource withaccess()
sub-resource for reading and updating accounts. - Domains: The
sharedAccount()
resource also includesshortDomain()
anddomain()
resources for reading available short domains and domains. - Secret key: The
application()
resource now has asecretKey()
resource for reading its Trusted Application API Key as anOperator
. - Redirector: The
Operator
scope andapplication()
resource now have aredirector()
resource for reading and updating Redirector rules. - Resource aliases: The
alias()
method allows simple aliasing of existing resource types to better suit a use-case or environment, such as naming collections 'pallets'. - Parameter setters: Instead of creating a
params
object, chainable setters such assetPerPage()
are available on most resources to easily build complex requests. - Resource methods: The
rescope()
,upsert()
, andfind()
methods have been added to most resources to allow easier changing of project/user scopes, updating by key else creating, and finding by identifiers as common operations.
-Places: Do not geolocate place with id
-Policies: Allow single Policy access.
-Policies: Add Policy resource to Roles.
-Schemas: Add Schema resource in Operator scope.
-Permissions: Add support for old Permission API.
-Permissions: Add Permission resource to Roles.
- HTTP: Fix incorrect Content-Type header check in Node.
-Roles: Add Role resource in Operator and User scope.
- Files: CRD access in the Operator scope.
- Scopes: Read data from any scope on creation via
$init
.
- Reactor scripts: Add nested reactor script status
resource
app.reactor.script().status()
.
- Auth: Allow to pass FB initialization settings
- Auth: Read user details when login in application
- Reactor logs: Move
app.reactorLog()
resource within theapp.reactor.log()
namespace (only available in evrythng-extended.js). - Search: Global
.search()
has been removed to match API. Use filters instead. - Multimedia: Multimedia resource has been removed to match API.
- Reactor schedules: Add Reactor schedules resource in the
app.reactor.schedule()
namespace (only available in evrythng-extended.js). - Reactor scripts: Add Reactor scripts resource in the
app.reactor.script()
namespace (only available in evrythng-extended.js).
- Collections: Add nested collection resource
operator.collection('id').collection()
.
- Iterator API: Use
sortOrder=DESCENDING
param by default. - Application: Reject
application.$init
promise if app does not exist. - AJAX Headers: Fix response headers not being handled correctly.
- Batches: CRUD access in the Operator scope.
- Batch tasks: CR access in the Batch resource.
- Iterator API: Async generator
iterator()
added to every Resource, supporting looping through the new pagination links. - Utils: Added
forEachAsync()
utility to loop through async generator values. - Utils: Added
spawn()
utility to run through generator function.
- Count:
count()
method on the Resource has been removed.
- AJAX Headers: Header values were being lowercased.
- Request interceptors: Added Promise support for request interceptors.
- Callback API: Make deprecation warning mutable.
- Errors: Added
code
andmoreInfo
and removedmessage
andtype
to/from EVT.js errors. - Callback API: Added deprecation when callbacks are executed.
- Transport: Common transport module for Node.js and Browser.
- Projects: CRUD access in the Operator scope.
- Applications: CRUD access in the Project resource.
- Reactor Logs: RD access in the Operator scope.
- Actions: allow to override global Geolocation setting per request.
- Resource path: newly created entities have wrong resource path [#37].
- Properties: normalize arguments with falsy values (e.g.
0
,false
) on property creation or update.
- Trusted App: updated permissions for TrustedApp scope.
- Custom headers: allow to setup custom headers with headers object option.
- Action Types: CRUD access like other entities.
- Filters: escape special characters for filter param when using object notation.
- Properties: normalize arguments on creation, just like updates. Read properties with special characters.
- Empty fields: empty fields not being sent to API request.
- Encoding: nested params objects (e.g. filters) are only encoded once.
- Trusted App: scope to use with you Application Secret Key, mainly used in Reactor scripts (only available in evrythng-extended.js).
- plugins:
EVT.use()
to install plugin is now synchronous. Callback has been removed. Required dependencies now use$inject
property instead ofrequires
.
- documentation: clearer usage and installation steps. Consistent format from other libs.
- package.json: Github url with
git://
protocol.
- xhr: responses without headers were being ignored.
- interceptors: setup request and response interceptors globally or as a one-off request settings.
- plugins: ability to install/use plugins for additional functionality.
- synchronous requests: sync option removed for Node.js vs Browser consistency and to promote best practices.