Release 2.24.0

We’ve got a smaller release for you this time. We’ve got a few bigger features cooking in the fires –  but in the meantime we thought we’d push out a few of the polish items and customer requests that we have queued.

Release Highlights

Authy OneTouch

We have enhanced our Two-Factor Authentication implementation to take advantage of Authy OneTouch for those users who are using the Authy App. It’s super convenient – no codes to enter! Just click [Approve] to confirm your login.


Customer API Requests

We’ve also released a few API enhancements at the request of some key customers. There are updates to Groups, Identities and the Cloud Code bridge. We hope you like them!


Portal Changes

We’ve made the following portal changes:

  • Login
    • During Two-Factor Authentication you’ll notice the red One Touch meter. It tells you that we’ve detected that you have the Authy app, and have sent a request that you can simply [Approve] without having to enter the authentication code.
      Note: The login screen will stop monitoring for One Touch approval after 5 minutes, after which you can still enter the verification code.
  • Power | Edit User
    • To ease the burden of 2FA, our login process optionally allows you to flag a device as trusted, so you won’t need to re-verify for 30 days. But what if you mistakenly hit that option when logging in from a public computer? Witness the new [Clear Trusted Devices] option on the Two-Factor tab of the Edit User dialog. Ta-dah! 🙂
    • Team Administrators can now unlink Two-factor Authentication from other user’s accounts (allows self-fixing of TFA-issues should they arise)
  • General
    • Minor updates (for clarification and consistancy) to icons used throughout the portal.


API Changes

The following changes/additions have affected the brainCloud API:

  • Cloud Code Bridge
    • New GetProfileId() method returns the profile id of the current user. Saves having to call to the PlayerState proxy for the information.
    • New GetName() method returns the name of the current user
    • New GetEmail() method returns the email address of the current user
  • Groups API
    • Updated GetMyGroups() method to additionally return groups that you have been invited to and have requested to join.
  • Identity API
    • New GetIdentities() method returns a list of the non-anonymous identities associate with the current profile. This method is useful to learn if the user has already associated a Facebook account with their profile, for example.
    • New GetExpiredIdentities() method returns a list of identitities with the current profile whose authentication tokens  that have expired (and should be refreshed)

We have also deprecated the following methods:

  • Authentication Service
    • Deprecated GenerateGUID() and GenerateNewAnonymousId() – replaced with GenerateAnonymousId() method, which works in a more consistant manner.

Miscellaneous Changes / Fixes

  • Updated libraries
    • All libraries have been updated with the latest API enhancements. Go get ’em!
  • Documentation updates
    • Added Versioning overview to the Appendix summary of the API REF docs
    • Updated AsyncMatch documentation
    • Updated Leaderboard documentation
    • Better pre-hook cloud code examples
  • Source updates
    • Removed JSON return data from the client source code, since that data is now included (and more likely to be up-to-date) in the API REF documentation
  • Important Fixes
    • During login, if user’s timezone has changed, the user’s timezone as recorded in segments is updated as well
    • Fix to Facebook purchase handling which could sometimes cause virtual currencies to be awarded twice in some circumstances
    • Added Facebook real-time payments transactions to the request logs
  • Plus miscellaneous fixes and performance enhancements…


Release 2.23.0

Release Highlights


This release delivers six new features:

  • Groups! (i.e. Clans!) – allow your users to clan-up for greater socialization and competition!
  • 2FA for Teams! An extra level of security for your development accounts.
  • Scheduled Push Notifications! Deliver that message at exactly the right time no matter what timezone your users are in.
  • Universal Windows Support – we have a new C++ library for Universal Windows Platform (UWP) apps.
  • Xamarin Support – we have new iOS and Android libraries for Xamarin!
  • watchOS Support – built native apps on watchOS using brainCloud!

Plus the usual assortment of API and library improvements. Note that all client libraries have been updated to the latest, except Javascript, which will be updated and released mid-next-week (week of Friday May 18th).

Read on for all the details.

Release Highlights

Groups (i.e. Clans)

Although you’ve always been able to write your own clan system in brainCloud using Global Entities and Cloud Code, we thought it was about time that we lent a hand – reducing the coding burden, and adding great tools support at the same time.

This feature provides an API that allows users to dynamically create, join and manage Groups.

Groups have the following characteristics:

  • Groups are a combination of a collection of users, plus some shared data about those users
  • Groups in brainCloud are organized by Group Type. The developer defines a Group Type, setting certain rules such as maximum # of members, and the action to take if a Group’s owner is deleted.
  • There are three built-in roles – owner, admin and member
    • Groups are owned by a single user – but can have additional admins
    • Only the owner of a group may delete it. Owners may leave a group only if they re-assign ownership to another user.
    • Group membership can be open or closed. Open groups can be freely joined by anyone. Closed groups require an owner or admin to invite or approve join requests.
    • Groups can associate additional attribute data with members – which can allow for additional developer-defined role types (i.e. think ranks in Clash of Clans – Leader, Co-Leader, Elder, Member, etc)
    • A user can be a member of more than one Group. (Limits can be imposed by the developer, of course).
  • Group data is a JSON object associated with the group. Access to the data is controlled by the group ACL.
  • Groups can also own a set of entities (i.e. Group Entities) for more complex data needs. Group Entities can be owned by the group as a whole, or by individual members within a group.
  • Group membership can be used for leaderboard retrieval

For more information re: brainCloud group support, refer to the Group API Reference Page .


Two-factor Authentication (for Team Members)

brainCloud’s Two-Factor Authentication (2FA) support allows you to tie your phone to your developer account for extra security and peace-of-mind.

We’ve chosen to use Twilio’s Authy technology for our 2FA implementation – it works similarly to Google Authenticator, but gives more options in terms of authentication (text, voice, or app) and offers better management of verification devices.

Hooking up 2FA to your account couldn’t be simpler:

  • Choose Edit Profile from the top-right Power menu of the brainCloud Portal
  • Go to the new Two-factor tab
  • Click on the green [Click to Enable 2FA] button and follow the prompts!


For more information, refer to the Enabling 2FA page in our documentation.


Scheduled Push Notifications

Through the magic of scheduled cloud code and our push notification API, it’s always been possible to schedule push notifications to happen at a precise time. But – what if you want to send notifications to a segment of users, and ensure that those notifications get sent at a standardized local time – say 9am, for each of the users, regardless of their timezone? That was much, much harder.

Until now. Our new Schedule Push Notification interface allows you to specify a local time to send all notifications at. brainCloud will then automatically create the appropriate set of scheduled push notification jobs – one for each timezone involved – and then automatically send the notifications at the appropriate time for each group of users.

It’s extremely powerful, and very simple to use. Check out the new S2S API calls here.


Universal Windows Platform Support

We’ve created a new C++ library with support for Universal Windows Platform apps. And we’re making the library available via nuget as well. Stay tuned for more details.


Xamarin Support

With it’s recent acquisition by Microsoft, and integration into Visual Studio, we’re finding tons of interest in Xamarin support for brainCloud. We’re pleased to announce the availability of the brainCloud Xamarin.ios and libraries!


watchOS Support

Apple has announced that moving forward, all new and updated watchOS apps must be native. We are here to help, so we’ve built a new version of the brainCloud library that runs natively on watchOS 2. You’re welcome!


Portal Changes

The first thing you will notice is that we have re-ordered the tabs of the Design section of the portal to be mostly alphabetical (we still kept the Core App Info section at the top). We’ve added (and continued to add) so many features to brainCloud, going alphabetical seems like the only way to keep things easily findable.

In addition, we’ve made the following portal changes:

  • Power | Edit User
    • Moved the Password section to a separate tab for clarity.
    • Added a new Two-Factor tab for enabling Two-Factor Authentication (2FA).
  • Admin | Team Members
    • Added a 2FA column so that you can confirm which team members have enabled Two-Factor Authentication for additional security.
  • Design | Cloud Code | Scripts
    • The scripts screen is now sortable according to the date+time that the scripts were last updated.
  • Design | Groups
    • The new Group Types screen to allow you to define that types of groups that your application will support. Configuration information includes the maximum # of users allowed per group (default is 50 – contact us if you need higher), and what the system should do if the owner of a group is deleted.
  • Monitoring | Global Monitoring | Jobs
    • Added support for viewing Scheduled Push Notification jobs.
  • Monitoring | Group Monitoring
    • Added new Group Monitoring section to allow you to view and manage an application’s global user groups
    • The Groups screen presents a list of all groups, filterable by type of group. You can view the details of a Group by clicking on it – you can even edit the Group’s json-data.
    • The Group Entities screen displays a list of entities associated with groups. The list is filterable by entity type and/or group id.
      Pro-tip – to clickly see a group’s entities, look up the group in Group Monitoring first, and then choose “View Group Entities” from the action menu.
  • Monitoring | User Monitoring | Groups
    • Shows the groups that a user is a member of, together with details about the group and the user’s membership.


API Changes

The following additions / changes have been made to the brainCloud API:



Miscellaneous Changes / Fixes

  • New/updated libraries
    • New Universal Windows Platform (UWP) C++ libs
    • New iOS and Android Xamarin libs
    • New watchOS libs
    • Upgraded version of OpenSSL in C++ libs
  • Fixes and changes
    • Pre-hook cloud-code methods can no longer directly call the API that invoked them (prevents recursion loops!)
  • Documentation Updates
    • Migrated reason codes over to new API Ref docs
    • Improved performance of new API Ref docs — Table-of-Contents now cached
    • API doc links in API explorer moved to new API Ref
    • Tutorials upgraded to link to new API Reference
    • New error handling tutorial
  • Miscellaneous defect fixes
  • Miscellaneous performance improvements