Releases: casual-simulation/casualos
Releases · casual-simulation/casualos
V0.9.17
Changes:
- Improvements
- Added the ability to execute remote events on the server.
- This lets us do all sorts of administrative tasks while keeping things secure.
- These events are sent via scripts.
- Depending on the action, it may only be possible to execute them in the correct channel. For example, executing admin tasks is only allowed in the admin channel to help prevent things like clickjacking.
- The following functions are supported:
- Admin channel only
server.grantRole(username, role)
: Grants the given role to the user account with the given username if the current player is an admin.server.revokeRole(username, role)
: Revokes the given role from the user account with the given username if the current player is an admin.server.shell(script)
: Runs the given shell script on the server if the current player is an admin.
- Admin channel only
- Improved the login system to dynamically update based on changes to the admin channel.
- This lets us do things like lock user accounts or tokens and have the system automatically handle it.
- It even supports formulas!
- The login system uses the following tags on bots in the admin channel:
aux.account.username
: This tag indicates that the bot is a "user account" bot for the given username.aux.account.roles
: This tag indicates which roles an account should be granted.aux.account.locked
: This tag indicates whether the account is locked and that logging in using it should not be allowed.aux.token
: This tag indicates that the bot is a "token" which can be used to login to a user account.aux.token.username
: This tag indicates the username of the user account that the token is for.aux.token.locked
: This tag indicates whether the token is locked and therefore cannot be used to login to the account.
- Improved the login system to automatically give guests the
guest
role.- This allows blocking guests via the
aux.blacklist.roles
tag on the channel config file.
- This allows blocking guests via the
- Improved the channel system to only allow loading a channel if it has been created via a bot in the admin channel.
- This lets admins control which channels are accessible.
- The admin channel is always accessible, but only to admins. This is a safety measure to prevent people from locking themselves out.
- To make a channel accessible, load the admin channel and create a bot with
aux.channel
set to the channel you want andaux.channels
set totrue
. - Alternatively, load the channel you want and click the
Create Channel
toast that pops up. (only works if you're an admin)
- Added the ability to view and control how many sessions are allowed.
- Allows setting a max sessions allowed value for channels and the entire server.
- Per-Channel settings go on the channel file in the admin channel.
- The
aux.channel.connectedSessions
tag indicates how many sessions are active for the channel. - The
aux.channel.maxSessionsAllowed
tag specifies how many sessions are allowed for the channel. Admins are not affected by this setting. If this value is not set then there is no limit.
- The
- Global settings go on the
config
file in the admin channel.- The
aux.connectedSessions
tag indicates how many sessions are active for the server. - The
aux.maxSessionsAllowed
tag specifies how many sessions are allowed for the entire server. Admins are not affected by this setting. If this value is not set then there is no limit.
- The
- Added the ability to query the status information from the server.
- Requests to
/api/{channelId}/status
will return a JSON object containing the current number of active connections for the channel. - Requests to
/api/status
will return a JSON object containing the current number of active connections for the server.
- Requests to
- Changed
aux.inventory.color
tag toaux.context.inventory.color
, and allowed the editing of the invenroty color to be done in the context bot's tags. - Added an
aux.context.inventory.visible
tag to toggle the player inventory on and off, it will default to visible. - Reduced width of player inventory and added a left alligned line to it's left side.
- Gave the player inventory the ability to be set by a user set inventory context tag.
- Added a width maximum to the player inventory.
- Added in the
onAnyBotClicked()
function to fire an event when any bot in the scene has been clicked.
- Added the ability to execute remote events on the server.
- Bug Fixes
- The player's background context color can now be set via fomula.
- Fixed scripts to remove deleted files from queries like
getBots()
orgetBot()
. - Fixed the login screen to hide the loading progress when the user needs to scan the token from their other device.
- Improved the JavaScript sandbox to prevent common infinite loops.
- Loops in JavaScript code now have an energy cost of 1 per iteration.
- By default, each formula/action has an energy of
100,000
. - Shouts get their own energy value set at
100,000
. (for now - so it's still possible to get around the energy limit by shouting back and forth) - Exceeding the energy limit causes the formula/action to be terminated so that the application doesn't get locked up.
- Corrected misspelled tag name in the tag dropdown list.
- Fixed positioning issue with setting
aux.label.anchor
via an interaction.
V0.9.16
Date: 07/22/2019
Changes:
-
Improvements
- Added ability to use the enter key on the new tag dropdown to autofill the tag.
- The webpage's tab name will now display the channel's ID in designer and the Context name and ID in Player.
-
Bug Fixes
- Added another Wall3D optimization with a geometry disposal.
- Added a null check to stop an error when trying to drag specifically removed bots.
- A mod object will no longer change it's mesh scale while being dragged.
- Fixed an issue that would happen if a file was updated and deleted in the same script.
V0.9.15
Date: 07/18/2019
Changes:
- Improvements
- Selecting a tag from the tag suggestions list will now automatically add the tag on click.
- Added a plus sign to the
Make mod from selection
butotn's icon.
- Bug Fixes
- Improved Wall3D performance, should no longer take up most memory allocation.
- Clicking on a bot will no longer have the mereg ball appear for a second in the file count.
V0.9.14
Changes:
- Improvements
- Added a login system
- Users are first-come first-serve.
- Upon login your device will generate a token that is used to authenticate the device for that user account.
- Because this token is unique and secret you must use the new "Login with Another Device" feature in the side menu.
- This will show a QR code that can be scanned after trying to login with the same username.
- Users can be granted roles via their bot in the
admin
channel.- These roles can be used to allow or deny access to channels.
- Users that have the
admin
role are allowed access to every channel. (and bypass the blacklist and whitelist)
- Upon login your device will generate a token that is used to authenticate the device for that user account.
- The server now decides if a user is able to load an aux.
- This means that the server checks
aux.blacklist
andaux.whitelist
before sending the data. - The following tags have been added to check whether a user is allowed access based on their roles.
aux.whitelist.roles
: Specifies the list of roles that users must have all of in order to access the channel.aux.blacklist.roles
: Specifies the list of roles that users must not have any of in order to access the channel.
- By default, the
admin
channel is set to allow only users with theadmin
role.
- This means that the server checks
- Users are first-come first-serve.
- The login screen now remembers which users you have logged in with previously.
- Because tokens are saved on the device it is important to save users and only remove them if explicitly requested by the user.
- The
aux.line.style
tag's wall settting will now dynamically scale with bot height and bot stacking. - The inventory viewport now no longer accepts panning input, it will now only zoom and rotate.
- Added in an
aux.line.style
tag that changes the design of theaux.line.to
line. - Added in a resize sheets button to set sheet's to full page width at all times.
- Added in an
aux.line.width
tag that changes the width of theaux.line.to
but only the wall style for now. - Resize the sheets button is now on the far left of the sheets buttons.
- Added a new
Make mod from selection
button to the sheet's buttons. - Clicking off of the sheets will now always revert the selected item to an empty bot.
- Clicking the
enter
key on a selected tag will automatically open up thenew tag
input section. - Clicking the
escape
key when thenew tag
input section is up will close the input section. - The
new tag
input section will now be left alligned in the sheets. - The tag section buttons will now appear below the bot content in the sheets.
- Moved the sheet's
Toggle Size
button to the right side of the sheet.
- Added a login system
- Bug Fixes
- Fixed
create()
to dissallow overridingaux.creator
when a creator is specified. - The center button will no longer effect the rotation in channel designer's viewport.
- 'Enable AR' button no longer shows up in iOS Chrome which is currently unsupported.
- Fixed AR rendering for both AUX Designer and AUX Player.
- Fixed the login page to redirect to Channel Designer if the user refreshes the page while on the login screen.
- Fixed an issue that would cause
player.currentContext()
to be undefined if it was accessed insideonConnected()
. - Fixed the link to the
aux-debug
page in Channel Designer. - Fixed an issue where formulas which had circular dependencies would cause other tags referencing the circular tag to not update.
- Fixed the parsing logic for filter tags to support curly quotes. (a.k.a. "Smart Quotes" that the iOS keyboard makes)
- Adding a new tag to a bot will now automatically focus the new tag whereas before it would not focus it.
- Fixed the file table to not interrupt the user's typing when tag value updates are processed.
- Fixed
- Security Fixes
- Updated the
lodash
NPM package to4.17.14
to mitigate CVE-2018-16487.
- Updated the
V0.9.13
Changes:
- Improvements
- Reordered the context menu list to new specifications.
- Renamed several items in the context menu list:
Open Context
toGo to Context
andSelect Context Bot
toEdit Bot
. - Added in an
aux.line.style
tag that changes the design of theaux.line.to
line.
- Bug Fixes
- The
aux.context.locked
will now be properly initially set via the create context popup's tick box.
- The
V0.9.12
Changes:
- Improvements
- Added a rotation option to
player.tweenTo
, users can now define anx
andy
rotation to define which way the camera views the bot. - New context popup opens with
aux.context.locked
set to false and the text has been change toLock Context
. - Changed
aux.mod.tags
toaux.mod.mergeTags
. - Renamed
aux.movable="mod"
toaux.movable="cloneMod"
. isDiff
function no longer checks foraux.mod.mergeTags
when determining weather a bot is a diff or not.- Added the
aux.listening
tag to disable a bot accepting shouts or whispers if it isfalse
. - Removed the
context_
prefix of the default generated name of new contexts.
- Added a rotation option to
- Bug Fixes
- The cube that appears on empty bot will now be properly sized.
- The center inventory button will now appear when intended.
- Fixed typo on the
Requesting site ID
text. - First entered letter on a new bot's label not appearing had been resolved.
- The function
onCombine
should not trigger when dragging on a stack of bots but a warning message explaining this has been added it this is attempted. - Dragging the inventory top to change its size will no longer cause the Google Chrome mobile app to refresh the page.
- Added in a tween override when user attempts input during a tween that will stop the tween immediately.
V0.9.11
Changes:
- Improvements
- Added two new functions that can be used to open URLs.
player.goToURL(url)
: Redirects the user to the given URL in the same tab/window.player.openURL(url)
: Opens the given URL in a new tab/window.
- Added two new functions that can be used to open URLs.
- Bug Fixes
- Fix actions that edit files which get destroyed to not error and cause the rest of the action to fail.
V0.9.10
Changes:
- Bug Fixes
- Make the sandboxed iframe fix check if the OS is iOS in addition to checking for Safari. This detects Chrome iOS and therefore applies the workaround.
V0.9.9
Changes:
- Bug Fixes
- Make our minifier output ASCII so that Safari can load the web worker from a blob. (which apparently requires ASCII)
V0.9.8
Changes:
- Improvements
- Can now click on and drag multiple files at a time, one for each VR controller.
- Bug Fixes
- Fixed loading on Firefox browsers.
- Added special case for Firefox browsers to ignore the use of browser crypto since it seems to cause errors despite it being supported.
- Always render VR controllers, even if they are not in view of the camera.
- This makes sure that you can still see controller pointer lines and cursors even if you are holding the controller out of view.
- Fixed loading on Safari by allowing the sandboxed iframe to do more than it should be able to.
- Related Bug: https://bugs.webkit.org/show_bug.cgi?id=170075
- Fixed loading on Firefox browsers.