Tech Blog Menu

Tech Blog

Template-ish method pattern using java 8

Written By
Jonathan Rochette

In the Usage Analytics service, there is a layer that validates if a user is allowed to perform the requested action. This should not be a surprise for anybody as all applications have some kind of security or permission check somewhere. Since the UA service is built in a layer architecture, that’s the job of the permission layer. The code is pretty boilerplate and very similar for all the different calls. It follows this logic :

  • Extract user identity and account from token
  • Check if the user has the required permissions
    • If he does, call the service layer
    • If he doesn’t, throw an exception

Read more...

Blitz - The story behind this year’s challenge

Written By
William Fortin, Guillaume Simard

This year was the sixth edition of Coveo Blitz, our classic programming contest for students. The original purpose of the event is to find great, passionate developers and show them how fun, passionate, and driven our team is. We had the idea to step out of our comfort zone this year and focus on what we’ve learned in the last editions.

Read more...

Opening a Sitecore Dialog from a Bookmarklet

Written By
Jean-François L'Heureux

When developing dialogs, wizards and applications in Sitecore, a developer would have to open them many times per day. When the action to open them requires more than one click, a lot of time will be lost.

Wouldn’t it be nice if one could open a dialog from the browser console command line or a bookmark?

Read more...

Using React JSX with TypeScript

Written By
William Fortin

In the last months, we experienced with React and we enjoyed it a lot. As you may know, all Coveo’s web applications are built using TypeScript, so with the release of TypeScript 1.6 announcing support for React JSX syntax, we were stoked!

Read more...

Coveo JavaScript UI for Newcomers

Written By
Karel Mpungi

The new Coveo JS UI has been available for a while now. How about getting off to the right start? Well you’re at the right place, here is a tutorial on how to configure and use the new Coveo JS UI.

Read more...

Dreamforce Session Explorer - The story behind the app

Written By
Vincent Séguin

As some of you guys may know, Dreamforce is one of the biggest event in the enterprise software industry. For the #DF15 edition, we wanted to do a little something different than what we had done previously.

Read more...

Troubleshooting memory issues with CESService7

Written By
Yan Bussieres

Sometimes CES Service has memory issues and developping a way to fix memory issues with it was way needed.

By default, CES Service 7 should not use more than 50% of the RAM. This way, CES won’t monopolize all the available resources. However, sometimes the CES service is going to take more than 50% of the total RAM. The best way to find out why the service has this behavior is to create dump files.

Read more...

More Hackathons at Coveo

Written By
Guillaume Simard

We should really try this new technology…

It would be really cool if we could integrate these two components…

I’ve got a new idea on how we could solve this problem…

… but I don’t have time to do it.

How often do you hear this sort of statement? At Coveo, we hear it every week. Not because we’re overworked, not because we do not take the time to do things correctly. We hear this simply because we have a lot of ideas.

Read more...

DynamoDB Client Side Encryption

Written By
Jonathan Rochette

Since the June 20th 2015 release, it is possible to share custom reports with specified users. Before this release, the API calls for managing the custom reports were in the Coveo Cloud Platform API. This was mainly because the Usage Analytics service had no database other than AWS Redshift and we decided that report configurations did not belong in an analytics optimized database. We opted for the Cloud Platform database which is more configuration oriented.

As the Analytics service grows, the need for its own configuration storage began to be felt, so we decided to move the custom reports API to the UA Service and store the configuration in a new database. After an investigation, we decided to use AWS DynamoDB. Considering that this data can potentially be sensible customer information, it needs to be encrypted.

Read more...

Sandboxing JavaScript Execution in Java

Written By
Martin Laporte

The Query Pipeline on a Coveo index can be extended using JavaScript code running on the server. This has many benefits, but allowing arbitrary code to run in a server process opens the possibility for an admin to bring the server down in many creative ways. To protect against this we added functionality to the JS interpreter we’re using (DynJS) to prevent Bad Things from happening.

Read more...

< Older Newer >