Home
Overview
Components
Getting Started
Latest Version
Version History
What's New
Development
Word Cloud
Contact Us

 

Cloud Services
Moxie in the Cloud
Social Network
Microsoft® Office 365
Login - Office 365

 

 

See Also

Latest Version     What's New or Changed    

Version History

Moxie is currently under the final stages of development before releasing version 3.00 Production. From Developer Preview v3.00 2010-06-22 onwards, complete details on all changes for each build will be posted here.

Developer Preview Versions for v3.00

v3.00 2012-01-10

Critical Sections

New commands of Critical / End Critical have been added. Critical takes a single parameter that is the name of the Critical Section you wish to enter. The name can be anything, and the name space is global across the entire system. For small and simple Procedures, you can choose to not provided a name and MOX will then use the name of the Procedure (Table.Name.Procedure) as the name. It is possible to enter more than one Critical Section per Thread, and they follow the same general rules and functionality as Critical Sections in the operating system. The MOX Runtime protects against failing to exit a Critical Section before leaving a Procedure either due to a Runtime Error or a programmer's design flaw. A maximum of 1024 Critical Sections may be in use at one time.

Prefix

New commands of Prefix / End Prefix allow any following code to be placed at the beginning of each line (plus a trailing space) within the block. This of course is useful any time the same command is used for multiple lines in a row. A common use for this is the Html command. The code placed in Prefix may be more than just a single command name, it may contain the leading parameters as well.

View Image Files in Admin File Manager

Image files, when viewing a file list in the Admin File Manager are now displayed beside each files details.

Reset File Cache

In rare cases it is necessary to reset the Server's internal File Cache. This can now be done either in the Admin File Manager with the provided link on the right menu, or with the new ResetFileCache command.

Database Search

The search system in the database has been greatly improved to handle search terms in quotes, and also search terms of single characters (providing at least one term is longer.) Also, if only single characters are entered, it will be treated as a single string, as if it had quotes around it.

Group Types

The Group Type system has now been finalized. It now blocks non-DB Admins from touching any permission granting records even when poorly written code otherwise enables the possibility (prior to this, they could not access such records unless such poorly written code existed.)

Bug Fixes

The Copy Record Action in the Admin interface did not accept changes to the non-Alias Fields when making a copy of a Record of a Table that did not have an auto numbered Alias. The Admin Interface, if accessed via HTTP when HTTPS is available now provides a working link to HTTPS using the Req.Host Setup value. [CountIf] was not working at all, and now works as expected. The Login Help Procedure that comes with the Moxie download now uses the Cnw.UniqueServerKey Setup value that was introduced in the previous version.

v3.00 2011-12-18

New Setup Table Values

Cnw.EmailFrom / Cnw.ECom.Key / Cnw.ECom.Pw / Cnw.UniqueServerKey / Cnw.DefaultTemplate.
Note that Cnw.UniqueServerKey is auto-populated with a secure unique key anytime that it is blank when the server starts, including on the first run when a copy of Moxie is first downloaded. This unique key should be reset if a copy of a system is made for another site or client.

KeepLast

Like the pre-existing KeepFirst command, this new command simply keeps the last record in the Work Query.

Float Template

This new template provides an example or starting point to be used when a site needs to self-adjust it's size for different screens, such as mobile devices.

Admin Interface Changes

The Table Data menu items of Browse/Search Table and New Record now show up in more places, making it easier and faster to navigate within a table.

NoKillCount

Like the SetKillCount and IncrKillCount commands, this new command will disable the Kill Count system all together. This is useful for background threads that run continually; for safety, it should not be used unless it is really needed.

Trigger

This new command functions much like the existing Remote command, but it does not wait or receive a reply. This allows a source server to make many back to back requests to other servers, not needing to wait for each server to complete its job before starting the job on the next server. If a reply is needed, the called server can then use a complementary Trigger to return the results.

Thread

Using the Thread command, you can call a Public Method with Parameters (ie not an Input Query.) The first Parameter of the Thread command is the name of the Public Method, the optional remaining Parameters must match the Parameter list of the Public Method.

Setup.ServerStart and Setup.ServerStop

If these Public Methods exist, the server will now call them for you when the server starts and stops. ServerStart will run and complete before the first connections will be accepted, and ServerStop will run after the listening socket has been close and will complete before the service stops.

Sleep with Larger Values

Sleep had a maximum value of 60,000 ms; this has been removed to allow background threads to sleep for much longer periods of time.

Email of Run Time Errors

Two additional new Setup Table Values of Cnw.EmailErrFrom and Cnw.EmailErrTo are initially set to just a -. If both of these values contain an @ (ie a real email address) then whenever a Run Time Error occurs it will be emailed from and to the respective addresses. This of course is not useful for a development system, but should be used for production systems to help quickly catch and solve problems the users are experiencing.

Bug Fixes

Checkboxes in records in the Admin interface could not be unchecked (this bug was only introduced in the last version, and was fixed in an interm version that was posted for download here on 2011-12-14.) OnError Continue has been adjusted to work as expected when an error occures within a called Public Method: ie the Run Time Error will occur in the called Public Method but the caller will continue to run.

 

v3.00 2011-12-01

New Binary File

A new binary file, named zlibwapi.dll, is required to be placed in the same folder as the Moxe.exe file, and like the other binary files, it should be replaced whenever you are updating Moxie.

HTTP Content Encoding Compression

Moxie may now use Deflate compression for general HTTP responses, and a Moxie specific compression setup for Moxie Remote Procedures. Both of these options are controlled in the Moxie.cfg file, and at this time they are not exposed in the Moxie Server Setup Windows (as they should rarely be used, see below.)

In order to use one or both of the above, in the Moxie.cfg file, for the value of Encoding you may leave it blank for it to continue to be disabled (the default), or use one or both of the comma separated values of Deflate and X-Moxie-Remote.

When Deflate is enabled, the server does consider the Content-Type of the requested file before it applies the Deflate compression to it, thus avoiding compressing already compressed files such as images, music, etc.

Using compression on most Moxie servers will not provide a net gain when considering CPU and Bandwidth resources. On most servers these days, CPU resources cost more than Bandwidth resources, and thus using more CPU resources to save Bandwidth is typically not a good trade off. Historically, the way-of-thinking for web servers was the other way around, and that the CPU resources required for compression where considered small relative to the rest of the web server's operations. However, with Moxie, the rest of the web server's operations (even for CMS content) is so small that the compression actually does double the total CPU resources required. A further consideration is that Moxie's very efficient and fully applied E-Tag system saves far more bandwidth than compression does, for much less CPU resources.

Remote

The Remote command now has two extra optional parameters: SendComp and Recv Comp. Both of these default to False (blank) and if set to True (data of any length) the command will compress and/or decompress the data on send/receive. Note that it must be known if the server that is being called supports compressed Remote commands, and that the options is enabled.

Meta Config File Data

A new Config File value of Meta now exists, though it is not exposed in the Server Setup Window and changes nothing for Moxie itself. The purpose of this value is just to provide a place to save other information about a particular Moxie Server setup to be used by third party management utilities.

Content Editor Group

A new built-in MemTab Group Type value of Content Editor now enables users to be granted permission to edit the website while not having permission to the rest of the Database. The implementation rule is that they are able to work with any Database Table that starts with Content. - thus allowing extra Database Tables (beyond the default ones) that are used for Content purposes to be accessible to them as well. The Content Editor Group Type also has permission to access the File Manager.

Existing systems, when upgraded to this version of Moxie, should have the value of Content Editor added to the [!] attribute in the Type Field of the MemTab.Group Table (if this feature is required.)

Password Hashes on Record Deletion

When a Database Record is deleted (such a Person) if there is a Password Hash saved for that user, it will now be deleted as well.

File Manager Improvements

The Copy File screen now has a drop down list for the Destination Folder. Both this new drop down list, and the pre-existing one on the Move File screen now suppress the subfolders of Public / jscripts (since there are so many) unless you are already under this folder.

Record Not Found

When the Database could not find a requested Record in the past, the error message was Member not found. This is now replaced with Record not found followed by a semicolon and the Alias of the Record that was requested.

MergeRecords Improvement

The GroupBy parameter may now be blank in order to perform the operation on the entire Query.

Logical Or added to If / End If logic blocks

The Or keyword may be used now in much the same way as the existing And keyword. If both And and Or keywords are used in the same logic text, the Or operates between blocks of Ands, not the other way around.

NewQuery Improvement

Two new optional parameters. The first new parameter is an optional Query name to Copy, and the next is a bool value (defaults to blank, false) that indicates if this new Query should immediately become the current Work Query. These two parameters then allow a single line to execute NewQuery, CopyQuery, WorkQuery all together.

[TQName] and [WQName]

These two new Top Query get and set assignments allow the current Query names to be dynamically tested and/or changed. Note that these would rarely be used.

LoadTableFields

This new command allows you to load into the Work Query all of the Field Names that exist in the specified Table, without loading any records. This is typically used before creating or updating a record where the values to be placed into the Work Query are currently in the Top Query (ie from the Request Query upon a Form submit.)

ListFiles and ListFolders

These two new commands make it easy to get a list of Disk Files or Folders loaded into the Work Query. The ListFolders command is able to provide a recursive list (ie return all of the subfolders down any number of levels.)

SaveHttpFile

This new command allows the fetching of a file from another HTTP server and to have that file be saved directly to a Disk File. This command uses the Windows HTTP API behind the scenes and is able to handle all of the Content Encoding options that Windows itself supports (such as gzip, deflate, etc.)

Incoming Duplicate Fields in an HTTP Request

When the same Field name is encountered multiple times in the URL and/or submitted Form parameters, the values will now be joined together, separated by $I. Any blank occurrences of a Parameter (if there is at least one occurrence with a value) are ignored. This change allows for much better handling of HTML checkboxes, as well as certain dynamic form designs where the number of items the user can submit is dynamic.

New Format and Text Functions

For both Format and Text: Time, AmPm, DateTime, DateAmPm, and FileSize
Also, for Text: Compress, Uncompress
For Top Query Assignments: Compress$, Uncompress$, Date$, Time$, AmPm$, DateTime$, DateAmPm$, and FileSize$

Access Keys

All HTML Forms now automatically take the first character of the Field's Label (or Submit Button) and assign it to an HTML Access Key. Note that the behaviour of these Access Keys is different in various browsers, and Moxie has no control over that aspect. Wikipedia maintains a list of how each browser behaves:
http://en.wikipedia.org/wiki/Access_key .

A new Field Attribute of [AccKey] may be used to specify a specific access key instead of the default behaviour of using the Label's first character.

Trace

A powerful new debugging feature that tells you the exact execution order of your code and the timing of each line.

The new command of Trace takes a single parameter of the output file to dump the Trace log into. It is not required to execute End Trace (the Trace will end when the Procedure exits) but End Trace may be used if desired to limit the output.

A second command of TraceLog can be used, which will simply add the given text to the Trace file at the files current location. This allows you to embed run time values into the Trace log, as otherwise everything in the Trace log is the MOX code itself.

Bug Fixes

Auto Right Alignment in HtmlTable is now fixed after it broke a few versions ago. TabStream and NulStream when used without headers is fixed where the source and the destination did not have the same number of Fields. Encrypt and Decrypt now work correctly when the source and the destination are the same Field. The Hit counter and the Send Bytes counter in the Relay is now accurate. The Parse command now accepts a Top Query Field as the Source. When using the = link from the CMS for DB Admins to edit the MOX code for that page, the path is now consistent (no trialing /) with other links to the same page. Fixed when attaching a newly created Post via the + symbol from the CMS, and then clicking to attach an existing category before doing anything else, the path became messed up. 

v3.00 2011-10-24

New Commands

CopyFields, CopyFirst, Sleep, HtmlUpload, MaxLen

Form Buttons

By default, all form submit buttons will automatically disable themselves upon being clicked so that a double click will not lead to a double submit.

Simple Numbers in Work Query Parameters

These no longer need to be in quotes.

Certificate Manager

On the Server Setup windows, beside the Certificate Name field, there is now a link to open the Certificate Manager.

Direct Link to Procedures from Frontend Content

If logged in as a DB Admin, there will be an additional = link at the bottom of the page that will bring you to the Procedure for that page, and optionally create it if it does not already exist.

New HTML Editor

Switched from the Wyzz editor to tinyMCE. Note that this requires some minor template changes, and swapping out the Public / Wyzz folder for the new Public / jscripts folder.

New Default Template

The new template makes use of newer CSS advances that are supported by all modern browsers to simplify the template while also having a fancier look to it.

Admin Interface

Action links are now beside the data they belong to instead of grouped together on the right hand menu. It is now possible to view a list of just the Table Aliases, Content.Category and Content.Post records when being created can have a blank Alias to have it auto-fill with a safe Alias based on the Name or Title. When browsing tables the data that is displayed in tables is limited to 256 bytes per cell so that larger records do not make it more difficult to navigate. The Admin interface now also uses the exact same code as the HtmlForm command so that the two can be guaranteed to have the exact same behaviour.

Bug Fixes

Malformed HTTP Requests are now further filtered for safety. Binary data coming in through a Request may now be worked with via the Request Query in MOX code. Login, SignUp, and LoginHelp Procedures are updated to work with https out of the box if it is enabled.

v3.00 2011-08-04

New ECom System

With the new ECom system the transactions are processed synchronously (create, set, call, respond) instead of being processed asynchronously (create, set, monitor for completion, respond.)

Two new commands implement this new system: NewEComQuery and ProcECom. The NewEComQuery command will create a new Query Object with the correct Field names to be used for the ECom system. Once such a Query is created, the required Fields should be populated before calling ProcECom in order to actually process the transaction. Upon returning from the ProcECom command the result Fields of the Query should be checked and acted upon.

Remote Methods

A new Procedure Type, named Remote Method, may now be created in order to accept Remote Procedure Calls from other systems in MOX. The new MOX command, Remote, may be used to call the Remote Method.

URLEncode

For very large streams of data (which is not a typical use for this function mind you) this function has been significantly sped up using multiple buffers.

MOX Run Time Errors in the Server's Log

Whenever a Run Time Error occurs in MOX, which ideally should never happen on a live system, the details of the Run Time Error will now appear in the Server's Moxie.log file. This will greatly help system administrators become aware of otherwise unknown issues, as well as track down when and to whom these errors occurred.

Copyright Year in Templates

The Copyright Year in the Default Template now makes use of the new = $Year expression (placed inside angle brackets with question marks on either side) that will be replaced with the current year at runtime.

Bug Fixes

A memory leak in the Relay Server has been fixed. Fixed some Top Query errors were not being trapped correctly. Fixed the MOD operator when used in a Top Query expression. Plus8Decode now works correctly when asked to decode data that was not encoded.

v3.00 2011-05-29

Sockets.dll

The 3rd part socket library used by Moxie has been upgraded to a newer version. This will provide future support for IP6 and it fixes a memory leak that was in the older version.

Relay Server

Moxie now includes a built in Relay Server. This allows an instance of Moxie to listen on a single IP, while relaying many websites to private IPs and/or ports. It is also able to provide load balancing, by randomly distributing the connection requests among any number of back-end servers. The relay is able to accept secure connections and/or relay over secure connections to the back end servers; however on the acceptance side it is limited to a single security certificate. In order to configure the relay, add records to the provided Database Table named Relay.

v3.00 2011-05-24

Two Factor Login (Authentication) Expanded

Multiple devices may now be added as the second factor, and when one of these devices is logging in itself it does not require the Check Number submission. The default Procedures that come with the Moxie download have been expanded to offer more functions and to allow a user to manage this feature him or herself.

Default Procedures

Updated or new Procedures are now part of the default Moxie download for the Sign Up, Login Help, and Reset Password pages.

HtmlSearchBox

The Default Field name was just "Search", which was a potential keyword conflict. The default Field Name has been changed to "SearchBox". Important Note: that any existing code that uses the HtmlSeachBox command and did not specify a Field Name will need to have the code modified to accommodate this change.

Admin Interface Tables

HTML Table data displayed in the Default Admin interface has been significantly sped up.

Web Server Threads and Sockets

The server shell that is part of the 3rd party socket library that is used by Moxie has been replaced with a custom purpose built server shell to enable better speed, less resources, and in the next version, a Relay Server.

v3.00 2011-04-10

Two Factor Login (Authentication)

An optional Two Factor Login process is now built into Moxie's login and session management. This new system if present is configured on a user-by-user basis. The user is given a secure Two Factor Key on the server, which is then to be store safely on a device that is in the possession of the user. If a Two Factor Key exists for a User during login, the session is placed into a partially completed state and reports to the user a unique, one-time Check Number that must be submitted back to the server along with the Two Factor Key.

How the Two Factor Key is stored by the User and presented back to the Server with the Check Number is entirely at the discretion of the Developer. Third party applications and hardware may be developed around this system. With that said, the default download of Moxie includes a simple solution that would be beneficial for most organizations that need something better than just a single login password. 

v3.00 2011-04-07

Unknown Name Error Message

The Unknown name error message now provides the name that produced the error.

Database Search Speed

The Database Search is now triple buffered to better handle very large results.

TemplateRunTime

The new TemplateRunTime command allows a developer to change the default Template Location the HTML commands output to.

[HtmlOutput]

The new [HtmlOutput] TopQuery command captures the output of the combined Template and HTML placed onto the Template so far.

SendEmail

A bug fix for the file attachment option, and a new option to add a delay between each email being sent.

Moxie.log - Server Log

The new ServerLog Command allows a developer to place any information into the Moxie.log file. More detailed reporting of 500 Internal Error messages has been added. ECom items now have the Session ID listed for cross-reference. Every login attempt and the result there of is now recorded in the log.

LoadFile / SaveFile

New Text Command Actions of LoadFile and SaveFile, along with a new TopQuery Function of LoadFile$, and a new SaveFile Command.

Load and Unload Table Files

New Commands of LoadTableFiles and UnloadTableFiles. These actions have been added to the Default Admin interface as well.

Larger Content Editor

For Content.Category and Content.Post Records, the Default Admin interface now provides an otherwise empty page to focus on editing only the Intro or the Body. The size of the larger editor can be customized in the new BigWyzz.js file. The default size is 620 x 400

RecoverHtmlObj

Available as a Text Command Action or as RecoverHtmlObj$, this functions the same as the safer RecoverHtml Action but allows Object, Param, and Embed HTML tags to be used. This command should not be used on input provided by any untrusted users. This command is now used however on the Content Management System output.

Combined Database Operation Commands

NewWithAttach, UpdateOrNewWithAttach, DetachWithDelete

Error Handling of Database Operations in Queries

Database operations performed in a Work Query that fail at the individual Record level will now only report their errors to the Work Query's Error Field; the MOX runtime will no longer halt. A new Command of FailIfRecError may be executed at any time to cause the MOX runtime to halt if any errors exist. A new TopQuery command of [AnyRecError] will return the first (if any) Error value found in the Work Query; this is useful as a quick test to decide if any error handling is needed.

v3.00 2011-03-31

New Template Insertion Points

Two new Insertion Points, named Intro and Body, are now automatically place into the Template's MainBody Insertion Point. The CMS text is now split between these two points. This allows a developer to add to one or the other or both as separate items. It also allows a developer to add to the Intro of a Post when listed on a Category page.

HtmlErr

When an error message needs to be displayed to the user, this shortcut takes care of selecting the correct Template Insertion Point and placing a leading break such that multiple error messages will not run into each other.

HtmlPageBreak

When building reports, this handy shortcut places the necessary HTML into the report to cause most web browsers to have any following text start on a new page. This makes it feasible to print form letters and/or other mail merge type documents directly from a MOX Report instead of having to export the data to run a mail merge in a word processor.

KeepFor

It is no longer necessary to test how many records exist in a Query before using this command; if the To parameter is greater than the number of records it will now silently adjust the To parameter to the match the number of records. The first parameter, From, is now optional and will default to 1 if not specified.

.Mox files on the Command Line

Any runtime errors that may occur are now recorded into the server's log file.

Bug Fixes

The following bugs have been found and fixed: problem with providing a blank Alias when programically resetting a password; nested database calls within queries and/or multiple levels of query calls reported that an error occurred but no error text was provided; Public folder files between the size of 100KB and 128KB where in some cases not being replaced when a new copy of the file was uploaded that was greater than 128KB; Removed the ?Session=Void text from download links generated by the Files area; audited all file commands in the Admin interface and tested/debugged their interactions with the file cache; XMLStream now handles empty element tags with no attributes and no whitespace, as well as duplicate inner-most element names; Wyzz Editor updated to handle IE9 and improved the Link and Image buttons for Firefox; GoTo and OnError with labels have been fixed.

v3.00 2011-01-04

Sockets.dll

The Socket Library used by Moxie has been separated out of the Moxie.exe file and now stands on its own. The .exe packager that was being used to embed this .dll was causing problems with some virus scanners and the trade off was not worth it.

HtmlForm

First of all, a quick bug fix on the parameter order when using three parameters. Second, when a field is [Hidden] it will no longer insert a blank HTML table row for the field.

XMLMerge

A new parameter now provides control over how the namespace of each level is folded into itself.

Procedure Cache

Bug fix: When deleting a Procedure, it is now removed from the Cache.

.Mox files on the Command Line

For utility purposes, when a database is not otherwise already running, for example during nightly maintenance and backups etc, you may now pass a .mox file on the command line to Moxie.exe and that .mox file will execute. After the .mox file name, an optional quoted URL parameter list may be specified, which will become the Input query. Full access to the database is provided, however it will start up without a session or user. Because there is no server manager thread running, if the database must be safely flushed to the disk before the end of the .mox file, you may use the Flush or FlushAll commands to force an immediate commit to disk.

Brute Force Login Slow Down

Failed login attempts will now pause for a random amount of time between 3 and 7 seconds in order to drastically slow down brute force login attacks.

Server Optimizations

Larger databases with heavier loads will now consume less CPU and Disk resources. Further significant performance improvements are still to come before final release.

New Commands

FileExists$, FolderExists$, and Dir$ for the Top Query, and the equivalents for the Text Work Query command.

v3.00 2010-09-21

MHtml Fields

In addition to the changes noted for v.3.00 2010-08-23, file downloads on the same host will now open in a new window as well. eg. PDF files, direct links to images, etc. However, direct links to .htm or .html files will not open in a new window, nor will any CMS path (which should not contain any dots in the name.)

Public Folder Access Restrictions

A new default Table in the database, named Content.Folder, exists in the Moxie download now. This Table is used to store Folder paths under the Public folder, and if a match is found, it will compare the logged in user's Group Types to those required for the folder. The presence of this Table is optional; if the table does not exist no checks will be performed. Since the Folder paths are stored as the Alias in this Table, the overhead for this system is near-zero.

v3.00 2010-09-08

Admin Template

The Admin Template for the Default Plug-in may now be specified in the Setup table. By default, it uses the Default Template, so no changes are necessary for existing systems. In order to use a separate Template for the Admin interface from the rest of the system, just edit the Cnw.AdminTemplate record in the Setup table to specify the name of the Template to use instead.

Pivot Command

Within a Query, you can now swap Fields for Records / Records for Fields using the new Pivot Command.

v3.00 2010-08-30

Bad Socket Management

When a TCP Socket is not disconnecting cleanly due to a pending event, the server will issue a Cancel and then track the socket for a reasonable amount of time to provide the opportunity for a clean shutdown. If the socket still does not shutdown cleanly it is forcefully aborted, closed and then has its management thread is forcefully exited.

Math and Text Equates and Functions

The built in Math and Text Equates (value names with a leading % or $ symbol) may now both be used interchangeably with the Text Functions (function names ending with a $ symbol.) Then, the following Numeric Functions may now also be called as Text Functions when they require Text Equates as input: Len$, InStr$, InStrAny$, Verify$, Tally$, TallyAny$, ParseCount$, ParseCountAny$

v3.00 2010-08-23

MHtml Fields

For images in MHtml Fields the Alt attribute is now swapped out for the Title attribute, since the Title is used by all modern web browsers as the mouse-over tools tip. During editing with the Wyzz Html editor, the Title attribute is reverted back to the Alt attribute so that it can be updated.

For MHtml Fields, any http(s) links will be tested to see if they are local or external. Local links will always open in the same window/tab, while external links will always open in a new window/tab. As such, the Wyzz.js file has been updated to no longer ask if the link being added should open in a new window or not, therefore be sure to update this file when upgrading to this version of Moxie.

Session Information

Session details added to the Request Query. Since it is a common need to create a Top Query field to receive the built-in Session status values of $SessionID etc., these are now placed into the Request Query for you. It is important to note however that these values in the Request Query will only be the status of the Session at the moment the Request is received, if one of your Procedures cause the Session status to change, the data in the Request query will then no longer be accurate. Therefore, whenever there is a chance that your Procedures could change the Session status, you must still refer to the built-in (and always current) $SessionID and others for up to date information. A new Session status value of SessionIsBad has also been created to allow a quick Boolean test; if the Session does have a problem, it will contain text describing the problem; if it is all ok this value will be blank (false, ie not bad.) This value is available from the built-in value of $SessionIsBad or via the Request Query as Req.SessionIsBad.

v3.00 2010-08-17

Admin Interface Customization

Admin interface can customize the Admin Home page by creating or editing the Admin Record in the Content.Category Table. Posts and Menu items may also be attached to this to create more structure, providing the names do not conflict with existing Admin functionality. For example a URL bound Menu Record could be used to create a short cut to create a new Person Record. MOX Public Methods may also be utilized in the same way they are used in the Frontend. As is true for all private content data, the Admin content must make use the Group Types field in order to ensure the security of any content placed into these Content Management System Records.

Admin Interface File Uploads

When Uploading files in the Admin interface, if the file already exists it will now be overwritten instead of returning an error.

v3.00 2010-08-12

New Commands and Functions

  • Text: Encrypt, Decrypt, Hash, IsGroupType
  • Value: SessionGroupTypes
  • HttpStatus, HttpType, HttpHeader
  • HttpCookie
  • MergeRecords
  • SetIf with only one test field, able to use Not
  • MergeFields
  • PickFirstField
  • Offset: new & operator
  • KeepIfAny, KeepIfAll
  • SetIfAny, SetIfAll
  • And can now be used with If / End If
  • WithGroup: new GroupIndex, Merge actions
  • [Sort] Relationship Attribute
  • [FieldList] Attribute can now also be used for Relationships
  • [SearchFieldList] Attribute
  • [SearchSort] Attribute

v3.00 2010-07-22

New Text Functions

  • DayOfWeek to return the week day of any given date.
  • Encrypt and Decrypt, which utilizes 128bit block AES with 256bit keys
  • Hash, which provides a secure one-way hash based on AES

KeepIf

KeepIf may now specify only a single Field name (with no comparison or second value) in order to keep Records where that Field is not blank (True).

Sort

The internal non-destructive sort used by Moxie has been improved for a significant speed boost

Keep Alive

The Server's maximum Keep Alive time for idle connections has been increased to five minutes.

v3.00 2010-07-19

File Manager

Those with permission to log into the Default Plug-in's Admin interface will also have permission to access the File Manager; look for the link on the Top menu once logged in. Using the File Manager provides a secure way to work with the Server's files so that there is no need to run a FTP server (FTP is not allowed by PCI-DSS.) Furthermore, when using the File Manager, the Server's internal web file cache is maintained. The Etc folder has now been renamed to Public, and a new folder named Private has been added. The Private folder may be used to store files that are only accessible to those with permission to use the File Manager.

Large File Uploads

The maximum size of the data that will be received into RAM by the Server is now configurable on the Server Setup dialog. The default is 10MB, and may be as little as 1MB. When more than this amount of data is received (with the assumption that this is typically a file upload) the file data will be saved directly to a disk file. Full details are laid out in the documentation for the Request Query under the Public Method topic.

v3.00 2010-06-24

Server Optimizations

The log file is now double buffered in RAM and flushed only as often as the server stats information, which is adjustable in the Server Setup window and defaults to 10 seconds. Web server files, in the Etc folder and in the Templates folder are now cached in RAM under the following rule: The most recent 100 requested files that are less than 128KB. Note that a significant speed boost / decrease in CPU usage is gained by not accessing the file system in anyway, including checking for file changes (see File Manager above.)

v3.00 2010-06-23

Search

In MOX, the Search command now has an optional third parameter which will allow you to specify which Fields will be searched; if this parameter is blank or not specified then all Fields will be searched. In COM Plug-ins, this third parameter is not optional, thus requiring all calls to iDatabase.Search to have this third parameter specified, simply pass an empty string in order to maintain existing behaviour. For both MOX and COM Plug-ins, the previous limit of a maximum of 1024 returned items has been removed, so the number of records returned to the user should be limited / filtered after the search. This limit was removed because it is now less overhead to use Search for specific Fields to load such records, than it is to use LoadTable and then use KeepIf to filter by Fields. The Default.dll Admin interface has been modified to limit the number of records displayed per Table to 1024 when using the global search box; searching within a table remains the same since that interface already limited the number of records displayed at one time.

v3.00 2010-06-22

Nested Left & Right Sub Menus

The left and right menus may now have nested sub menus; look for the auto-generated DIV and Template HTML tags, after the Active Item, that are created to provide a Template Location to bind your sub menu Records to. An example auto-generated name is "LeftSub1" for the first sub menu level. This change is not expected to break any existing setups, as it was designed very specifically to not break anything.

Compiled MOX Code is now Cached

The cache system for compiled MOX code is now complete. This should not have any effect on existing systems beyond the following note for Includes; it simply caches the compiled results the first time a MOX procedure is called and also automatically recompiles it if that procedure is updated, or if an Include within it is updated. Includes will no longer use the Group Types security, since they are now compiled into the code outside the context of any particular user. Note that compile time bugs will now show up while updating a Procedure in the Database, and that if a compile time bug is detected, the submitted change will not be stored in the Database.

Development Versions for v3.00

  • v3.00 2010-06-17: General Update
  • v3.00 2010-06-11: General Update
  • v3.00 2010-06-03: Increased menu flexibility
  • v3.00 2010-05-26: General Update
  • v3.00 2010-05-22: General Update, expanded default setup
  • v3.00 2010-04-08: General Update, small template change
  • v3.00 2010-03-24: General Update
  • v3.00 2010-03-15: General Update
  • v3.00 2010-03-06: General Update
  • v3.00 2010-03-04: General Update
  • v3.00 2010-02-19: General Update
  • v3.00 2010-01-28: General Update
  • v3.00 2010-01-26: General Update
  • v3.00 2010-01-16: General Update, front end login, template changes
  • v3.00 2010-01-15: Bug fix for search field names in v3.00 2010-01-14
  • v3.00 2010-01-14: General Update, template changes
  • v3.00 2010-01-01: General Update, template changes
  • v3.00 2009-12-30: General Update
  • v3.00 2009-12-16: General Update
  • v3.00 2009-12-14: First posted version