> For the complete documentation index, see [llms.txt](https://platform.intelie.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://platform.intelie.com/release-notes/live-3/3.15.0.md).

# 3.15.0

Released December 30, 2021

### New features

* Plugin healthcheck | Other plugins can now extend the Monitor list
* New lookup tables UI
* SMTP integration | Allows specifying a set of protocols enabled for SSL connection&#x20;

### Fixes and improvements

* \[fixed] First login with external authentication fails to identify an existing user with the same email
* \[fixed] Header size does not match the number of axes in vertical
* \[fixed] Some channels appear multiple times in the grouped tooltip
* \[fixed] Tooltip without background on the temporal pipes widget
* \[fixed] Legends being kept when new filter changes at the bar chart
* UI improvements at dashboard filter setup
* UI improvements at widget header
* Multiple UI/UX improvements at plugin admin screen

## Details

### Plugin healthcheck | Other plugins can now extend the Monitor list

{% tabs %}
{% tab title="Main.java" %}

```java
public class Main implements LivePlugin {
    public void start(Live live) throws Exception {
        ...
        HealthcheckMonitorService monitorService = Objects.requireNonNull(live.system().getPluginService(HealthcheckMonitorService.class));
        monitorService.registerMonitor(live, new MyMonitor());
        ...
    }
}
```

{% endtab %}

{% tab title="MyMonitor.java" %}

```java
public class MyMonitor implements HealthcheckMonitor {
        private static final String QUERY = ""; // some query
        private static final String EVENT_TYPE = ""; //some event type
        private Live.Action queriesHandler;

        @Override
        public void start(@NotNull Live live, @NotNull HealthcheckConfig healthcheckConfig) throws Exception {
            //start monitoring
            String statsEmail = healthcheckConfig.getGeneralStatsRecipient();
            final List<String> statsRecipients = Collections.singletonList(statsEmail);

            QueryListener.Empty listener = new QueryListener.Empty() {
                @Override
                public void onEvent(QueryEvent events, boolean history) throws Exception {
                    if (history) return;

                    Map<String, Object> stats = HealthCheckUtils.loadBaseEvent(live, EVENT_TYPE, HealthCheckUtils::hostNameSupplier);

                    for (Map<String, Object> event : events) {
                        stats.put("key1", event.get("key1"));
                    }

                    String json = LiveJson.toJson(stats);

                    HealthCheckUtils.sendEmailWithAttachments(live, json, statsRecipients);
                }
            };
            Query query = new Query(QUERY)
                    .follow(true)
                    .preloadWindow(true)
                    .description("My monitor query")
                    .listenWith(listener);

            queriesHandler = live.queries().run(query);
        }

        @Override
        public void stop(@NotNull Live live) throws Exception {
            //stop monitoring
            if (queriesHandler != null) {
                queriesHandler.close();
            }
        }
    }
```

{% endtab %}

{% tab title="pom.xml" %}

```xml
...
    <dependencies>
    ...
        <dependency>
            <groupId>net.intelie.live</groupId>
            <artifactId>plugin-healthcheck</artifactId>
            <version>3.15.0</version>
            <scope>provided</scope>
        </dependency>
        ...
    </dependencies>
...
```

{% endtab %}
{% endtabs %}

### SMTP integration | Allows specifying a set of protocols enabled for SSL connection&#x20;

SMTP integration screen allows specifying a set of protocols for SSL connection. By default the plugin offers `TLSv1.0, TLSv1.1, TLSv1.2`, however, this list is extensible and accepts other protocols&#x20;

![Default list of protocols](https://3214244039-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lov7jZs3pzHFyAcuuli%2Fuploads%2F9zwOmBHtxibooecvdlUo%2Fimage.png?alt=media\&token=2963470a-4c1f-4095-bb48-7ca66c9b352e)

### New lookup tables UI

![Distinction between lookup tables created by user and plugin ](https://3214244039-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lov7jZs3pzHFyAcuuli%2Fuploads%2FWSGMw0SBQf9emSbIjYEo%2Fimage.png?alt=media\&token=4fb1cddc-88ba-497e-b74f-e073e08edb85)

![Lookup created by User](https://3214244039-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lov7jZs3pzHFyAcuuli%2Fuploads%2FgHmFY2BFT5OJqfoVsiL7%2Fimage.png?alt=media\&token=5eb6bade-9dae-457a-a24b-fd915a13d319)

![Lookup created by plugin](https://3214244039-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lov7jZs3pzHFyAcuuli%2Fuploads%2FO6syRHdIBP7fzCvF3yZx%2Fimage.png?alt=media\&token=b325614d-45c9-4f70-ac36-85574dce7a97)
