- Export All Collections Data - Added the documentation how to export all environment collections data
See how your Titanium platform is evolving.
kinvey appenv apply
--org <org>
(--app <app>
is no longer valid):flex init
flex create
flex list
service create
website create
app create
flex job
command--app
) matches more than one entitywebsite deploy
command:--force
flagnode12
(Node.js v.12) to flex
commands that support Node.js runtime selectionwebsite
command namespaceflex status
command outputs statuses using upper case lettersflex deploy --set-vars <env variables>
--runtime
app create
command now supports the --org
optionkinvey <namespace>
env
namespace to appenv
profile login
if requiredprofile login
if requiredFlex-sdk 3.x contains several breaking changes as well as new features. To upgrade your service from Flex-sdk 2.x to 3.x:
skipBl
and useMasterSecret
have been removed and no longer function. Use useBl
and useUserContext
instead.Open the Flex SDK GitHub repo for more information and source code.
flex create
.flex delete
. Note that this command name was used to clear Node.js project setting in previous versions.flex delete
command available in previous versions has a new name: flex clear
. It keeps its behavior.--no-prompt
flag (available only for delete commands).kinveyEntity
moduledataStore
entityId
s for dataStore
, groupStore
, and userStore
request
module to 2.85.0code-task-receiver
to 2.2.3 to add response object parsing for FlexFunctionsOpen the Flex SDK GitHub repo for more information and source code.
profile login
command updates the token only.--2fa
global option.kinvey profile login
.kinvey init
.kinvey profile delete
.Open the Kinvey CLI GitHub repo for full documentation and source code.
flex deploy
command now accepts --serviceId
flex init
command now requires a profile and ignores the --email
, --password
, and --host
options--no-color
flag for disabling colors in outputOpen the Kinvey CLI GitHub repo for full documentation and source code.
Install the latest beta using npm install -g kinvey-cli@next
.
status
becomes flex status
)init
—Initializes Kinvey CLI by prompting for credentials and configurations optionsflex init
—Configures Kinvey CLI to work with a specific Flex Serviceinit
) can now take credentials as command-line options or ENV variablesconfig
logout
flex
namespacestatus
command now reports the email address (plus first/last name, if set) of deployer and the date/time at which service was deployedstatus
command now reports the version of the most recently-deployed servicelogs
command enhancements--from
and --to
flags-n
(--number
) and --page
flags-n
flag is suppliedKinvey.initialize()
fixed to resolve with either an instance of Kinvey.User
or null
.micId
to the client_id
value when it makes a request to authenticate with Mobile Identity Connect.bencoding.securely
module then you will also need to provide an encryptionKey
to encrypt and decrypt the active user.Kinvey.init({
appKey: '<appKey>',
appSecret: '<appSecret>',
encryptionKey: '<encryptionKey>' // Key must be the same everytime. This is only required for the bencoding.securely module.
});
hard
equal to false
. Please refer to the User Guide for more information.Kinvey.initialize()
has been deprecated. Please use Kinvey.init()
instead. Kinvey.init()
does not return a promise.Warning If you start using Kinvey.init()
and have been using Kinvey.initialize()
you will not have an active user anymore. You will need to migrate the active user to the new storage location by continuing to use Kinvey.initialize()
. After the active user has been migrated you can replace Kinvey.initialize()
with Kinviey.init()
. You can also just logout using Kinvey.User.logout()
and ask the user to login again.
// --------------------------------------------------
// Example code snippet on how to migrate active user.
// ---------------------------------------------------
var promise = Promise.resolve();
// Initialize the SDK using Kinvey.init()
Kinvey.init({
appKey: '<appKey>',
appSecret: '<appSecret>'
});
// Check if you have an active user.
if (!Kinvey.User.getActiveUser()) {
promise = Kinvey.initialize({
appKey: '<appKey>',
appSecret: '<appSecret>'
});
}
promise
.then(function() {
// ...
});
_id
for an entity. #134es6-promise
to prevent Promise Undefiend
errors on environments that do not have a native promise implementation. #135message
property properly when logging errors to the console. #136usePopupClass()
as a static function to the User
class for registering a popup class to be used for MIC authentication.operation
property to results returned when pushing sync items to the backend. The property will either be equal to Kinvey.SyncOperation.Create
, Kinvey.SyncOperation.Update
, or Kinvey.SyncOperation.Delete
.var store = Kinvey.DataStore.collection('books', Kinvey.DataStoreType.Sync);
var query = new Kinvey.Query().equalTo('title', 'Kinvey');
store.remove(query)
.then(function(response) {
// response.count contains the count of books removed matching the query
return store.push();
})
.then(function(results) {
// Results is an array of responses from the pushing the sync items.
// Each result object now contains an operation set to Kinvey.SyncOperation.Delete
})
restore()
static function on the User
class to throw an error whenever it is called. This function required the master secret for an application. We strongly advise not to do this in your application.toJSON()
functions have now been replaced by toPlainObject()
. The returned result is the exact same.save()
, create()
, and update()
on datastore instances to no longer accept an array of entities. See the example below to see how to save an array of entities.var books = [{ name: 'book1' }, { name: 'book2' }];
var store = Kinvey.DataStore.collection('books');
var promises = [];
// Loop through each of the books and save them one by one.
// You can now reference a book easily in the event an error
// occurs when saving a book.
books.forEach(function(book) {
var promise = store.save(book)
.catch(function(error) {
console.log('Error saving book ' + book.name);
});
promises.push(promise);
});
// Using a third party library wait for all the promises to complete
RSVP.Promise.all(promises)
.then(function(books) {
// ...
});
remove()
and removeById()
on datastore instances to now return the count of entities removed and not the actual entity removed.var store = Kinvey.DataStore.collection('books');
// Remove books using a query
var query = new Kinvey.Query().equalTo('title', 'Kinvey');
store.remove(query)
.then(function(response) {
// response.count contains the count of books removed matching the query
});
// Remove a book using an id
store.removeById('1')
.then(function(response) {
// response.count will equal 1 if the book was removed or 0 if the book was not removed
});
init()
static function on Kinvey
namespace. This was deprecated with v3.3.3.baseUrl
, protocol
, and host
properties on a client
instance. These were deprecated with v3.0.0.syncCount()
and purge()
on CacheStore
and SyncStore
instances. These were deprecated with v3.2.0.Kinvey.Users
and Kinvey.UserStore
. These were deprecated with v3.2.0.instance
param was not respected when running config [instance]
in a fresh environmentconfig
against the default instance (under certain scenarios)User.lookup()
API to perform user discovery. #96401
status code. #101kinvey config
targets the default Kinvey instance for data link selection if a host is not provided (even if the CLI was previously configured with a custom host)Bugfix: Fixed push notifications on iOS. Since ti.cloudpush
is only supported on Android, it will now be ignored for iOS.
Bugfix: Fixed a compilation problem due to changes in RxJS
- a library used by the Kinvey SDK (details). The Kinvey SDK is now compiled with an older version of RxJS
, which avoids the problem.
ti.cloudpush
module correctly to fix push notifications on the Android platform.kinvey job
kinvey config [instance]
config
command now prompts for a new service on every run (fixed prior bug where it did nothing if saved data was already present)kinvey-flex-sdk
(instead of kinvey-backend-sdk
)logs
command now takes optional runtime arguments (instead of prompting for log filters)kinvey config acme-us1
)status
command (no arg command) crashed if supplied with an argumentUserStore
from correct path. Kinvey.UserStore
is now not undefined
.group
function to data stores.removeById
rather then the object { count: 1, entities: <entity> }
.https:
if one is not provided.logs
command