We wanted to take time to highlight some changes that will be coming to the SDK web service in the next update of DLS. The changes are centered around reducing potential security risks as well as improving the overall end-user experience.
- Behavior change for disconnected users
Currently, when the JavaScript SDK tries to discover the DYMO SDK web service instance running on the machine, it does so by scanning all ports within a range. The first port that responds is the one that is used. If the JavaScript SDK connects to a web service instance the belongs to a disconnected user, printing will fail.
In the upcoming version of DLS, the web service for each user will suspend itself if the user disconnects (either due to fast-user switching or temporary RDP session disconnect on a remote machine). Once the user becomes active again, the service will resume. This will ensure that only one instance of the web service is active at any given time (NOTE: for Windows Terminal Server multiple users can be active simultaneously so multiple web service instances can be running) and will prevent any issues dues to multiple web service instances.
The DYMO SDK web service scans a 10 port range in order to find an available port to run on. In the event of all 10 ports being taken (meaning there are 10 active users logged onto a machine), any new users that log on will not have their own web service instance but instead use one of the existing 10 instances. For most common usage scenarios this will not be a problem. However, if the JavaScript SDK connects to another user’s instance (due to being the first to respond to the port scanning), shared printers for the other user will be visible through the SDK but shared printers for the current user will not.
- Random certificate generation
Root and exchange certificates will be generated randomly using strong cryptographic keys during DLS installation and discarded immediately after installation. This ensures the certificates are unique for every DLS installation and adds an extra layer of security to the DYMO SDK web service.
- Change in web service URI The DYMO SDK web service will be changed to use 0.0.1 instead of localhost as its URI to avoid host name spoofing. This means that the existing JavaScript SDK will not work with the new web service installed with DLS. An upgrade to the new version of the JavaScript SDK will be required if a user updates their DLS install. However, the new version of the JavaScript SDK will be backwards compatible with older versions of DLS.
- Firefox changes
The new web service for DLS Windows does not install a root certificate into Firefox’s local keychain. Instead, it enables Firefox’s built-in feature which allows Firefox to user OS certificates. This flag is set on DLS installation and removed on DLS uninstallation.
Sounds good. Will the update include version information in a checkEnvironment() call? That would be a helpful addition.
+1 to this request
+1 (MILLION) for being able to poll the specific version number so we know from now on exactly which DLS they are running. It would be SOOOO helpful for providing specific error messages if the JS calls could tell us they have 8.5.4 installed vs 8.7.1. Thanks!!!
I have the lastest SDK working on Safari 11+, however, when done through SSL encryption, it will not work. We have two versions of our system (test website without encryption and it works fine and our live website which has encryption and it won’t work).
Suggestions?
Hi Jason,
What do you mean by “it won’t work”?
Ron
Is there a way to use Dymo Label Web Service from web browser on a tablet?
Seems like the service is locked down to localhost / 0.0.1 and can’t be altered
I also don’t want to setup a proxy just for it to work
Sorry Josh,
If you want to use the tablet, you will need to use a proxy.
Ron
Is there documentation on how to do this? I’d like to be able to print labels from my phone.
I don’t think there is anything official, but you can search for the word ‘proxy’ in the comment section of these older posts for some ideas:
http://developers.dymo.com/2016/08/08/dymo-label-web-service-faq/
http://developers.dymo.com/2015/09/24/dymo-label-framework-javascript-library-2-0-open-beta-2/
Hi Owen,
Sorry, there is no documentation for this…
Ron
I am contacting you in hopes that I may be able to gain some insight into your DYMO Connect app for android. I am trying very hard to implement printing in my own app to my DYMO LabelWriter Wireless printer. However, DYMO has not yet released support for the developers. I know that it is in the works still, but any insight on how to connect and print to the printer would be greatly appreciated. I sincerely hope that you will be able to help me. Thank you for your time.
Hi Jacob,
I am sorry but we do not support any mobile platforms for our SDK. You can make a proxy service on a PC and connect to it to print.
will that work for you?
Ron
Any ETA? We really need this.
Hi Owen,
We are busy working on the release. I expect the release will be ready in less than one week.
Sorry for the delay.
Ron
How can we get the new JavaScript SDK before release so that we can ensure we update our library before the new version is officially released so it is a smooth transition with our customers who update to the new version?
Hi Sean,
You have complete control over the javascript portion of the SDK. Are you referencing the javascript SDK from our website directly? or are you copying and distributing the file yourself?
Ron
Hello could anyone help me, im using the javascript SDK and all of a sudden my labels print completely black. they were working fine before. If I use the windows application it works fine.
My label xml: https://hastebin.com/didejuwulo.xml
My javascript: https://hastebin.com/ovodizenid.html
Hi Tim,
Make sure you have the latest version of DLS installed. I have heard of older versions of the software having this issue.
Regards,
Ron
I’m someone new to this, I’ve been using a javascript and HTML and printing the labels by producing a dymo file with JQuery & JS that I download locally. This was fine, I was able to print off hundreds of tags from our e-commerce site but the latest Chrome update is flagging dymo files as naughty cause my wife a couple of extra mouse clicks every time.
I thought since you had a JS library implementation and the webservice I could perhaps leverage that so I downloaded the latest stuff, pointed to your latest framework and implemented PrintMeThatLabel to just see how it worked. The local web services are up as far as I tell at 127.0.0.1:41951, I can stop it/start. Your test says I should be able to print to it but if I put that address it to the PrintMeThatLable page running in the local browser it says it can’t find it. I feel like if I could just pipe the label file to the webservice I’d be all set but your documentation is a little dense -at least to me.
Hi Thomas,
This sounds like a security issue with Chrome. What questions are popping up from Chrome that must be answered?
Ron