Connectivity

There are a few instances where sensei will try to communicate with the outside world to work properly. This document will describe each of these scenarios and also explain when these occur.

Overview

action

authentication

startup

periodically

  1. Create auth link

yes

  1. License check

yes

yes

  1. Cookbook locations

yes

yes

  1. Download cookbooks

yes

yes

yes

  1. Update check

yes

yes

  1. Push events to platform

yes

yes

  • authentication: this only occurs during the authentication process of sensei

  • startup: happens every time the IDE starts

  • periodically: happens periodically while the IDE is running

Details

License check

Sensei will try to fetch and renew its license by calling an endpoint and passing the unique user token and a machine identifier.

The endpoint is ${API}/license?token=${usertoken}&identifier=${machine-identifier}.

Cookbook locations

The location of which cookbooks that need to be loaded can be configured remotely. To fetch the latest configuration, sensei will call the endpoint ${API}/location.txt?token=${usertoken}

See also

Checkout How to distribute recipes for more information.

Download cookbooks

It is sensei (the IDE plugin) itself that will connect to the location provided in the cookbook configuration. Based on the type of resource, sensei will perform a GET-request, git clone/pull or read from the local filesystem.

This action will be run at startup, when an user manipulates a cookbook and every 2 hours.

Update check

Sensei will check if there is a new version available and will prompt you to update if there is. Sensei executes the IDE's logic to perform the update check. If sensei was installed using the custom repository (legacy method) then sensei will query the SCW platform, otherwise sensei will query the JetBrains plugin repository.

This action will run every 90 minutes.

Push events to platform

If the flag enable data collection has been switched on inside the company preferences section of the SCW platform, sensei will send over the user events. These events contain:

  • recipe_id

  • type of event (quickfix, remove, add, generator usage, description usage)

  • type of code (new code, existing code)

  • coding guideline (configurable as separate flag)

  • timestamp

  • vcs used

the events are sent to the endpoint: ${API}/track?token=${usertoken}

This action will run every 8 minutes after a 3 minute initial delay.