-
Setup: Add
apiVersion:2as default and add URL configuration based on apiVersion and region -
Scopes: Add
OperatorandAccessTokenscopes 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 athngorproductby including an ID in thedataparameter. -
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 theshortDomainin that call, and no longer requires some templating ({shortId}/{productId}) as part of the URL submitted. - redirections:
settingsnow includesdefaultShortDomainto 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
Entitythrough the pluginapi. - files: Add
upload()method for files to upload file data. - upsert:
upsert()can now be performed bynamein 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.jsfor API details.
If you are updating from a previous version, please see the Migration Guide.
- evrythng-extended.js:
evrythng-extended.jsis no longer required as a separate dependency. - Browser global: The
EVTbrowser global is nowevrythng. - Scope names: The
AppandTrustedAppscopes are nowApplicationandTrustedApplication. - User scope: Manual creation of a
Userscope using a pre-existing API key now only requires the key as a parameter. - $init: The
$initpromise property has been formalised as theinit()method, and behaves the same way. - Request options: The
authorizationparameter 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
Operatorscope 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
paramsobject, 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=DESCENDINGparam by default. - Application: Reject
application.$initpromise 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
codeandmoreInfoand removedmessageandtypeto/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$injectproperty 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.