RUAL Core v15.0.1
Our platform operates on software, commonly known as core. This software can be run either locally within the cloud environment of Enterprise Customers or within our AWS cluster.
Modified or newly introduced blocks
In this release 3 blocks have been modified and 45 new blocks were introduced. You'll find a complete list of blocks at the bottom of this page.
Files publish atomically
RUAL Core 15.0.1 is a storage-integrity release. Every file a blueprint writes is now published atomically: the block writes into a private temporary file, flushes it to storage, and only then renames it into place. A URL served from entity storage returns either the complete file or nothing: never a half-written image, a truncated download, or bytes that only existed in a cache. This holds even for the common chat-feed case where viewers open an attachment the instant it is posted.
Every file-writing block
The guarantee covers the whole file family: file_create and file_copy, image outputs from function_resize_image, function_image_to_webp and the image-composition blocks, spreadsheet exports, function_base64_to_file, EDI and SEPA documents, and function_zip / function_unzip. A block that fails mid-way (an image that cannot be encoded, an archive entry over its size budget, an interrupted write) no longer leaves a partial file at the destination: the destination keeps whatever it held before, and the temporary is cleaned up.
Uploads become visible only when complete
When function_save_file_from_form moves an uploaded file into its public location, the data is now flushed to storage before the public name appears. Previously the name could become servable while the bytes still sat in the writing node's cache, which made the very first viewers of a freshly posted attachment wait multiple seconds, or receive an incomplete file, while storage reconciled reader and writer. Resized variants written next to their source are covered by the same rule.
Re-uploading assets is safe
Uploading an asset under a name that already exists no longer risks the existing asset. A re-upload that fails (too large, empty, malformed, or interrupted) keeps the previous file and its asset record fully intact; an empty upload no longer truncates a valid asset in place. The old record is superseded only after the replacement file is completely written, immediately before the new record is created.
Block changes in detail
file New block: Changes how a PUBLISHED public-media file may be cached, on object storage and at the edge, without re-uploading it. Give no-store for media that must never be kept anywhere but its origin : a one-time photo the moment its message becomes one-time : or public, max-age=31536000, immutable to make it cacheable again. The resized variants of the file ({name}_{w}x{h}.{ext}, as resize image writes them, named after the file's filename as well as its path) are re-tagged with it. Only files in the trees the media mirror serves; a file outside them answers NOT_MIRRORED, a file that never reached the store OBJECT_MISSING. detect AI image file New block: Reads what an image says about how it was made, without any external service: C2PA content credentials, the IPTC digital source type and AI-system fields, and the generation records Stable Diffusion tools write. Names the generator (for example GPT-4o, Adobe Firefly, Imagen 4 or a Stable Diffusion checkpoint) and its maker. Reads PNG, JPEG and WebP. A screenshot or re-encode strips this metadata, so ai generated off means nothing was found, not that a person made the image. end storage transaction function New block: Commits the storage transaction opened by start storage transaction and stores its result for a later retry of the same id. revert storage transaction function New block: Undoes every document write journaled by a storage transaction, newest first, refusing documents that changed since. start storage transaction function New block: Opens a storage transaction: every document create, update, remove and restore this flow performs until the end block is journaled so the whole group can be reverted as one. append message imapconnection New block: Files a raw message into a mailbox : typically a copy of what smtp send email just delivered, into the Sent folder, so the thread is complete in the user's mail client. delete messages imapconnection New block: Deletes messages by UID: flags them \Deleted and, by default, expunges them from the mailbox. Prefer imap move to the Trash folder when the account has one. fetch messages imapconnection New block: Downloads messages by UID and parses each into the same object mail parse produces : addresses, subject, text, html, attachments, headers. Does not mark them read unless mark seen is on. list mailboxes imapconnection New block: Lists the mailboxes (folders) on the account, with their special-use role (inbox, sent, trash, …) and, optionally, their message counts. move messages imapconnection New block: Moves messages by UID into another mailbox : the usual way to file what a flow has processed so the next poll does not see it again. open connection imapconnection New block: Opens an IMAP connection to a mailbox server. Nothing is read until another imap block runs; with verify on, the block signs in once and reports the result on success so a flow can branch before it polls. search imapconnection New block: Finds messages in a mailbox and returns their UIDs, newest first. Wire the UIDs into imap fetch to read them. Every criterion that is filled must match. set flags imapconnection New block: Marks messages read, unread, flagged, answered : or with a keyword of your own : by UID. parse message mail New block: Parses a raw RFC 822 / RFC 5322 message into addresses, subject, bodies, attachments and headers. Feed it the raw body of an inbound-mail webhook : http connection get raw body : or a stored .eml file. get batch mssgsmailconnection New block: Reads a batch back from mssgs mail: whether it was released, rejected as spam, or blocked. get message mssgsmailconnection New block: Reads a sent message back from mssgs mail: its status (queued, sent, failed, bounced), attempts and error. open connection mssgsmailconnection New block: Opens an mssgs mail connection for the send blocks. Leave both pins empty to use the mssgs mail service provider this entity binds to transactional email; name a provider to use a specific one; or pass a literal API key on api key. send email mssgsmailconnection New block: Sends one email through mssgs mail. The message is queued (status: queued) and delivered by the mail platform; read its outcome with get message. send email batch mssgsmailconnection New block: Sends ONE message to up to 1000 recipients, each receiving their own copy. mssgs mail spam-checks the message before releasing it; read the outcome with get batch. send email with template mssgsmailconnection New block: Sends one email whose subject and body come from a template stored on mssgs mail, rendered there against the template model. delete template mssgsmailconnection New block: Deletes a template from mssgs mail. get template mssgsmailconnection New block: Reads one template stored on mssgs mail for this sender domain. save template mssgsmailconnection New block: Creates or replaces a template on mssgs mail for this sender domain, addressed by its alias. list templates mssgsmailconnection New block: Lists the templates stored on mssgs mail for this sender domain. delete object s3connection New block: Removes an object. Deleting a key that is not there is not an error. get object s3connection New block: Downloads an object to a file. The object is streamed to disk, so a large file costs no extra memory. object exists s3connection New block: Checks whether an object exists and reads its size, type and metadata : without downloading it. list objects s3connection New block: Lists one page of a bucket's objects under a prefix. Feed next page token back into page token to walk a large bucket. open connection s3connection New block: Opens a connection to S3-compatible object storage (Ceph RGW, MinIO, Amazon S3). Point it at an object storage service provider so the secret key stays in the provider store and never appears in this blueprint : the key pins are the older way and leave the secret readable to anyone who can open the flow. presign get url s3connection New block: Creates a temporary URL that lets anyone read one private object, without proxying it through this server. Not available in a simulation : the URL is a real credential. presign put url s3connection New block: Creates a temporary URL that lets a browser upload one object directly to storage, without the file passing through this server. Not available in a simulation : the URL is a real credential. put object s3connection New block: Uploads a file to object storage. The file is streamed from disk, so an object of any size costs the same memory. put value s3connection New block: Uploads a value as an object : JSON, rendered text, or any payload the flow computed rather than read from disk. open connection smtpconnection New block: Opens an SMTP connection to a relay or submission host. Nothing is sent until smtp send email runs; with verify on, the block dials the host once (EHLO, STARTTLS, AUTH, QUIT) so the flow can branch on success before composing a message. send email smtpconnection New block: Builds an RFC 5322 message and hands it to the SMTP server on the connection. Use this to deliver through your own MTA (Exim, Postfix) rather than a hosted API. VPN / proxy check from IP value New block: Checks with MaxMind whether an IPv4/IPv6 address is a VPN, proxy, Tor exit or hosting network. Needs the maxmind_account_id and maxmind_account_license_key cluster settings and a MaxMind account with GeoIP Insights access; answers are cached for a day per address on web action web New block: Runs when a button or form on a web page of this blueprint calls the action with this name (data-action="name"). Answer with web replace, web remove, web insert, web update, web errors or web redirect: only those parts of the page change. web form errors web New block: Shows validation messages next to the fields of the form that sent the action. The browser clears a message as soon as the field is edited. web for each web New block: Repeats a row template for every item of a list, e.g. the rows of a table. Every row is keyed, so a web action can later replace or remove exactly that row. web insert web New block: Adds new HTML to the page: a new row at the end of a table, a new message at the top of a list. new web page web New block: A server-rendered web page on the given URL. Its flow ends in web render; buttons and forms on the page call this blueprint's on web action blocks and get back only the parts of the page that changed. web redirect web New block: Sends the visitor to another page: a real redirect on a page request, a navigation after a web action. web remove web New block: Removes one element from the page, e.g. the row of a deleted document. web render web New block: Renders the page template on the server and answers the request with the finished HTML: title, description, canonical link, Open Graph and Twitter tags, hreflang links and JSON-LD are written for you. Custom pins become template variables. web replace web New block: Replaces one element of the page (a row, a card, a button) with new HTML, rendered on the server. web template web New block: Renders a template to a piece of HTML: a section of a page, or the new version of one row for web replace. Custom pins become template variables. web update web New block: Gives one element of the page new contents, keeping the element itself: a counter, a total, a message. apple sso get auth url function Deprecated in this release, please avoid future use. apple sso refresh token function Deprecated in this release, please avoid future use. apple sso revoke token function Deprecated in this release, please avoid future use. apple sso verify code function Deprecated in this release, please avoid future use. google sso get auth url function Deprecated in this release, please avoid future use. google sso verify code function Deprecated in this release, please avoid future use. connect as customer function in-pin clientid: documentation updated • in-pin clientsecret: documentation updated connect as supplier function in-pin clientid: documentation updated • in-pin clientsecret: documentation updated storage left join document function in-pin include_removed: documentation updated • block documentation updated storage left join exists function in-pin include_removed: documentation updated • block documentation updated request passwordless login code function out-pin success: documentation updated • block documentation updated verify 2fa function in-pin method: documentation updated on api file upload on block documentation updated world bbox osmworld added out-pin retryable (condition) • out-pin geojson: documentation updated world tile osmworld added out-pin retryable (condition) • out-pin geojson: documentation updated price format state added in-pin currency (value, optional) Blocks introduced
append messageimapconnection Files a raw message into a mailbox : typically a copy of what smtp send email just delivered, into the Sent folder, so the thread is complete in the user's mail client. delete messages imapconnection Deletes messages by UID: flags them \Deleted and, by default, expunges them from the mailbox. Prefer imap move to the Trash folder when the account has one. delete object s3connection Removes an object. Deleting a key that is not there is not an error. delete template mssgsmailconnection Deletes a template from mssgs mail. detect ai image file Reads what an image says about how it was made, without any external service: C2PA content credentials, the IPTC digital source type and AI-system fields, and the generation records Stable Diffusion tools write. Names the generator (for example GPT-4o, Adobe Firefly, Imagen 4 or a Stable Diffusion checkpoint) and its maker. Reads PNG, JPEG and WebP. A screenshot or re-encode strips this metadata, so ai generated off means nothing was found, not that a person made the image. end storage transaction function Commits the storage transaction opened by start storage transaction and stores its result for a later retry of the same id. fetch messages imapconnection Downloads messages by UID and parses each into the same object mail parse produces : addresses, subject, text, html, attachments, headers. Does not mark them read unless mark seen is on. get batch mssgsmailconnection Reads a batch back from mssgs mail: whether it was released, rejected as spam, or blocked. get message mssgsmailconnection Reads a sent message back from mssgs mail: its status (queued, sent, failed, bounced), attempts and error. get object s3connection Downloads an object to a file. The object is streamed to disk, so a large file costs no extra memory. get template mssgsmailconnection Reads one template stored on mssgs mail for this sender domain. list mailboxes imapconnection Lists the mailboxes (folders) on the account, with their special-use role (inbox, sent, trash, …) and, optionally, their message counts. list objects s3connection Lists one page of a bucket's objects under a prefix. Feed next page token back into page token to walk a large bucket. list templates mssgsmailconnection Lists the templates stored on mssgs mail for this sender domain. move messages imapconnection Moves messages by UID into another mailbox : the usual way to file what a flow has processed so the next poll does not see it again. new web page web A server-rendered web page on the given URL. Its flow ends in web render; buttons and forms on the page call this blueprint's on web action blocks and get back only the parts of the page that changed. object exists s3connection Checks whether an object exists and reads its size, type and metadata : without downloading it. on web action web Runs when a button or form on a web page of this blueprint calls the action with this name (data-action="name"). Answer with web replace, web remove, web insert, web update, web errors or web redirect: only those parts of the page change. open connection s3connection Opens a connection to S3-compatible object storage (Ceph RGW, MinIO, Amazon S3). Point it at an object storage service provider so the secret key stays in the provider store and never appears in this blueprint : the key pins are the older way and leave the secret readable to anyone who can open the flow. open connection smtpconnection Opens an SMTP connection to a relay or submission host. Nothing is sent until smtp send email runs; with verify on, the block dials the host once (EHLO, STARTTLS, AUTH, QUIT) so the flow can branch on success before composing a message. open connection imapconnection Opens an IMAP connection to a mailbox server. Nothing is read until another imap block runs; with verify on, the block signs in once and reports the result on success so a flow can branch before it polls. open connection mssgsmailconnection Opens an mssgs mail connection for the send blocks. Leave both pins empty to use the mssgs mail service provider this entity binds to transactional email; name a provider to use a specific one; or pass a literal API key on api key. parse message mail Parses a raw RFC 822 / RFC 5322 message into addresses, subject, bodies, attachments and headers. Feed it the raw body of an inbound-mail webhook : http connection get raw body : or a stored .eml file. presign get url s3connection Creates a temporary URL that lets anyone read one private object, without proxying it through this server. Not available in a simulation : the URL is a real credential. presign put url s3connection Creates a temporary URL that lets a browser upload one object directly to storage, without the file passing through this server. Not available in a simulation : the URL is a real credential. put object s3connection Uploads a file to object storage. The file is streamed from disk, so an object of any size costs the same memory. put value s3connection Uploads a value as an object : JSON, rendered text, or any payload the flow computed rather than read from disk. revert storage transaction function Undoes every document write journaled by a storage transaction, newest first, refusing documents that changed since. save template mssgsmailconnection Creates or replaces a template on mssgs mail for this sender domain, addressed by its alias. search imapconnection Finds messages in a mailbox and returns their UIDs, newest first. Wire the UIDs into imap fetch to read them. Every criterion that is filled must match. send email smtpconnection Builds an RFC 5322 message and hands it to the SMTP server on the connection. Use this to deliver through your own MTA (Exim, Postfix) rather than a hosted API. send email mssgsmailconnection Sends one email through mssgs mail. The message is queued (status: queued) and delivered by the mail platform; read its outcome with get message. send email batch mssgsmailconnection Sends ONE message to up to 1000 recipients, each receiving their own copy. mssgs mail spam-checks the message before releasing it; read the outcome with get batch. send email with template mssgsmailconnection Sends one email whose subject and body come from a template stored on mssgs mail, rendered there against the template model. set flags imapconnection Marks messages read, unread, flagged, answered : or with a keyword of your own : by UID. start storage transaction function Opens a storage transaction: every document create, update, remove and restore this flow performs until the end block is journaled so the whole group can be reverted as one. web for each web Repeats a row template for every item of a list, e.g. the rows of a table. Every row is keyed, so a web action can later replace or remove exactly that row. web form errors web Shows validation messages next to the fields of the form that sent the action. The browser clears a message as soon as the field is edited. web insert web Adds new HTML to the page: a new row at the end of a table, a new message at the top of a list. web redirect web Sends the visitor to another page: a real redirect on a page request, a navigation after a web action. web remove web Removes one element from the page, e.g. the row of a deleted document. web render web Renders the page template on the server and answers the request with the finished HTML: title, description, canonical link, Open Graph and Twitter tags, hreflang links and JSON-LD are written for you. Custom pins become template variables. web replace web Replaces one element of the page (a row, a card, a button) with new HTML, rendered on the server. web template web Renders a template to a piece of HTML: a section of a page, or the new version of one row for web replace. Custom pins become template variables. web update web Gives one element of the page new contents, keeping the element itself: a counter, a total, a message. Blocks modified
price formatstate world bbox osmworld Fetch OSM world geometry for a bounding box (south,west,north,east) as GeoJSON (roads, buildings, water, greenery). world tile osmworld Fetch OSM world geometry for a slippy-map tile (z/x/y) as GeoJSON (roads, buildings, water, greenery). Recommended zoom: 15. Geometry is simplified per zoom (buildings stay crisp at z≥15).