The Moxie.cfg file is read on server start and controls aspects that cannot be changed while the server is running.
A .mox file, with MOX code in it, can be run from the command line while a Moxie.Build system is not otherwise already running.
The optional Moxie.http file is read on server start and controls the default HTTP headers set for all requests.
Download Free Download of Moxie.Build Delivered as a simple .zip file, so that you can set it up however you like. This approach allows you to custom install many services on one server ,
or just run it as an app without an install. Licensing information and agreement . Upgrade Notes
In order to Upgrade an existing copy of Moxie.Build V4 or V5 to the most recent version of V5, you can use the Upgrade example files found in the Tools folder to help automate upgrading multi-service systems, or you can just replace the following files/folders: Moxie.exe Moxie.dll Default.dll /DBStore/BuiltIn.* /Lib /Public/BuiltIn /Templates/Admin /Templates/Clean /Templates/Default /Templates/Default5 /Templates/Report
Takes one parameter, HtmlEscapedString, and returns the Unescaped Version of this string
A Remote Method may be called by any other Moxie system. It can be used to divide up a large system among a number of backend servers, or as a public API for 3rd parties. In order to call a Remote Method from MOX, the Remote statement is used.
A PaaS Method may be called by any other Moxie system. In order to call a PaaS Method from MOX, the PaaS statement is used.
The MOX coding and programming language pays heritage to BASIC, but has been crafted for the specific type of work and environment that is demanded of Moxie.Build.
Moxie.Build Keeps it Simple The full stack in one app, delivered by one company. Coding with the MOX server side scripting language is concise, well structured, and keeps your focus on the data. Use Moxie.Build in your company to pull together resources, centralize data, customize business workflows, and act as a highly accessible web portal for staff and customers alike.
A Public Method may be called from any other Procedure, by the Default plug-in, or a Custom COM DLL. Each Public Method may either use specific Input Parameters, or it may accept an Input Query.
Record Actions are presented to the users of the Default Admin interface and are also intended to be made available in a dynamic way to users of a customized front end. As an Action, the Procedure is expected to perform some sort of task, such as an automated set of updates to the Database Record.
Record Reports are presented to the users of the Default Admin interface and are also intended to be made available in a dynamic way to users of a customized front end. As a Report, the Procedure is expected to produce output to be displayed to the user.
Table Reports are presented to the users of the Default Admin interface and are also intended to be made available in a dynamic way to users of a customized front end. As a Report, the Procedure is expected to produce output to be displayed to the user.
Table Actions are presented to the users of the Default Admin interface and are also intended to be made available in a dynamic way to users of a customized front end. As an Action, the Procedure is expected to perform some sort of task, such as an automated set of updates to the Database Table.
An Include Procedure cannot be executed directly, the contents of its source code can only be Included into other Procedures using the Include command.
A Message Handler is only ever called by the Database on a Database Event. These Event Messages allow a Developer to intercept operations taking place on a per-record level and implement Event based business logic.
Prerequisites: This tutorial assumes that you have already set up your Moxie.Build server and logged in. This page covers some of the basics that are involved in managing files and folders in the Moxie.Build system.
Prerequisites: This page assumes that you have already set up your Moxie.Build server and logged in as an admin user. This page covers some of the basics that are involved in using the Content Management aspects of the Moxie.Build system.
Prerequisites: This tutorial assumes that you have already set up a Category and Procedure if necessary. This page covers some of the basics that are involved in Front End development using the MOX language.
A single Windows OS can host many instances of Moxie.Build, these steps will guide you through the setup process.
Developing in Moxie.Build on localhost give you the advantage of working with the template files natively. When working on procedures (MOX code) you need to access that through the Procedures page in the Admin area of a Moxie.Build system, if running the server on localhost or on a remote server. When running on a remote server, you can edit the template files via the Files page in the Admin area.
The Setup Table controls aspects that can be changed while the server is running, and is intended to contain both Moxie.Build specific values as well as application specific.
Brief overview on the file structure and contents under Moxie. The files and folders discussed in this post are those that are essential when upgrading to the most recent version of Moxie.Build , or when troubleshooting server errors.
This utility program manages a server install with one or many Moxie.Build services running by taking care of nightly tasks via a scheduled task.
Moxie.Build, in short, may be used and licensed free of charge for education and non-profit organizations. Whenever it is used by government or for-profit organizations the license is granted on a subscription basis.
Moxie.Build includes a number of open source components as part of its distribution; each is subject to their own licenses as included with the files for those components.
Cloudflare automatically provides free client-facing certificates for your domain, even if using their free service. In addition, they provide free Origin Certificates to encrypt the connection between Cloudflare and your origin Moxie.Build server. Use this article if you are going to have Cloudflare connect to inbound open ports on your Moxie.Build server.
Markdown enables simple formatting of plain text via easy to remember conventions. This page will provide you with some pointers on what formatting options are available with "Moxie Flavored Markdown".
In this example, we use a plain old Moxie.Build system and compare it to the MEAN Stack equivalent by building two functionally equivalent versions of a fleshed out To Do List Application. Both versions utilize local user authentication, a relational database system and the security measures found in typical production-level applications on the web today.
Web/API Development Platform with an in-memory database, native-code CMS, and a powerful runtime environment Whether you are a new startup taking off or optimizing your business model for growth, Moxie.Build provides a robust platform with a proven track record for marketplaces, eCommerce, and business process automation
The following video demonstrates how to download Moxie.Build to your workstation, and run it on localhost.
This video demonstrates how to get started with Moxie.Build with basic customization.
Takes 6 parameters, Location, Mode, ActionLabel, ActionPath, Class, ActionMethod
Takes two parameters, Source, Match
Takes 5 parameters, Location, Mode, Class/ID, Init, bNoAutoAlign
Takes 6 parameters, Location, Mode, Div, Data, Script, Extra
Takes two parameters, Title, Path
Takes one parameter, Source
Takes two parameters Command, Options
Takes 6 parameters, Name, Value, Path, Domain, Expires, Other
Takes seven parameters, Location, Mode, Prompt, Path, Class, Name, HelpText
Takes one parameter, bNoHeaders
Takes one parameter, Source
Takes one parameter, ErrMsg
Takes two parameters, Source, Search
Takes three parameters, Location, ClassNames, AlertText
Takes two parameters, Source, Value
Takes two parameters, Source, AllowedCharacters (case sensitive)
Takes two parameters, Source, AllowedCharacters (case sensitive)
Takes one parameter, Source
Takes two parameters, Source, Match
Takes two parameters, Source, Match
Takes two parameters, Source, Match
Takes two parameters, Location, Mode
Takes two parameters, Source, Value
Takes two parameters, Source, Value
Takes two parameters, Source, Search
Takes one parameter, Source
Has one parameter, Options
Takes two parameters, Source, Value
Takes one parameter, PathToFile
Takes one parameter, a Source value
Takes one parameter, a Source value
Takes two parameters, Source, Match
Has no parameters
Has one parameter
Takes two parameters, Source, Match
Has two parameters: Source, Options
Has two parameters: Source, Options
Takes two parameters: Username, GroupTypes
Takes one parameter, EscapedTemplate, and returns the Unescaped Version of this string
Takes four parameters, FieldBase, Destination, Source, IfLenFld
Takes three parameters, TableName, Alias, Password
Takes one existing Source value, and two parameters, Search, NewVal
Takes one parameter, Name
Takes two parameters, Source, Value
Takes one existing Source value, and two parameters of equal length, SearchVals, NewVals
Takes two parameters, Source and Match
Takes two parameters, Source and Match
Takes one parameter, a Date value
Takes two parameters, Source and Match
Takes one parameter, Source
Takes one parameter, Source
Takes two parameters, Source and Match
Takes two parameters, name, value
Takes 7 parameters, FieldBase, Destination, Source, OffsetVal, Operator, OpValue, IfLenFld
Takes three parameters, FieldBase, Fields, IfLenFld
Takes three parameters, QueryName, FieldBase, FieldNames
Takes two parameters, ExcelTableData, Options
Takes a variable number of parameters
Takes 6 parameters, FieldBase, Destination, Function, Source, Value, IfLenFld
Takes two parameters, FilePath, bUseHeader
Takes eight parameters, TableName, OldOtherTableName, NewOtherTableName, ParentChild, Ratio, Note, Attr, DevNote
Takes ten parameters, TableName, OldProcName, NewProcName, Type, Params, GroupTypes, Label, Note, DevNote, Source
Takes seven parameters, TableName, OldFieldName, NewFieldName, Label, Note, Attr, DevNote
Takes two parameters, CSVData, bNoHeaders
Takes two parameters, CSVData, bNoHeaders
Takes a variable number of parameters
Takes two parameters, FileName, bHasHeader
Takes a variable number of parameters, FieldBase, Test1, Test2, [etc..]
Takes two parameters, FieldBase, FieldNamesList
Takes two parameters, PathToFile, Options
Takes two parameters, FileName, bHasHeader
Takes two parameters, FileName, bHasHeader
Takes a variable number of parameters, FieldBase, Test1, Test2, [etc...]
Takes two parameters, FileName, bHasHeader
Takes nine parameters, FieldBase, Destination, Function, Source1, Source2, Source3, Source4, Options, IfLenFld
Takes two parameters, FileName, bHasHeader
Takes 5 parameters, FieldBase, Destination, Action, Source, IfLenFld
Takes one parameter, FilePath
Takes two parameters, Data, Options
Has six parameters, UniqueParent, DestField, FieldBase, UniqueChild, EmbedFields, Options
Takes three parameters, ChildTableName, ParentTableName, Mode
Takes one parameter, TableName
Has no parameters.
Takes one parameter, TableName
Takes one parameter, TableName
Takes two parameters, TableName, IfLenFld
Has no parameters
Takes four parameters, DestinationTable, SourceTable, bWithParents, bWithPWHashes
Takes three parameters, Location, Mode, TemplateName
Takes one parameter, the contents of which are used for the HTTP Reply Body
Takes one parameter, Type
Takes two parameters, ChildTableName, Mode
Takes one parameter, Type
Takes one parameter, Name
Takes three parameters, Login, Password, bRememberMe
Takes a variable number of parameters, FieldBase, Destination, Source, Test1, Test2, [etc...]
Takes a variable number of parameters, FieldBase, Destination, Source, Test1, Test2, [etc...]
Takes two parameters, Data, bHasHeader
Takes seven parameters, TableName, OtherTableName, ParentChild, Ratio, Note, Attr, DevNote
Takes two parameters, FileName, Options
Takes two parameters, FileName, bUseHeader
Takes two parameters, CSVData, bNoHeaders
Takes nine parameters, TableName, ProcName, Type, Params, GroupTypes, Label, Note, DevNote, Source
Takes six parameters, TableName, FieldName, Label, Note, Attr, DevNote
Takes six parameters, FieldBase, Destination, Table, Alias, SourceField, IfLenFld
Takes six parameters, FieldBase, Destination, Function, Source, Value, IfLenFld
Takes six parameters, FieldBase, Destination, Function, Source, Value, IfLenFld
Takes two parameters, Location, Mode
Has one parameter, a Content.Lang prefix
Has one parameter.
Private Method contained within a given procedure.
Takes any unspecified data, intended for use by external systems
Takes a single Field name, with an optional Not operator, followed by the conditional statement
Takes a variable number of parameters, QueryName, MethodName, [Param1, [Param2, etc...]]
Takes 3 parameters, Destination, Action, Source
Takes a variable number of conditional statements
A special type of Private Method, called a Private Function, that is intended to return a single value or multiple values simultaneously.
Takes two parameters, Text, Title
Takes two parameters, QueryName, Title
Takes three parameters, QueryName, FieldBase, FieldNames
Takes a variable number of parameters.
Takes three parameters, Url, InputQuery, OutputQuery
Takes one parameter, QueryName
Used as a scoping keyword, similar to WorkWith/End WorkWith .
Takes one parameter, QueryName
Takes a single string as parameter, which is then appended to each line in the code block.
Takes three parameters, Url, SaaSTenant, InputQuery, OutputQuery
Has no parameters
Takes no parameters
Takes one parameter which is the keyboard key which will be used as the Access Key for a given Database Table's field.
*Note: By default, each Field's Access Key will be initialized to the first character of the Field's Label.
Parameter is divided into two parts, the Test and the Result if True. The test comes prior to the keyword of Then and the Result if True comes after.
Has no parameters.
Prerequisites: This tutorial assumes that you have already learned about Managing Files .
In order for source code to be more readily readable across teams, it is recommended that your source code always be styled according to this style guide.
Parameter is a comma separated list (using CSV rules and not in quotes) of the options made available to the user which are enforced on save.
Takes one parameter, the text of the error to throw.
Takes one parameter, the Name of the critical section
Takes one parameter, the text of the exception to throw.
Takes 2 parameters, Result, Status
In this example, you will see how to use a public method that works on or with the current WorkQuery that you pass into the method.
ExportSchema and ImportSchema are BuiltIn procedures that are available for use with source control systems.
Has one parameter
We empower your customers to take action.
Takes two parameters, FileName, bHasHeader
Takes a variable number of conditional statements to compare against a single source
Takes two parameters, User and Password
Takes three parameters Method, URL, Body
Takes one parameter bNoHeaders and returns the result to an assigned variable
Has no params
Has one parameter.
Takes either one parameter, ResultValue, or no parameters
Has no parameters
Has no params
Takes one parameter
Takes one parameter
Takes one parameter, a gregorian number
Takes one parameter, a date of the form yyyy-mm-dd
Takes no parameters
Takes 9 parameters, ServerName, Port, bSecure, Mode, Path, ContentType, extraHeader, body, rtnHeaders
Takes two parameters, Source, Options
Takes two parameters, Source, Search
Takes one parameter, Source
Takes two parameters, Source , Search
Takes five parameters, Lat1, Long1, Lat2, Long2, Options
Takes one parameter, FieldName
Cloudflared Tunnel exposes applications running on your local web server on any network with an internet connection with an outbound tunnel that connects directly to Cloudflare's edge network without the need to configure inbound firewall rules.
Cloudflare is a first and foremost a Web Application Firewall and Content Distribution Network, among other additional services.
Parameter is a comma separated list (using CSV rules and not in quotes) of the fixed hard coded values to select from
Some Work Query command parameters can accept a source of either a Work Query Field name or a text literal. Text literals in these cases are prefixed with a backtick ` character.
A traditional way to check for hard errors and enable those errors to error softly.
Takes one parameter, Value
Takes one parameter, ServerLogText
Takes one parameter, OutputText
Takes two parameter, URL, InputQuery
Takes one parameter, TestCondition
Has no parameters
Takes one parameter, Message, or no parameters
Takes one parameter, Message, or no parameters
Takes either one parameter, ResultValue, or no parameters
Takes no parameters
Parameter is divided into two parts, the Test and the Result if True. The test comes prior to the keyword of Then and the Result if True comes after.
Takes a variable number of parameters
Takes no parameters
Takes no parameters
A type of Prefix which allows the developer to separate blocks of code into organized, defined parts to help provide clarity of the logical block and add structure to the code.