Message:

Monthly Archives

February, 2015

Backendless supports multiple ways to perform a geopoint search. You can search in radius, a rectangular area and there is a search with an SQL query. Additionally, there is a way to search on partial metadata match. This type of search can be combined with all other aforementioned search types. A partial match search will return geopoints whose metadata matches the values specified in the query for the specified (or greater) number of percent. Consider the sample geodata from the article on how to import geodata from a CSV file. The imported data is rendered as shown below in Backendless console:

Continue reading

Previously I wrote about importing data table schemas, relations and data objects to Backendless with CSV files. The data import feature can also work with the geolocation storage. The process is extremely simple – browse to a CSV file with the geolocation data and let Backendless process it. A file you import may include as many geopoints as you need. For each geopoint you can provide the latitude and longitude coordinates, the categories the data point should belong to and the geopoint metadata. Consider the following example of a geolocation CSV file:
[table “” not found /]

Geolocation CSV files must follow the following structure:

  • latitude column
  • longitude column
  • category names. The entire string must enclosed into double quotes. Category names must separated by commas.
  • metadata in the key=value format. Multiple key/value pairs must be separated with the pipe character – |
To import geolocation data:
  1. Login to Backendless console, select your app and click the Manage icon.
  2. Click the Import menu.
  3. Click the add file button for the Geo Service section.
  4. Browse and open a CSV file with the geolocation data

Once Backendless completes the import of the data, it sends an email to the application developer email address with a status report about the import procedure. If all the data is successfully processed, you can see it in the geolocation screen of Backendless console. For example, the data from the table shown above is rendered as:

In my post yesterday I wrote about unlimited API calls for all Backendless apps. That means your application can make as many API requests as it needs during a billing period, which is one month even if the app is on the free plan. This also means all of the calls could be spread out over time, but there may also be spikes of traffic – an increase of the number concurrent transactions handled by the backend. You may often see with other mBaaS platforms that they limit your apps to XX requests/second or worse yet start charging you for increasing that XX number. An important distinction of our service is we do not limit the number of the concurrent calls, that’s right, with Backendless you get unlimited, un-throttled requests per second.

Enjoy!

Posted in Feature-a-Day

As I am continuing my endeavor to describe all Backendless features, I wanted to step back and look at it differently. Not at the micro-technical level where I typically show an API or something you can do in our console, but something more fundamental. Something that differentiates Backendless in its core. There is one thing we hear very frequently from the customers who switched to Backendless from other mBaaS platforms. Yes, they do talk about pathetic customer support that Parse provides or the lack of usability of Kinvey, but there is one thing our customers absolutely love – unlimited API calls. To many this may not even sound like a technical feature. And, yes, it is a business value proposition. However, it is by far one of the most complex technical features we have to offer. Being able to manage computing resources to provide such a guarantee is not easy, but we figured out how, and we’re doing it. So yes, please enjoy your unlimited API calls with Backendless – we’re happy to have you as a customer.

Posted in Feature-a-Day

In one of my previous posts I wrote about how to load data from the Backendless mbaas server using paging. In fact, data paging is only one of the features available in the data loading API. In this post I am going to show how to fetch data objects with sorting. The sorting option can be combined with any other data loading feature. For example, you could have both sorting and the “where clause” in your data loading request. For this example, I am going to use the Restaurant-to-go app schema.

Continue reading

Previously I described how to upload files to Backendless file storage using File Service API. In addition to the file upload API, Backendless console supports online (built into the console) text editor. The editor lets you create new files with just a click of a button:

  1. Login to Backendless console, select your app and click the Files icon.
  2. Browse to a directory where the file should be created and click the New File button from the toolbar.
  3. Enter the name of the file and select a syntax highlighter.
  4. As you edit the file, the editor can also highlight syntax errors for most document types:
  5. Click Save to save the file. It immediately becomes available for download.

The use-case for updating a user account is rather frequent. Either the user herself or the admin may need to update user properties. Backendless provides the API for updating user accounts, although app admins/developers can do it using Backendless console as well. The code below demonstrates the API for updating a user:

Continue reading

It has happened to a lot of people, especially with the online banking applications – you try logging in a couple of times and get your password wrong. Then the screen changes saying the account is locked out and you need to try again in XX minutes. If this is the behavior you would like your app to have, it could not be easier to set up with Backendless:

  1. Login to console, select your app and click the Users icon.
  2. Click the Login menu.
  3. You will see two sections on the screen: Lock User Account and Unlock User Account:
  4. The Lock User Account controls how many unsuccessful logins would be tolerated by the backend before the account is locked out. Use the slider to adjust the value. There is also an option to allow unlimited unsuccessful logins.
  5. The Unlock User Account controls the amount of time a user has to wait before the account is unlocked and the user can try logging in again.

Can you think of an easier way to configure it? ) Enjoy!

Previously I reviewed how to use user registration API to register users for an app. When registering a user your app sends to the server a collection of user registration properties. Values for these properties typically come from a registration form in your app. Some form fields may be required and have a special validation logic. To assist with these use-cases Backendless provides a very simple way to enforce these rules on the backend. In this post I review the process of configuring registration properties as required. Once you do that, any registration API request which does not include a required property is rejected by the server with an error.

Continue reading

In my previous posts I wrote how to create developer-defined security roles and how to secure data table access for a security role. Ultimately when a client application makes API requests, the security evolves around users, since it is a user who authenticates himself against the system. A user may have roles assigned to him or her and in that case any permissions granted (or denied) to a role would be applicable to the user as well. In this article I will review how to assign roles to users using Backendless console. Keep in mind that these assignments can also be done using API and I will be writing another article in this series on that feature as well.

The instructions below assume you already have some users registered for your app or created using console. Also, you need to have at least one custom security role. To assign roles to users:

  1. Login to Backendless console, select an app and click the Data icon.
  2. The Users table should be selected by default. Click the checkboxes for each user object for which you would like to assign roles.
  3. Click the User Roles button in the button toolbar.
  4. Console displays the User Role Management popup. Using the popup you can assign available custom roles to the selected users. Click the checkboxes for the roles to assign and click the Save button.

The same User Role Management popup can be used to edit role to user assignments. The dialog is smart enough to handle multiple user selection and will properly display conflicting assignments using the three-state checkbox.