Skip to content
Previous post Back to DOCUMENTATION Next post

DALIM SDK

The DALIM ES SDK is the next evolution of our development toolkit, succeeding the industry-leading DALIM DIALOGUE SDK. This powerful solution allows companies to seamlessly integrate DALIM DIALOGUE, our best in class online viewer, directly into their websites and applications.

But the ES SDK goes beyond its predecessor, enabling support for 3D files, video, and HTML content. Whether your integration is straightforward or highly sophisticated, the ES SDK offers the flexibility to meet your specific needs while harnessing the full capabilities of the ES platform.

One of the key advantages of the ES SDK being part of the ES ecosystem is that you can also leverage the ES API to further extend your integration. This opens up additional possibilities, allowing you to enhance and customise your applications even more. Additionally, with the ES SDK, you gain access to the ES workflow system for documents, streamlining and automating your document management processes.

With ES6, the ES SDK is now accessible to everyone.

Requirements

  • An ES6 system.
  • For high-resolution viewing, you'll need the Dialogue Engine and ES Core licenses.
  • For 3D, video, and HTML support, the New Media Annotation License is also required.

Quick Start

Let's take a look at the simplest way to implement the ES SDK to give you an idea of the potential integrations. In this scenario I am a Web2Print printer, that hosts a public website where customers can select a product, and then upload the file they would like to be printed.  

There are several key points I need to consider - Preflighting, Normalisation, Scalability, Speed to Preview, and finally Approval. I'm using an S3 volume to host files, and Dalim Drive for file processing. 

  1. -> Customer selects Product and uploads file
  2. -> File is uploaded and DALIM DRIVE is called
  3. -> File gets Preflighted, Normalised, Resized to Product, and Thumbnails are generated
  4. -> Website displays low-res thumbnails and returned Preflight information
  5. -> Customer approves Job from Thumbnail 

This works perfectly for end customers, but I want to offer this service to B2B - which will require a more in-depth approval. With the ES SDK I will be able to display the High-Res Normalised file as well as vital information and tools such as Document boxes, Channels, and the Densitometer. The ES SDK will also allow me to attach approval cycles to the Document, so if the Document needs a revision the user will be able to reject it, upload a new version and compare the differences between them. 

Let's set up the ES SDK for this task.

Security First

The first thing we need to do is login to ES and create an API Key - this is appended to every API call made to the SDK, without it, all calls will be unauthorised. 

Administration -> System Tools -> System Configuration -> SDK URL Keys

APIKey

User Management 

All actions inside of ES are linked to a User, this means you can verify exactly who did what, and when. I'm going to have lots of short-term users on my website, I want to avoid the unnecessary overhead of creating each Customer an account inside ES. To do this, I can allow ES to automatically create the User associated with the SDK Authenticate call. 

Administration -> System Tools -> System Configuration -> Production

AutoCreatedUser

Here I define a User Organisation, a logical group of Users for easy User Management, and a User Profile for the automatically created Users. The User profile controls what a User can and can't do in the system, here I could turn certain Dialogue tools on or off, or even force the User to have a colour calibrated monitor to be able to approve a Document. 

Defining the Volume

Next we need to give ES access to the same S3 volume that my website is using, it's worth noting that this could equally be on Google Cloud Storage, Dropbox, Box and SFTP among others. 

Administration -> I/O -> Volumes -> +

SDKS3Volume

For an S3 Bucket we need to define:

  • VolumeID - This is important for the SDK and will be referenced in each SDK call
  • Server name in the format <bucket>.<region>
  • The AccessKeyID in the User field
  • The SecretAccessKeyID in the password field
  • The Path inside S3 that we want to mount 

In my case, I want ES to monitor the bucket for any new files that get placed into the S3 so that ES can start processing them straight away. So I'll click the option Monitoring and also define: 

  • The name of an SQS that i've setup in AWS to trigger anytime a file is moved in my S3.

Once done ES will be able to see and monitor the same S3 my website is using, allowing me to browse and open the files from within ES. 

Authenticating

We now have everything we need to start opening Documents from my Web2Print website using the SDK. The first step is to Authenticate the User against ES with a GET call: 

https://$YourESURL/Esprit/admin/Authenticate?Document=$VolumeID:/&User=$Username&Key=$APIKey

A successful return gives me back an XML like this: 

<Authentication CSRFToken="222bb0a3d64a32b21e2cbed5f10724161e9411d" IsAuthenticated="true" SessionID="522642A5FF3040EA92F18C40881AA3B0"/>

As we are doing a simple integration, we only need to grab the SessionID and set this as a Cookie for any subsequent SDK calls.

Opening Dialogue

Now that we have the JSESSIONID set we can make the call to open the viewer: 

https://$YourESURL/Esprit/servlet/openDocument?Document=$VolumeID:$PathToFile 

ESSDKViewer

All I need to do now, is add a button to my website so my Customers can view, annotate and approve the print ready Document in HighRes. This will give them the confidence that what they're seeing on the screen will be as close as possible to the product they will receive.

- with a side note for my colleagues who are passionate about colour accuracy, of course only with a colour accurate monitor :-) 

Conclusion 

As you can see, it only takes a few steps to add the ES SDK into your technology stack - this was only a simple integration but there are many more features i could start to take advantage of. 

If you are looking to either migrate from the Dialogue SDK, or begin taking advantage of the ES SDK, please contact our support team at: helpdesk@dalim.com

About the author
Tom Price
Solutions Architect at DALIM SOFTWARE