Exolynk v0.9.5

Posted 2024-08-01 08:00:00 ‐ 3 min read

This article shows the details of the release v0.9.5

Following a list of all changes which are included with the v0.9.5 release.

E-Mails

Exolynk supports sending emails OOTB. Finally 🎉. They can be sent over an default system email account, which just works out of the box for you. This email allows you to send notifications directly to your users, but it's strongly forbids any kind of promotional mailings. To send any kinds of mails from you own account, it's now possible to leverage an SMTP connection. These complete new features can be used by any service within exolynk with the exo::be::Smtp and exo::be::Email endpoints.

Endpoints

It's now possible to create custom endpoint scripts, which can be called over the REST API. These endpoints handle incoming and outgoing data in an asynchronus way. This is a small example, which returns the request back the sender.

pub async fn main(req, res) {
    res.set_header("content-type", "text/plain")?;

    let reader = req.body()?;
    let writer = res.body()?;
    writer.copy(reader);

    Ok(res)
}

This functionality can be combined with the new file APIs which use the same, Reader and Writer structures to handle any kind of data or files.

Secrets Manager

With this version it's possible to define Secrets inside the Exolynk settings. Secrets can only be set over the UI and never be read. The defined secrets are stored securly inside the database and can only be accessed within a Service as following:

let sm = exo::be::SecretsManager::new().await?;
assert_eq!(sm.get("secret"), Some("Password"));

This Method should be used to not leak passwords or other security relevant data via a Service. The SecretsManager allows to load the correct secret from the database and is not exposing the secret to everyone who has access to the Service code.

New Features:

  • Sending emails with optional Exolynk theme #503
  • Code autocompletion for scripting
  • Added service hook new_record
  • Login loading spinner added
  • Exchanged anyscale with deepinfra as AI provider #504
  • Super Admin can change the Environment Ident #485
  • Added script functions base64::encode & base64::decode
  • Added a exo::Reader object to read data asynchronously
  • Added a exo::Writer object to write data asynchronously
  • Added exo::fs::read_file & exo::fs::read_file_preview functions
  • Added exo::fs::write_file & exo::fs::write_file_preview functions
  • Public pages don't need a special public user anymore
  • Added Endpoint functionality to create custom REST functions
  • Added the exo::be::SecretsManager for Services

Bug Fixes:

  • Record access_rights can be updated as list
  • User uuid is considered correctly for access_rights
  • Homelayout is now shown at first login #502
  • PNG files are now shown without error in file preview #506
  • Dyn workflow names in Table better displayed