The Barracuda App Server's resource files. See the build directory for build instructions.
-
core
- smq.js
- sha1.js - optionally used by form authenticator
- spark-md5.min.js optionally used by form authenticator
- .certificate
- cacert.shark - Used by function ba.sharkclient; assembled by mkCaCert.sh
- .lua
- http.lua - Module HTTP
- httpm.lua - Module HTTPM
- JSONS.lua - JSON Stream Parser Module
- jwt.lua - JSON Web Token (JWT) Module
- mqttc.lua - MQTT 5 Client
- mqtt3c.lua - MQTT 3.1.1 Client
- soap.lua and basoap.lua - Module SOAP
- socket.lua - Standard Lua socket portability module
- wfs.lua - Web File Server - server side
- xml2table.lua - callback table for xparser (xml parser)
- xmlrpc.lua - Module XML-RPC
- modbus
- client.lua - Modbus Client
- tracelogger - TraceLogger
- index.html - client implementation
- SMQ - directory with SMQ server side code, including broker
- wfm - directory with Web File Server - client side
-
opcua
- OPC-UA - directory with the OPC-UA Client and Server Lua code.
-
sparkplug - MQTT Sparkplug Library
- sparkplug.lua - The library
- sparkplug_b.proto - Sparkplug protobuf definition
-
mako - The Mako Server's Lua implementation
- .config - the Mako Server's core logic
- .openports - Logic for opening the server's listening ports
- noapp.shtml - sent to browser when no apps are loaded
- .lua
- asyncresp.lua
- loadconf.lua
- log.lua
- noapp.lua
- rwfile.lua
- psatpm.lua - Shared PSA TPM implementation; selected at build time for standalone Xedge
- seed.lua
- sqlutil.lua
-
xedge - Xedge's client and server code
- .config -- Xedge standalone
- .preload -- Xedge for Mako Server
- index.html
- README.md
- .lua
- 404.html
- intro.html
- ms-sso.lua
- rwfile.lua
- tpm.lua - Default softTPM startup and named-key API; replaced in PSA packages
- xedge.lua
- assets
- tree.css
- tree.js
- xedge.css
- xedge.js
- login
- index.lsp
- private
- command.lsp
- templates
- Various templates
Mako and standalone Xedge use softTPM
by default. Custom builds can use protected persistent keys through
PSA Crypto while retaining the
Lua TPM API.
See build-time resource selection.
Trusted PSA initialization sets ba.psa=true before validating the roots;
missing or incompatible roots are fatal, without a softTPM fallback.
Both hosts generate their default self-signed certificate using a named TPM
key. There are no bundled Mako/Xedge default private keys or leaf certificates.
Configured certificates and ACME remain supported; clients must explicitly
trust a self-signed identity. The shared core .certificate/cacert.shark remains
the outbound TLS trust store for file-based hosts such as Mako. Standalone
Xedge omits this file and requires BAS and Xedge to be compiled with
BA_ENABLE_EMBEDDED_CA=1, using inc/cacert.h. Xedge-on-Mako uses Mako's trust
configuration. These trust roots are separate from the default server identity.
Standalone Xedge deliberately encrypts xcfg.bin with a global configuration
key so devices in the same OEM trust domain can share configuration. PSA uses
SHA256(ba.tpm.globalkey("xedge.config",64)); the OEM must provision the same
global root value and match derivation settings on those devices. Choosing two
independent device-specific roots keeps the same Lua code but makes the file
device-specific. The softTPM
formula remains unchanged. Xedge hosted in Mako keeps its device-bound
uniquekey policy. See provisioning and migration.
Copying configuration never substitutes for retaining the PSA signing keys.
The shared Mako Server and Xedge Automatic Certificate Management Environment
(ACME) client is under src/core/.lua/acme/, with host adapters in src/mako/
and src/xedge/.
# Creates rtl/.certificate/cacert.shark from curl's cacert.pem
wget https://curl.se/ca/cacert.pem
SharkSSLParseCAList -b cacert.shark cacert.pem
rm -f cacert.pem