Manatee v1.26

Release Notes

Manatee v1.26 introduces the concept of services. A service is a configurable “module” which can be used in flows as a regular module would. The initial set of services are a mail-service and a serielport-service.

Services

  • Mail is a service for connecting to an IMAP/SMTP mail-server for sending and receiving emails. The services also includes a trigger making it possible to run flows in response to received mails. See the mail-service documentation also.
  • SerialPort is a service for communicating with serial-devices attached on e.g. usb-ports. It also includes a trigger for runing flows when data matching the configured trigger is received.

New modules

  • Mail. The mail-service includes a module for sending and receiving mails in flows, see its documentation for more information.
  • SerialPort. The serialprot-service includes a module for communicating with serial-devices, see its documentation for more information.
  • Clipboard module for reading/writing from/to the system clipboard and shortcuts for copying and pasting clipboard content. See its documentation for more information.
  • Crypto module has been added for all your en- and decryption needs. See its own documentation for details.
  • Desktop module has been added for interacting with virtual desktops. See its own documentation for details.
  • Html module has been added for parsing HTML. See its own documentation for details.
  • Tracer module has been added for interacting with the debugger/tracer for controlling flow execution. See its own documentation for details.

New triggers

  • A serial port trigger has been added. Connects to a serialport and triggers a flow when certain configured conditions are present.
  • A keyboard trigger has been added. This makes it possible to react to fast keyboard inputs, like those originating from a barcode scanner configured as a hid-input device.
  • A trigger based on filesystem changes has been added. This makes it possible to run a flow when a file in a configured folder is added, removed or changed.

Dialog features

  • HTML input can now extract its values from regular divs also. Previously only input elements supported this.
  • Tab-status is no longer reset when inputting values for radio- and select-boxes.
  • Debug.ger now accepts a maxWidth to make it possible to display a wider window.
  • It is now possible to request a different position for the input dialog.
  • Date input can now take a Javascript Date object as its default value.
  • Added support for table-based alignment (using columns and rows) for radio- and checkbox input types.
  • Added a TABLE input type for tabular/datagrid data.
  • Added a SPACER for insert blank vertical space.
  • Added a LISTOF input type which can take a combo of other input types and produce a list.
  • Input elements can now be produced dynamically by specifying a function instead of an object as input. The function must then return the object to use describing the input. If the function returns false then the input is not shown making this usable for complex dependencies as well.
  • The DATE input now takes a JavaScript Date object as default value

Fs module features

  • Fs now exposes the following extra special folders:
    • desktop
    • appdata for the users %APPDATA folder
    • startup for the users startup folder
    • personal for the user for users personal folder
  • Fs gains the following functions:
    • mv(from, to) to move files
    • rm(path) to remove files
    • cp(from, to) to copy files
    • exists(path) to check whether a file exists
    • encrypt/decrypt to en- and decrypt files
  • Fs.ls returns a set of strings, these now have the following extra properties/functions:
    • modified last modified date
    • created created date
    • access last access date
    • size in bytes
    • extension the extension of the file
    • name the name of the file
    • folder the parent folder
    • path full path i.e. folder + name + extension
    • mv(dest) to move a file
    • cp(dest) to copy a file
    • rm() to delete a file
    • encrypt/decrypt to en- and decrypt the file

Misc features

  • The Wait module has a new forWindow method making it possible to Wait.forWindow('with something specific in its title').
  • Windows.topMost or Windows.focused now returns the top-most window.
  • Improved error messages for application-attachment process. E.g. when java cannot be found the error will be “No java found”.
  • Improved error messages for missing methods in drivers.
  • Driver monitor mode refactored to be more consistent and returns better paths. This also lays the foundation for a far neater Cuesta UI for configuring fields.
  • PageDown and -Up keys now supported in PDFPreviewWindow.
  • Flows are now provided with information about how they were invoked, e.g. if invoked via a trigger then some information from that trigger is provided. The information is made available in the Inputs array.
  • Notification timeouts can now be updated - previously they were left out when a notification update contained them.
  • .inspect() on a field now works in web-browsers.
  • Manatee support windows (OffsetIndicator and friends) are no longer shown until they’re needed.
  • Subjects for flow-inputs can now be matched by their key also. Furthermore it is now possible to do a subject-regex with multiple groups and have all values in all groups supplied to the called flow.
  • .arguments on a ProcessProxy will now reveal its arguments for applicable processes (those started by Manatee).
  • Optimized performance of full-auto mode (reduced CPU for idle Manatees).
  • Manatee notification area icon now has a tooltip containing the connection and its status, latest update to cache and a few other stats.
  • Add an option to specify index for the clickCell method for use in tables.
  • The internal CM is now exposed for e.g. ContextParticipant implementors. Supports grpc, http and ws connections.

Configuration changes

  • The kwanza reconnect delay is made configurable.
  • The Cosmic JRE path has been added to default java-homes. This means that a stand-alone Java is no longer required to connect to Cosmic.
  • Add support for a ContextParticipant application. This is an application which gets full CM API access and is usable for applications that want full control (not driven by an internal driver) over their interactions with Manatee.

Fixes

  • Window.title() is now not a blocking operation.
  • Giving invalid input in configuration dialog (e.g. “foo” for an int setting) no longer crashes Manatee.
  • Internal SSL certificates can now be updated via Kwanza.
  • Better handling of multiple matching applications for a given configured application.
  • If the active session ends while flows are running they are now interrupted and a better error message is provided for the user.
  • CPU usage decreased by only starting to monitor for triggers when they’re really needed.
  • Speeded up java-app connection-time by not checking each java-bin twice.
  • Fixes issues with cache-corruption by making cache-entries immutable.
  • The CM now only changes state on applications when they’re not focsed. This was previously only done for java-applications. State can now always be read as well.
  • Fixed issues with IE driver connections and misc COM exceptions.
  • Automatically undim a dimmed window when the application is detached.
  • Fixed focus in the input dialog which was not working correctly with checkboxes.
  • Flows started from the external API is now checked s.t. they must be ACTION flows in order to run them.
  • Triggers can now be updated and Manatee will pick up the changes without having to restart.