Minor release - brainCloud 5.4.1
brainCloud 5.4.1 isn't a full release - but there have been enough tweaks and improvements to warrant a page describing them.
Features and Improvements
PlaybackStream Protect API
brainCloud 5.4 added Sys APIs for PlaybackStreams - to make them more convenient for use as ghost players, community members in hub worlds, etc.
A challenge, however, is that PlaybackStreams are automatically deleted 90 days after creation. This may not be desirable in all use cases.
To address this, we have added new APIs to "protect" a stream from automatic deletion for a <x> number of days. This API can be called periodically to keep specific playback streams around in perpetuity... (For example - a cloud code script could be written to run daily to protect the "featured" replays of the system for <x> days into the future).
The new calls are ProtectStreamUntil()
and SysProtectStreamUntil()
.
Apple Receipt Validation Improvements (and a new warning)
We have addressed a scenario where brainCloud was not validating the bundle id for old legacy-style receipts -- even if the bundle Id has been correctly entered on the App > Design > Core App Info > Application IDs page. This has been fixed.
That said - we remind devs that the Bundle ID field, although optional, does allow brainCloud to further validate that the receipt provided is from proper app. It is highly recommended that developers using Apple's AppStore for In-App Purchases fill in this value!
To encourage the use of the field, we have added a new warning for Apple purchases made without validating the bundle ID. The warning includes the bundle ID present in the used receipt.
The message looks like this:
Purchase security warning - iTunes bundle id should be set for greater security. Purchase with bundle id '<bundle-id>' still processed.
You can search for these warnings using the following log filter:
- service: appStore
- operation: VERIFY_PURCHASE
We have added a new warning message to the system as a reminder to fill it in and as a confirmation of what bundle ID was currently used. Developers can use the warning to confirm what value should be entered on the page and look for fraudulent entries.
View Leaderboard and Group users in a separate tab
We have expanded our UI paradigm to allow viewing users in a separate browser tab - without otherwise losing the context of where the team member is in the Portal.
For now we have added this feature to just the Leaderboard and Group screens - but we'll be adding more support in coming releases.
Miscellaneous fixes and improvements
Server fixes and improvements
- BCLOUD-7437 - Fixes to user rate limiting
- BCLOUD-8468 - Server request-response log - add incoming IP to ERROR MESSAGE instead of RESPONSE
- BCLOUD-8869 - Add support for existing filters to the export functionality
- BCLOUD-9262 - Performance improvement: now reading shard count at beginning of matchmaking run
- BCLOUD-9285 - Change to the "never" Global Entity expiry value to prevent issues in javascript
- BCLOUD-9315 - Added new PlaybackStream APIs: ProtectStreamUntil, SysProtectStreamUntil
- BCLOUD-9356 - Modified support for CANCEL_FIND_REQUEST to require an entryId to work; without it the call is a no-op
- BCLOUD-9357 - Increment user's failedRedemptionsTotal for each RedeemCode attempt after being locked out
- BCLOUD-9358 - Removing support for lobby entry queue v2 (everyone is on v3 now)
- BCLOUD-9378 - PortalX is loading uppercase email address and the Server is not automatically lowercasing it
- BCLOUD-9379 - Spelling mistake in Amazon IAP error message
- BCLOUD-9386 - Global Entities count on list screen including expired entities
- BCLOUD-9390 - Bug fix for treating a full team as a full lobby during lobby join
- BCLOUD-9393 - Builder API Create a cloud code script returned error
- BCLOUD-9398 - Builder API Team Level - Fix for out-of-date updatedAt value
- BCLOUD-9400 - Request/Response entry pairs not matching on sequenceId
- BCLOUD-9411 - Log all APP packetId-related errors as APP WARNING (not APP ERROR)
- BCLOUD-9425 - Added missing ENV variables for Edgegap servers
- BCLOUD-9447 - Compress cached last response if size is greater than maxLastResponseSizeBytes
- BCLOUD-9483 - Add pre-truncated request size to log when truncating it
- BCLOUD-9508 - Updated billing logging
- BCLOUD-9513 - Billing fixes… (had mistakenly treated some values at bytes instead of straight counts)
- BCLOUD-9528 - less strict on Lobby RemoveMember and UpdateSettings
- BCLOUD-9532 - optional (via brainCloud Property) logging of downloads
- BCLOUD-9542 - Validate range parameter in file servlet rather than passing on to CDN
- BCLOUD-9568 - Added ‘skip_telemetry’ parameter to Edgegap session creation
- BCLOUD-9581 - Added legacy sandbox receipt bundle id validation
Portal-X fixes and improvements
- BCLOUD-9336 - Fix issue in displaying brainCloud properties that have been overridden
- BCLOUD-9361 - Hide RTT session chart on App Dashboard if RTT is not enabled
- BCLOUD-9365 - When creating global entities, the entity type should be selected by default
- BCLOUD-9370 - Fixed sort order in Server Monitor screen
- BCLOUD-9371 - Fixed percentage errors display in Script Usage panel
- BCLOUD-9377 - Added toast message failures during Export Configuration
- BCLOUD-9385 - Fixed Global Entities Export
- BCLOUD-9405 - Improvements to Universal Search SCREEN results presentation
- BCLOUD-9406 - Global Files - fixed issues around recovery folder
- BCLOUD-9407 - Updates and fixes to user request+response logs
- BCLOUD-9408 - Add the ability to view player/group in a new window/tab
- BCLOUD-9414 - Fix to display job results for all run states except Scheduled
- BCLOUD-9426 - Show “Loading…” for screen title text when loading screen data
- BCLOUD-9438 - Fixed issue with modal popup when no folders are present.
- BCLOUD-9439 - Fix issues in Global Files File Path & File Tree
- BCLOUD-9512 - Fixed Number (decimal) field issue in brainCloud Properties Dialogs
- BCLOUD-9582 - Addressed vulnerability CVE-2022-25927
- Plus - fixed formatting of available funds value in Team Billing info