Getting A Route's Markup Via AttachFS

AttachFS provides a simple method to retrieve the representation or contents of an entity via a GET request for the object's identifier [even improper entities such as messages and attachments can be retrieved this way]. For simple clients this is often a more straight forward approach than WebDAV.

As of 0.1.49rc70 you can now retrieve the BPML markup of an OIE workflow by requesting the route's object id from AttachFS.

Easy StandardXML To JSON

Recemt commits to OpenGroupware Coils add a new jsonWriteAction action for OIE workflows. OIE has long had readJSON for serializing arbitrary JSON documents into XML. jsonWriteAction adds the ability to serialize StandardXML data into JSON documents [provided all the data-types represented in the StandardXML document can be persisted in JSON]. Date and date time values will be serialized as strings in the YYYY-MM-DDTHH:MM:SS format; date values will have a time value of "00:00:00'".

XPath Expression As Action Parameters

A new feature in the latest edition of OpenGroupware Coils [0.1.49rc67] is support for using XPath expressions as parameters for work-flow actions. When a work-flow action parameter begins with $XPath: the input message (which must be XML) is interrogated for the corresponding value prior to the action being performed. Evaluation of the XPath is performed after label substution allowing wild cards to be used to construct the query expression.

One use-case where this is frequently useful is when processing the "current" message within a foreach construct.

Introducing the CIA Namespace

No, do not panic. This post is not about OpenGroupware collaborating with that nefarious organization which overthrew the democratically elected governments of Guatemala and Iran. CIA is a simply new RPC namespace added in OpenGroupware Coils 0.1.49rc64; CIA stands for "Coils Interogation API".

Dealing with not so potent Idempotent values.

Idempotent values are hard to come by [in relational database terms these are what we call "primary keys"]; they uniquely identify some record, or value, or object. At least you are certain they do... until they don't. The great big world has a habit of not respecting the idem-potency of what you declare to be idempotent; something out there just recycles it anyway. This is no less true in IT systems like ERP applications than it is anywhere else.

A Simple Request To Print Feature

Support has been merged into the default branch for IPP [printing] operations. This functionality will be available in 0.1.49 provided the "pycups" modules is installed on the host(s).

Coils Specific Properties via WebDAV

WebDAV clients operate in the server's folder and document hierarchy. This is a convenient and powerful way to approach and manipulate the server's data - but it does obscure a significant amount of information as well. For example a document in WebDAV is known by it's filename [and perhaps its displayName as well, depending on the client]. But the object id is unavailable, as is the object id of the folder containing the document, the SHA-512 checksum, and a variety of other attributes.

AttachFS PUT to Projects and Tasks

AttachFS allows operations to be performed on BLOB content using simple HTTP operations such as GET and PUT; without much of the complexity [or the features!] of WebDAV. Most significantly AttachFS allows BLOBs (aka documents) to be manipulated by id rather than path – a simpler approach for a variety of clients and types of applictions. The ability to create and update project documents has been available since the original addition of the AttachFS presentation to the OpenGroupware Coils protocol bundles.

Python XML-RPC Calls Via "requests"

requests is the latest and greatest Python module for performing HTTP requests. This new module cleans up a great deal of the mechanics required for network requests as well as streamling the often combersome syntax used by urlib2 and the httplib modules. Requests can easily be used for making XML-RPC requests, to the zOGI API for example. Using requests avoids the need for transport objects in order to work with proxy servers and more advanced authentication methods.

Using nginx with OpenGroupware Coils

OpenGrouwpare Coils running as an unprivileged user doesn't have the ability to open privileged ports (ports below 1024, such as 25 [smtp], 80 [http], and 443 [https]). At this time the OpenGroupware Coils HTTP component also does not support TLS/SSL. The result of this is that OpenGroupware is almost always run behind some kind of the HTTP reverse proxy which will handle those more mechanical parts of the HTTP protocol. And today's premier reverse proxy is nginx.

Pages

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer