How to use Azure AD Single sign on with Cypress

The challenge

At my current assignment we recently introduced Azure active directory based single sign on(SSO). Since we are building a React app we were able to leverage the react-adal library and implementing SSO on the front-end side was a matter of hours instead of days.

This however did pose a challenge for our end-to-end tests. We aim to perform a cycle that is as complete as possible in our end-to-end tests and decided that a valid JWT token and its validation should also be part of that suite. Cypress is our end-to-end testing tool and this offers a recipe for testing applications that use single sign on. Unfortunately this recipe didn’t provide us with a working solution, mainly because the (react-)adal library utilizes cross origin iframes for (re-) authentication. Cypress also runs the application under test in an iframe so we cannot leverage the existing iframe detection offered by react-adal.

Read more →

EventStorming; Continuous discovery beyond software modelling

Moving towards a microservices architecture

We see a lot of companies are moving towards a microservice architecture. The big pitfall of microservices architecture is to focus on the technology, how big the microservice needs to be, how many lines of codes, what entities do we put in a microservice, and using rest as the communication between them. But to succeed we need to focus on the problem space, by crunching domain knowledge and do domain modelling. EventStorming is a perfect fit for domain modelling, and almost all the microservices leaders seem to agree. Even ThoughtWorks finally put EventStorming on ‘adopt’ in their most recent rendition of their technology radar. But EventStorming has grown to be more than just a tool for domain modelling and to be successful and create autonomous teams you need to use EventStorming for more than only domain modelling.

Read more →

Agile Toolkit

  Pull coaching

Traditional Agile Coaching goes like this: we take a look at what you are doing and we advise you what we think is a good next step in your growth and Agile Maturity. These next steps are supported by exercises, simulations, insights and experience that come from our own personal Agile Backpack. At my last assignment, we wanted to learn the teams how to become more self-organizing and self-learning, to take initiative in their own growth path so that they really become owners of it. We decided to support the teams by pull coaching instead of push coaching. The Agile Toolkit was created to support this aid.

Read more →

Pub-Sub messaging with AWS SNS and SQS

When setting up a new application or platform, one of the most important things that you will need is messaging. As every part of the platform has a certain need for data, either realtime or after the fact, messages from other services within the application boundary need to be processed as efficiently as possible. This inter-executable messaging can go from simple notifications about something that happened in a domain (‘customer X changed his name to Y’) to a queue of outstanding jobs that are to be executed by workers. In any architectural case, be it (distributed) monolith, microliths, microservices or anything in between, messages will be there.

Read more →

FarmBot (Part 2): ‘Temporary’ raised bed

A couple of weeks ago we decided to continue building all FarmBot parts. After constructing these in large segments, we would assemble them together on top of the supportive construction, which was still missing.

To get more speed, I asked Sjuck – our house carpenter – to create a temporary solution made of wood. Since our motto still is Quality without Compromise, we were really happy when we saw the piece of art.

Read more →

Building Conversational Interfaces with Dialogflow

Ever since Siri became a standard feature on iOS, voice commands and conversational interfaces have gone through a renaissance of sorts, finally passing a threshold from gimmicky tech demos or science fiction to actual usability. They started out rough at first, being little more than voice command runners, but soon after they became fully conversational – that is, able to understand natural language instead of voice commands, able to ask follow-up questions.

Finally, they developed something of a personality, making them more human-sounding – done initially by adding self-aware sounding responses, often referencing Asimov’s philosophical work on AIs or Turing’s work on discerning an AI from a real person.

Read more →

EventStorming and how to monitor Domain Events for product management

We design, model, and create software to solve a problem for our customer (this can also be a customer from within the same company). Only when we do so, we focus naturally on solving the happy path and want to deliver that value as soon as possible. The only problem here is that we will always come to a point where we get corner cases or business exceptions, and the question starts to arise, what shall we do? Is it worth the effort to invest in building a solution for this, or can we leave this function out of the system because it is not worth it? To answer these question, we want, if possible, feedback from the system to know this. We can quickly get this feedback making it explicit in the form of a Domain Event during our EventStorming and start monitoring it. This way we can leave the options open until we know what to do.

Read more →

Share This