brainCloud Product Updates logo
Back to Homepage Subscribe to Updates

Product Updates

See the latest features, improvements, and product updates

Labels

  • All Posts
  • release
  • Announcement
  • Improvement
  • Fix
  • blog

Jump to Month

  • March 2025
  • January 2025
  • November 2024
  • September 2024
  • May 2024
  • February 2024
  • November 2023
  • September 2023
  • July 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • July 2022
  • June 2022
  • April 2022
  • March 2022
  • February 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • June 2021
  • May 2021
  • March 2021
  • November 2020
  • September 2020
  • July 2020
  • April 2020
  • February 2020
  • December 2019
  • November 2019
  • September 2019
  • June 2019
  • May 2019
  • February 2019
  • December 2018
  • October 2018
  • July 2018
  • March 2018
  • January 2018
  • December 2017
  • October 2017
  • July 2017
  • June 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • October 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • June 2014
  • May 2014
Changelog byAnnounceKit

Create yours, for free!

releaseAnnouncement
5 years ago

Release 4.5

Big things are happening with brainCloud in 2020. Here’s what you will find in 4.5.

The executive summary:

  • Shared Cloud Code Scripts (beta)
  • Global Files V3 API (beta)
  • Custom Entities Official Release + Templates!
  • Improved Room Server Support for Unity and Unreal!
  • Facebook Graph API v3.2
  • New (better!) Batch User Processing API
  • Updated UTC-based calls in Client Libs (see note immediately below)
  • and more!

Release Highlights

Shared Cloud Code Scripts (beta)

At long last, our initial version of shared scripts is available for use! No more copy-and-pasting functions from script-to-script or loading them into custom properties! 

Starting in Release 4.5, to include another script, you simply use the new bridge.include(“scriptname.ccjs”) operation.

For example – say you have this script:

MathFunctions script

function sumNums( num1, num2 ) {
  return (num1 + num2);  
}

function prodNums( num1, num2 ) {
  return (num1 * num2 );  
}

You can include it from another cloud code script very simply:

"use strict";

bridge.include("MathFunctions.ccjs");

function main() {
   var response = {};
   response.answer = sumNums(data.number1, data.number2);
   return response;
}

main();

The following rules apply:

  • A script can import multiple scripts (of course!)
  • The scripts must all be present within the app… (i.e. no including scripts from other apps)
  • bridge.include() calls must come first in a script. The only lines allowed to be before bridge.include() are blank lines, // comments, and/or the ”use strict”; directive
  • The extension is ignored by the call – but we recommend you append .ccjs anyway ← this may be helpful in the future (we have plans!) 

Note – we consider this a beta release. The syntax is safe (feel free to use it!) – but there are a few more kinks to work out in future releases, namely:

  • we don’t yet support arranging the scripts into sub-folders (coming soon!) 
  • we haven’t yet determined the best way to adjust our cloud code pricing. This capability will change the way devs use our scripts – opening the door to larger, more powerful scripts. We will need to adjust our pricing to accommodate the changes to server resource utilization. As always, anything we do will be cost-effective and elastic for our customers!

Global Files V3 API (beta)

We’ve got a new version of our Global Files API, with some significant improvements:

  • Support for Folders
  • Support for Uploads (i.e. migrating uploaded User Files → Global Files)
  • Full File Management API

Important notes:

  • Uploading of files is accomplished by Uploading a User File, and then migrating it to V3 Global Files. Note that we also included a method for migrating to the legacy Global Files as well.
  • The V3 API is a clean break from the older Global Files / S3 API – you can use either API (for now), but files are not shared between the two.
  • The V3 API does not have Design Portal support yet – so, for now, you would need to use the APIs to upload files, create directories, etc.
  • V3 Global Files are also not currently included in imports/exports and deploys.

Custom Entities – Official Release + Templates!

Custom Entities are now fully live in brainCloud (yay!) – which unfortunately means that we will now begin charging for them (boo!). For pricing details, see our Deep Data Pricing article.

Note – as part of this change, access to Custom Entities now requires a Plus plan. We needed to make this change due to the Custom Entity feature’s ability to handle very large datasets (even in Development) – which could incur very large storage and backup costs. Note that the $4.99 Development Plus plan does include support for Custom Entities.

As a refresher, Custom Entities are our new, super-charged improvement to both Global Entities and User Entities.

Custom Entities offer:

  • Custom Indexes for super-fast lookups
  • Deployment support for easy migration of entities between Dev and Prod apps
  • Owned vs. Un-Owned variations
  • ACL support
  • Time-to-live (TTL) support
  • Import / Export Support
  • Both Global and User Data Editors

And now – JSON Templates! You can now add a template for the data section of your type, along with a convenient field description. You can even use markdown! Super convenient when manually creating / editing entities!

Misc Changes

But wait – there is more! Release 4.5 also includes the following:

  • Improved Unity and Unreal Room Server support  –  Now with spiffy new S2S libraries. Check out the all-new docs for creating Room Servers using Unity and Unreal.
  • Facebook Graph API upgrade – we have updated our backend to utilize Facebook Graph API v 3.2
  • Batch Improvements – we have added a new Batch User Processing call that allows you to specify a script to run once all of the specified users have been processed. 
  • RTT Optimizations – Improved Event and Disconnect handling
  • Deep Data billing – usage billing for advanced data usage. Details in this article.

Portal Changes

We’ve made the following portal changes:

Design

  • Core App Info | Application IDs
    • Removed the [x] Enable Facebook Scores setting from the Facebook Platform options. Facebook’s APIs no longer support this functionality.
  • Cloud Data | Custom Entities
    • Added the ability to define (and describe) custom JSON templates for entity data.
    • Important: A Plus Plan is now required to access this screen.
  • Gamification | Achievements
    • Removed the [Facebook Register Achievements] button from the main screen, as well as the Facebook specifics from the sub-screens. Facebook’s APIs no longer support this functionality.

Monitoring

  • Global Monitoring | Custom Entities
    • Updated the Create and Edit entity screens to support the new JSON templates.
    • Important: A Plus Plan is now required to access this screen.
  • User Monitoring | Custom Entities
    • Updated the Create and Edit entity screens to support the new JSON templates.
    • Important: A Plus Plan is now required to access this screen.

Reporting

  • Analytics
    • Split out and corrected the Total Users vs. Total Dormant Users stats.
  • API Usage
    • Added a new Deep Data Usage section.

General

  • Login / Registration
    • The Registration page is now more mobile-friendly.
  • Personal Preferences
    • Timezones are now specified via a region/city – hopefully no more issues when Daylight Savings Time changes!
  • Portal Version
    • We are now prefacing our Master Release versions with “R”. 

API Changes

As mentioned in the executive summary, we found inconsistencies in the client-implementation of some of our time-based calls. 

The following methods have thus been deprecated in the 4.5 libraries:

  • Leaderboard
    • PostScoreToDynamicGroupLeaderboard() – deprecated in favor of PostScoreToDynamicGroupLeaderboardUTC()
    • PostScoreToDynamicLeaderboard() – deprecated in favor of PostScoreToDynamicLeaderboardUTC()
    • PostScoreToDynamicLeaderboardDays() – deprecated in favor of PostScoreToDynamicLeaderboardDaysUTC()
  • Tournament
    • PostTournamentScore() – deprecated in favor of PostTournamentScoreUTC().
    • PostTournamentScoreWithResults() – deprecated in favor of PostTournamentScoreWithResultsUTC()
  • Script
    • ScheduleRunScriptUTC() – deprecated in favor of ScheduleRunScriptMillisUTC()

In addition, the following new methods have been added to brainCloud API:

  • Bridge
    • There is a new GetAppVersion() call in the bridge to retrieve the version of your app (as provided by your app to the client library). Handy!
  • GlobalFile (New V3!)
    • Client APIs – GetFileInfo(), GetFileInfoSimple(), GetGlobalCDNUrl(), GetGlobalFileList(), 
    • The following methods are available from cloud-code only:
      • File retrieval – SysGetGlobalCDNUrl(), SysGetGlobalFileList(), SysGetFileInfo(), SysGetFileInfoSimple()
      • File management – SysCopyGlobalFile(), SysDeleteGlobalFile(), SysDeleteGlobalFiles(), SysMoveGlobalFile()
      • Folder management – SysCreateFolder(),  SysDeleteFolder(), SysLookupFolder(), SysMoveFolder(), SysRenameFolder()
    • Special mention – the SysMoveToGlobalFile() method can be used to copy/move a UserFile to a GlobalFileV3 file.
  • S3 Handling
    • We’ve added SysMoveToLegacyGlobalFile() to support moving a User File to the Legacy Global File system.
  • Script
    • There are 3 new S2S APIs for running batch scripts on users with a completion scriptat the end:
      • RunBatchUserScriptAndCompletionScript() targets all users
      • RunBatchUserScriptForProfilesAndCompletionScript() targets specific users (specified via profileId)
      • RunBatchUserScriptForSegmentsAndCompletionScript() targets the users in specific segments.

Miscellaneous Changes / Fixes

  • Updated Client Libraries
    • All supported libraries have been updated with the latest API enhancements. Go get ’em!
    • Important Client Library Fixes
      • BCLD-5686 – Automatically remove the trailing “/” if set by the client in serverURL
      • BCLD-5718 – UTC fixes for all libs
      • BCLD-5772 – Change the comms packet timeouts from 15,10,10 to 15, 20, 35, 50
  • New S2S Libraries
    • New C#/Unity and Unreal S2S Libraries
  • Documentation updates
    • All new 4.5 APIs added to API Ref
    • New Knowledgebase Articles:
      • Custom Multiplayer Server with Unity
      • Custom Multiplayer Server with Unreal
      • Custom Entities
  • Important Server Fixes
    • BCLD-5749 – Special characters in email or universal ID addresses were not being encoded correctly during URL creation
    • BCLD-5748 – Both “identifier” and index keys (keysJson keys) need to allow period (.) in the Custom Entity configs
    • BCLD-5787 – ‘Reference Price’ displayed in the Transaction screen is incorrect
    • BCLD-5743 – Update APIServer containers to Tomcat 8.5.51 to fix Ghostcat vulnerability
    • BCLD-5620 – Add cloud code support for various PushNotificationService methods
    • BCLD-5779 – Remove double logging of tournament service errors
    • BCLD-5763 – Optimized RTT Event Handling
  • Plus miscellaneous fixes and performance enhancements…