Skip to content

Updates

It's a good idea to keep your Coronium Core server up to date with the latest release. To update your server, simply follow the directions below.

Available Updates

2.6.5 to 2.7.0

The following will update your Coronium Core 2.6.5 server to version 2.7.0

Be sure to read the Critical Update Notes before installing this update.

Changes

  • Internals (nginx, ngx_lua, LuaJIT, etc.) updated to the latest versions; providing security fixes, better stability, and other enhancements.

  • Enhancements include Global Guard which will print a warning in the api.log if any global variables are found in your server-side code. Lua globals can cause critical race conditions to occur on client requests, so it is wise to keep a look out for these warnings and update your code as needed.

  • Users module password algorithm refactored to be on par with current standards. See Notes below (thanks @Benzeliden).

Added

  • Server plugins to allow a developer to extend the server-side core namespace.

Updated

Fixed

  • An issue with downloads that limited a downloadable file size to 1 MB.
  • A few modules that contained global variables due to lack of sleep.


DigitalOcean Updater

Root User Required

You must be logged in as the root user to run the updater or it may fail. This update requires a server reboot.

Paste the following one-liner into your terminal to start the DigitalOcean update:

wget https://s3.amazonaws.com/coronium-core-update/v2.7.0/do.sh && sudo bash do.sh

Amazon Lightsail/EC2 Updater

Ubuntu User Required

You must be logged in as the ubuntu user to run the updater or it may fail. This update requires a server reboot.

Paste the following one-liner into your terminal to start the Amazon Lightsail/EC2 update:

wget https://s3.amazonaws.com/coronium-core-update/v2.7.0/ec2.sh && sudo bash ec2.sh


2.6.4 to 2.6.5

The following will update your Coronium Core 2.6.4 server to version 2.6.5

Updated

  • Pages module version 2 which now supports form based uploads and cookies for user sessions, as well as a number of new methods for response output. See the updated documentation here for more information.

Fixed

  • An issue with the Pages module where an incoming request to a Lua page that doesn't exist writes an error message to the pages.log. Missing Pages dynamic Lua files now respond with a proper 404.


DigitalOcean Updater

Root User Required

You must be logged in as the root user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the DigitalOcean update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.5/do.sh && sudo bash do.sh

Amazon EC2 Updater

Ubuntu User Required

You must be logged in as the ubuntu user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the Amazon EC2 update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.5/ec2.sh && sudo bash ec2.sh


2.6.3 to 2.6.4

The following will update your Coronium Core 2.6.3 server to version 2.6.4

Added


DigitalOcean Updater

Root User Required

You must be logged in as the root user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the DigitalOcean update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.4/do.sh && sudo bash do.sh

Amazon EC2 Updater

Ubuntu User Required

You must be logged in as the ubuntu user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the Amazon EC2 update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.4/ec2.sh && sudo bash ec2.sh


2.6.2 to 2.6.3

The following will update your Coronium Core 2.6.2 server to version 2.6.3

Fixed

  • Coronium Core system logs not rotating properly.


DigitalOcean Updater

Root User Required

You must be logged in as the root user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the DigitalOcean update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.3/do.sh && sudo bash do.sh

Amazon EC2 Updater

Ubuntu User Required

You must be logged in as the ubuntu user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the Amazon EC2 update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.3/ec2.sh && sudo bash ec2.sh


2.6.1 to 2.6.2

The following will update your Coronium Core 2.6.1 server to version 2.6.2

Added

  • Ability to host Corona HTML5 apps and games on your Coronium Core server, and utilize the CoroniumJS plugin to access custom server-side APIs. See the HTML5 Builds section in the Pages documentation for more details.


DigitalOcean Updater

Root User Required

You must be logged in as the root user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the DigitalOcean update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.2/do.sh && sudo bash do.sh

Amazon EC2 Updater

Ubuntu User Required

You must be logged in as the ubuntu user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the Amazon EC2 update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.2/ec2.sh && sudo bash ec2.sh


2.6.0 to 2.6.1

The following will update your Coronium Core 2.6.0 server to version 2.6.1

Added

  • Customizable error pages for common HTTP error codes. See the Error Pages section in the Pages documentation.

Fixed

  • An issue with the Pages module where an incoming request to an unsupported endpoint would write an error message to the pages.log, filling the log file with useless entries.

Updated

  • Monit control files to be compatible with latest version. This allows running some other Coronium solutions on the Coronium Core server as well, like Coronium ChatterBox.


DigitalOcean Updater

Root User Required

You must be logged in as the root user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the DigitalOcean update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.1/do.sh && sudo bash do.sh

Amazon EC2 Updater

Ubuntu User Required

You must be logged in as the ubuntu user to run the updater or it may fail.

Paste the following one-liner into your terminal to start the Amazon EC2 update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.1/ec2.sh && sudo bash ec2.sh


2.5.0 to 2.6.0

The following will update your Coronium Core 2.5.0 server to version 2.6.0

Be sure to read the Critical Update Notes before installing this update.

Added

  • Password reset link that can be sent to a user with an email address using the server-side users.sendPasswordResetLink method, allowing a user to reset their password via online form. Supports custom email template messaging. See also the Password Reset guide.

  • Scope Permissions for additional security, allowing a developer to control what client-side actions are allowed.

  • Server-side users.sendConfirmationLink to send a confirmation email for server-side created users. See also the Confirmations guide.

  • Server-side utility method core.md5 which creates an MD5 digest of the given string.

  • Server-side command line tool to disable/enable MongoDB to gain some additional system resources in the event a developer is not using any MongoDB related functionality.

  • A bunch of new and updated documentation.

Updated

  • Client-side users.login method to support login by email or username.

  • Server-side users.getWithQuery to query against a hashed password.

  • Coronium Core Corona Plugin to support version 2.6.0 or better servers.

Fixed

  • Archive projects action in the System Info section not downloading.

  • Server-side users.getWithQuery only working with the active key set.

  • User confirmation email send incorrectly reporting "failed" status.

  • Various minor issues.

API Changes

Webmin 2.0.0

  • New Scopes section for viewing, and managing Scope Permissions.

  • Auto Scroll Log option added to the Configuration section.

  • Code completions updated for new methods.

  • Tons of tweaks, fixes, reorganization, and visual updates

Be sure to read the Critical Update Notes before installing this update.


Note: Close any open Webmin browser windows before updating.

DigitalOcean Updater

Root User Required

You must be logged in as the root user to run the updater or it may fail. This update requires a server reboot.

Paste the following one-liner into your terminal to start the DigitalOcean update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.0/do.sh && sudo bash do.sh

Amazon EC2 Updater

Ubuntu User Required

You must be logged in as the ubuntu user to run the updater or it may fail. This update requires a server reboot.

Paste the following one-liner into your terminal to start the Amazon EC2 update:

wget https://s3.amazonaws.com/coronium-core-update/v2.6.0/ec2.sh && sudo bash ec2.sh

Depreciated

2.4.1 to 2.5.0

Availability Notice

This version/update is no longer supported, but is available by request.

Added

  • Server-side Jobs API and service allowing you to run code periodically in the background for a variety of use cases. See the Jobs Guide for full usage information.

  • A server-side utility method core.sleep that allows one to pause code execution for a duration of time. Useful for tight work loops.

  • Server-side core.timer method for single-use or recurring timers.

  • Server-side network.pipeline method added to make sequential network calls to a host.

  • Ability to set a MySQL column to a valid NULL value when using the WHERE table syntax (see here).

  • Updated documentation for all new additions.

Fixed

  • An edge case that could cause a log file to stop loading properly in the Log Viewer.

  • mysql.selectCount returning a string type as opposed to a number.

API Changes

  • Server-side network.get previously returned only the response body. It now correctly returns a response object similar to network.request.

  • Server-side network.post previously returned only the response body. It now correctly returns a response object similar to network.request.

Webmin 1.4.0

  • Jobs section has been added to create, manage, and edit Jobs and the Job Service.

  • You can now manage log files in the System Info section.

  • Optional auto-reload added when viewing log files.

  • Server key moved back to the Configuration section.

  • More clean up, tweaks, and fixes.

2.4.0 to 2.4.1

Availability Notice

This version/update is no longer supported, but is available by request.

Added

  • Userland nginx config directories for server add-ons (like PHP, etc).
  • Safety to make sure an update is applicable to the installed version.
  • Using AJAX with the Pages API in the documentation.

Updated

  • Nginx config updated for better throughput at high loads.

Webmin 1.3.0

  • New System section added to show general system information.
  • New version alert added to show when a new version is available.
  • Safety to make sure unsaved code is not lost before leaving the code editor.
  • Unsaved code is automatically saved if the editor is left idle for more than 60 seconds.
  • You can now download a .zip archive of your current API projects in the System section.
  • Various cosmetic changes and updates.

2.3.2 to 2.4.0

Availability Notice

This version/update is no longer supported, but is available by request.

Added

  • Server-side Users module, allowing for custom user logic and types. Includes new methods getGroup, getWithQuery, and getAndMerge for advanced user queries, record associations, and more.

  • Server-side and client-side OAuth API which is a Users module extension to support OAuth client IDs, access tokens, and expirys from Facebook login, Google sign-in, etc.

  • MySQL module EZ Query method mysql.selectMerge to select from multiple databases and tables in a single call. See the client-side selectMerge or server-side selectMerge documentation for more details.

  • MySQL module EZ Query method mysql.selectCount to get records counts based on queries. See the client-side selectCount or server-side selectCount documentation for more details.

  • Server-side MySQL module time based methods can now accept a UNIX timestamp for conversion.

  • Server-side MySQL module logQueries method to enable logging of the raw queries being created under the hood for debugging purposes.

  • Modules that accept a where key can now benefit from a new special table type clause. See The WHERE Key for more information.

  • A new field in the Users module called group to help partition your users within a scope.

  • A new incoming parameter scope for use in custom server-side API methods (see Input).

  • Logging is now split into api, pages, and nginx logs for less noise and more specificality.

  • Lots of new and revised documentation.

Fixed

  • Users module Field 'extra' doesn't have a default value error.

  • Administration database collation type inconsistencies.

  • Trigger privilege unavailable for external MySQL admin clients.

Updated

  • Client connection count increased significantly.

  • Almost all server-side methods now support error, and error status codes that can be returned to the client. See Status Codes.

API Changes

  • mysql.selectBatch key parameter is now optional per entry. If not specified the table name will be used instead. Be sure to provide a key if multiple entries use the same table.

  • mysql.selectBatch now returns a single record (similar to mysql.selectOne) if the limit for an entry is set to 1.

Webmin Update 1.2

  • Now supports multi-file server-side API projects.

  • New Webmin settings area in the Config section.

  • Log viewer updated to view newly split log files.

  • Log displays with (optional) colorized output. Increased line output.

  • Dark theme now available for the code editor.

  • New user keys oauth and group added to the user details page.

  • Filter by group added to the user search page.

  • Code editor completions for all new methods.

  • Lots of updates and fixes both under and over the hood.

2.3.0 to 2.3.2

Availability Notice

This version/update is no longer supported, but is available by request.

The following will update your Coronium Core 2.3.0 or 2.3.1 server to version 2.3.2

Fixed

  • Locked down all module access to the administration database.
  • Provided enhanced security for client-side MySQL injections.

Updated

  • core.users extra storage increased significantly.

2.2.0 to 2.3.0

Availability Notice

This version/update is no longer supported, but is available by request.

Added

  • The EZ Query MySQL module methods selectBatch, insertBatch, updateMany, updateBatch, deleteMany, and deleteBatch have been added for optimized performance, reduced network calls, and simplification of code when working with multiple query entries; particularly on the client-side. See the client-side MySQL module documentation for more details. See also Optimized Methods.

  • The server-side MySQL module methods dbConnect, dbQuery, and dbClose have been added for advanced control over the database connection, allowing for highly performant queries. See Advanced Methods for more information.

  • The ability to fine tune the Coronium MySQL server configuration, which has been consolidated into a single file. See the Configruation File section in the MySQL server guide.

  • A client-side response event key named tt, which shows the total trip time for the request. See Response Events for more details.

  • A number of system-wide tunings for better performance for high traffic.

Fixed

  • The insertMany MySQL module method now handles a single entry properly.

Updated

  • Nginx core updated to the latest version.
  • LuaJIT core updated to the latest version.
  • API request throttle has been slightly lowered.
  • Webmin code editor completions for new methods.

API Changes

  • The insertMany MySQL module response has been changed. Previously the response returned the number of records inserted. Now the response contains an array of tables with either the inserted id or error. Previously this method would error out if any of the inserts failed. Now all inserts are attempted and the error, if any, for the insert is returned in the response array. See the client-side insertMany or server-side insertMany documentation for more details.

2.1.1 to 2.2.0

Availability Notice

This version/update is no longer supported, but is available by request.

Added

  • resendConfirmation method added to the Users module, to resend a confirmation email.

  • Users "extra" metadata now supports boolean types.

Fixed

  • Documentation links in the Webmin now resolve properly.

API Changes

users.login

The client-side Users module login response has changed. See the Logging In section of the documentation for more information.

users.create

The client-side Users module create response has changed. See the Creating users section of the documentation for more information.

2.1.0 to 2.1.1

Availability Notice

This version/update is no longer supported, but is available by request.

Added

  • Full support for multiple applications with separate scope for users and metrics.
  • Webmin "Today" view for global application usage metrics for the current day.

2.0.3 to 2.1.0

Availability Notice

This version/update is no longer supported, but is available by request.

Added

  • Browser based web admin for informational data in regards to app usage, users, device metrics, minor administration, and more.
  • Browser based code editor for building server-side project APIs.
  • Client-side Users module for user registration, login tracking, and optional customizable email confirmations.
  • Client-side Analytics module to collect usage statistics and device metrics.
  • Server-side Email module for sending email via Mailgun.
  • Server-side Template module for resuable customized output.
  • CORS support for the Pages module.
  • MySQL EZ Query method selectOne added for simple single record retrieval.
  • MySQL EZ Query method insertMany added for optimized multi-record insertion.
  • Various date and time utility methods for the MySQL module.
  • Ability to adjust Corona network client-side timeout for large workloads.
  • Ability to adjust MySQL server-side timeout for large workloads.

2.0.2 to 2.0.3

Availability Notice

This version/update is no longer supported, but is available by request.

Fixed

  • Temp cache body file now works properly for large payloads.
  • Pages response method returns a status properly when provided.

Added

  • Pages status convienence method added to quickly return a status code other than 200.
  • Server coronium.body.conf file which can be used to adjust the body cache for servers with large memory allocations.

Webmin HTTPS/SSL

If your Coronium Core install was setup with HTTPS/SSL support, you will need to update the Webmin API host to work over HTTPS/SSL as well.

Important

If you've performed this step in a previous update, you do not need to do it again, unless you are having problems accessing your Webmin.

Log in as the coronium user, and from the command line, run the following, using your secure domain name:

sudo webmin-apihost https://<your.coronium.host>

Critical Update Notes

2.6.0 Update

Coronium Core version 2.6.0 introduces some major architectural changes to the underlying system to lay the groundwork for some current and future enhancements.

If at all possible it is reccomended to run a fresh install and import your data and projects. If this is not an option, be sure to carefully read the notes that follow so your update will go smoothly.

Live Apps

If you currently have live apps running on v2.5.0 you can still update your server, but you will be unable to use any of the new features until you redeploy your application with the new Coronium Core Plugin set to version 2 (see core.init). All of the following information needs to be understood as well before updating.

Users Data

Version 2.6.0 now supports logins by email address. This means that no two users in the same scope can have the same email address in the Users system.

If you currently have users in the same scope with the same email address, certain functionality like users.sendPasswordReset, as well as, logging in by email address, will not work properly. Other validation issues will also arise.

You will need to clean up Users that have this issue before updating. If you have questions on how to do this, visit the support forum.

Scopes

With the addition of Scope Permissions, scopes are being more fully intergrated into the Webmin system.

When you first update, you will need to visit the Scopes section in the Webmin and click the Update Cache button to import your current scopes. You will then be able to edit permissions on them, if needed.

More enhancements to scopes management are coming in future updates.

Plugin Version

Because the Corona plugin system does not support multiple plugin versions internally, you must now supply a version parameter to the client-side core.init method.

For server features included in v2.6.0 or better, you must set the plugin version number to 2.

core.init({
  version = 2,
  server = "https://<coronium-host-address>",
  key = "<coronium-server-key>",
  scope = "Space Race"
})

2.7.0 Update

Updater Notes

The underlying updating mechanism has changed. If you have edited core files (found in /usr/local/coronium) then you run the risk of losing whatever changes you may have made. Backup these files first if needed. You should never change files in the core directory.

User ID Migration

Automatic Migration

The IDs used for the built-in Users system have been updated to current standards. This requires a migration of current IDs to the stronger versions.

The common way this works is that as a user logs in with the Users module -- and if an older ID version is detected -- it will automatically be migrated to the new ID type.

Manual Migration

If you want to manually update all the current user IDs to the new type all in one round, you will need to set up a server-side API script, and then call this endpoint from a local Coronium app.

  • Create a new server-side project called "migration".
  • In the main.lua project file add the following api function:
function api.compat( input )
  local compat = require("coronium.compat")
  local res, err = compat.ensureUserPasswords()
  if not res then
    return core.error(err)
  end

  return res
end
  • Once this is set up, call the endpoint from a simple Corona project:
local function onResponse(evt)
  core.debug(evt)
end

core.api.compat(onResponse)
  • If there are no major errors, you should receive the count of updated users.

All user IDs are updated, and more secure. Any future users will automatically start with the newer ID type, so there is little need to ever rerun the manual migration. Feel free to delete the "migration" project.

Global Guard

The addition of the global guard can have some side effects, mostly related to other external Lua modules -- such as LFS, etc. that still use some global values. You may see warnings regarding this, and at this time you will need to ignore them until LFS, and others, update thier respective modules.

Because a global could be crippling to your application, it has been mandated by the developers of the ngx_lua module that global guard cannot be disabled (though it is currently being debated).

Over the next few versions, Coronium Core is going to try and phase out any use of LFS. Unless they update it (not likely) first.