diff --git a/client/.classpath b/client/.classpath index 9d31d09ea5..ebaff99648 100644 --- a/client/.classpath +++ b/client/.classpath @@ -213,5 +213,6 @@ + diff --git a/client/lib/java-semver-0.10.2.jar b/client/lib/java-semver-0.10.2.jar new file mode 100644 index 0000000000..875926e9ac Binary files /dev/null and b/client/lib/java-semver-0.10.2.jar differ diff --git a/server/.classpath b/server/.classpath index 79310f1f03..4c107334c3 100644 --- a/server/.classpath +++ b/server/.classpath @@ -5,10 +5,11 @@ + - + @@ -190,9 +191,9 @@ - - - + + + diff --git a/server/build.xml b/server/build.xml index 96830a4ece..9aa6606c12 100644 --- a/server/build.xml +++ b/server/build.xml @@ -1274,6 +1274,7 @@ + diff --git a/server/lib/java-semver-0.10.2.jar b/server/lib/java-semver-0.10.2.jar new file mode 100644 index 0000000000..875926e9ac Binary files /dev/null and b/server/lib/java-semver-0.10.2.jar differ diff --git a/server/src/com/mirth/connect/client/core/ConnectServiceUtil.java b/server/src/com/mirth/connect/client/core/ConnectServiceUtil.java index 9a6b003e75..426629f962 100644 --- a/server/src/com/mirth/connect/client/core/ConnectServiceUtil.java +++ b/server/src/com/mirth/connect/client/core/ConnectServiceUtil.java @@ -9,22 +9,30 @@ package com.mirth.connect.client.core; +import java.io.IOException; +import java.io.InputStreamReader; import java.net.URI; import java.nio.charset.Charset; -import java.util.ArrayList; +import java.nio.charset.StandardCharsets; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; import org.apache.commons.httpclient.HttpStatus; -import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.StatusLine; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.client.utils.HttpClientUtils; @@ -38,10 +46,12 @@ import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.BasicHttpClientConnectionManager; import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; -import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.zafarkhaja.semver.Version; import com.mirth.connect.model.User; import com.mirth.connect.model.converters.ObjectXMLSerializer; import com.mirth.connect.model.notification.Notification; @@ -51,9 +61,7 @@ public class ConnectServiceUtil { private final static String URL_CONNECT_SERVER = "https://connect.mirthcorp.com"; private final static String URL_REGISTRATION_SERVLET = "/RegistrationServlet"; private final static String URL_USAGE_SERVLET = "/UsageStatisticsServlet"; - private final static String URL_NOTIFICATION_SERVLET = "/NotificationServlet"; - private static String NOTIFICATION_GET = "getNotifications"; - private static String NOTIFICATION_COUNT_GET = "getNotificationCount"; + private static String URL_NOTIFICATIONS = "https://api.github.com/repos/openintegrationengine/engine/releases"; private final static int TIMEOUT = 10000; public final static Integer MILLIS_PER_DAY = 86400000; @@ -66,7 +74,7 @@ public static void registerUser(String serverId, String mirthVersion, User user, HttpPost post = new HttpPost(); post.setURI(URI.create(URL_CONNECT_SERVER + URL_REGISTRATION_SERVLET)); - post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params), Charset.forName("UTF-8"))); + post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params), StandardCharsets.UTF_8)); RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(TIMEOUT).setConnectionRequestTimeout(TIMEOUT).setSocketTimeout(TIMEOUT).build(); try { @@ -87,112 +95,130 @@ public static void registerUser(String serverId, String mirthVersion, User user, } } + /** + * Query an external source for new releases. Return notifications for each release that's greater than the current version. + * + * @param serverId + * @param mirthVersion + * @param extensionVersions + * @param protocols + * @param cipherSuites + * @return a non-null list + * @throws Exception should anything fail dealing with the web request and the handling of its response + */ public static List getNotifications(String serverId, String mirthVersion, Map extensionVersions, String[] protocols, String[] cipherSuites) throws Exception { - CloseableHttpClient client = null; - HttpPost post = new HttpPost(); - CloseableHttpResponse response = null; - - List allNotifications = new ArrayList(); + List validNotifications = Collections.emptyList(); + Optional parsedMirthVersion = Version.tryParse(mirthVersion); + if (!parsedMirthVersion.isPresent()) { + return validNotifications; + } + CloseableHttpClient httpClient = null; + CloseableHttpResponse httpResponse = null; + HttpEntity responseEntity = null; try { - ObjectMapper mapper = new ObjectMapper(); - String extensionVersionsJson = mapper.writeValueAsString(extensionVersions); - NameValuePair[] params = { new BasicNameValuePair("op", NOTIFICATION_GET), - new BasicNameValuePair("serverId", serverId), - new BasicNameValuePair("version", mirthVersion), - new BasicNameValuePair("extensionVersions", extensionVersionsJson) }; RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(TIMEOUT).setConnectionRequestTimeout(TIMEOUT).setSocketTimeout(TIMEOUT).build(); + HttpClientContext getContext = HttpClientContext.create(); + getContext.setRequestConfig(requestConfig); + httpClient = getClient(protocols, cipherSuites); + HttpGet httpget = new HttpGet(URL_NOTIFICATIONS); + // adding header makes github send back body as rendered html for the "body_html" field + httpget.addHeader("Accept", "application/vnd.github.html+json"); + httpResponse = httpClient.execute(httpget, getContext); - post.setURI(URI.create(URL_CONNECT_SERVER + URL_NOTIFICATION_SERVLET)); - post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params), Charset.forName("UTF-8"))); + int statusCode = httpResponse.getStatusLine().getStatusCode(); + if (statusCode == HttpStatus.SC_OK) { + responseEntity = httpResponse.getEntity(); - HttpClientContext postContext = HttpClientContext.create(); - postContext.setRequestConfig(requestConfig); - client = getClient(protocols, cipherSuites); - response = client.execute(post, postContext); - StatusLine statusLine = response.getStatusLine(); - int statusCode = statusLine.getStatusCode(); - if ((statusCode == HttpStatus.SC_OK)) { - HttpEntity responseEntity = response.getEntity(); - Charset responseCharset = null; - try { - responseCharset = ContentType.getOrDefault(responseEntity).getCharset(); - } catch (Exception e) { - responseCharset = ContentType.TEXT_PLAIN.getCharset(); - } - - String responseContent = IOUtils.toString(responseEntity.getContent(), responseCharset).trim(); - JsonNode rootNode = mapper.readTree(responseContent); - - for (JsonNode childNode : rootNode) { - Notification notification = new Notification(); - notification.setId(childNode.get("id").asInt()); - notification.setName(childNode.get("name").asText()); - notification.setDate(childNode.get("date").asText()); - notification.setContent(childNode.get("content").asText()); - allNotifications.add(notification); - } + validNotifications = toJsonStream(responseEntity) + .filter(dropOlderThan(parsedMirthVersion.get())) + .map(ConnectServiceUtil::toNotification) + .collect(Collectors.toList()); } else { throw new ClientException("Status code: " + statusCode); } - } catch (Exception e) { - throw e; } finally { - HttpClientUtils.closeQuietly(response); - HttpClientUtils.closeQuietly(client); + EntityUtils.consumeQuietly(responseEntity); + HttpClientUtils.closeQuietly(httpResponse); + HttpClientUtils.closeQuietly(httpClient); } - return allNotifications; + return validNotifications; } - public static int getNotificationCount(String serverId, String mirthVersion, Map extensionVersions, Set archivedNotifications, String[] protocols, String[] cipherSuites) { - CloseableHttpClient client = null; - HttpPost post = new HttpPost(); - CloseableHttpResponse response = null; + /** + * Creates a predicate to filter JSON nodes representing releases. + * The predicate returns true if the "tag_name" of the JSON node, when parsed as a semantic version, + * is newer than the provided reference version. + * + * @param version The reference {@link Version} to compare against + * @return A {@link Predicate} for {@link JsonNode}s that evaluates to true for newer versions. + */ + protected static Predicate dropOlderThan(Version version) { + return node -> Version.tryParse(node.get("tag_name").asText()) + .filter(version::isLowerThan) + .isPresent(); + } - int notificationCount = 0; + /** + * Converts an HTTP response entity containing a JSON array into a stream of {@link JsonNode} objects. + * Each element in the JSON array becomes a {@link JsonNode} in the stream. + * + * @param responseEntity The {@link HttpEntity} from the HTTP response, expected to contain a JSON array. + * @return A stream of {@link JsonNode} objects. + * @throws IOException If an I/O error occurs while reading the response entity. + * @throws JsonMappingException If an error occurs during JSON parsing. + */ + protected static Stream toJsonStream(HttpEntity responseEntity) throws IOException, JsonMappingException { + JsonNode rootNode = new ObjectMapper().readTree(new InputStreamReader(responseEntity.getContent(), getCharset(responseEntity))); + return StreamSupport.stream(rootNode.spliterator(), false); + } + /** + * Try pulling a charset from the given response. Default to UTF-8. + * + * @param responseEntity + * @return + */ + protected static Charset getCharset(HttpEntity responseEntity) { + Charset charset = StandardCharsets.UTF_8; try { - ObjectMapper mapper = new ObjectMapper(); - String extensionVersionsJson = mapper.writeValueAsString(extensionVersions); - NameValuePair[] params = { new BasicNameValuePair("op", NOTIFICATION_COUNT_GET), - new BasicNameValuePair("serverId", serverId), - new BasicNameValuePair("version", mirthVersion), - new BasicNameValuePair("extensionVersions", extensionVersionsJson) }; - RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(TIMEOUT).setConnectionRequestTimeout(TIMEOUT).setSocketTimeout(TIMEOUT).build(); + ContentType ct = ContentType.get(responseEntity); + Charset fromHeader = ct.getCharset(); + if (fromHeader != null) { + charset = fromHeader; + } + } catch (Exception ignore) {} + return charset; + } - post.setURI(URI.create(URL_CONNECT_SERVER + URL_NOTIFICATION_SERVLET)); - post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params), Charset.forName("UTF-8"))); + /** + * Given a JSON node with HTML content from a GitHub release feed, convert it to a notification. + * + * @param node + * @return a notification + */ + protected static Notification toNotification(JsonNode node) { + Notification notification = new Notification(); + notification.setId(node.get("id").asInt()); + notification.setName(node.get("name").asText()); + notification.setDate(node.get("published_at").asText()); + notification.setContent(node.get("body_html").asText()); + return notification; + } - HttpClientContext postContext = HttpClientContext.create(); - postContext.setRequestConfig(requestConfig); - client = getClient(protocols, cipherSuites); - response = client.execute(post, postContext); - StatusLine statusLine = response.getStatusLine(); - int statusCode = statusLine.getStatusCode(); - if ((statusCode == HttpStatus.SC_OK)) { - HttpEntity responseEntity = response.getEntity(); - Charset responseCharset = null; - try { - responseCharset = ContentType.getOrDefault(responseEntity).getCharset(); - } catch (Exception e) { - responseCharset = ContentType.TEXT_PLAIN.getCharset(); - } - - List notificationIds = mapper.readValue(IOUtils.toString(responseEntity.getContent(), responseCharset).trim(), new TypeReference>() { - }); - for (int id : notificationIds) { - if (!archivedNotifications.contains(id)) { - notificationCount++; - } - } - } - } catch (Exception e) { - } finally { - HttpClientUtils.closeQuietly(response); - HttpClientUtils.closeQuietly(client); + public static int getNotificationCount(String serverId, String mirthVersion, Map extensionVersions, Set archivedNotifications, String[] protocols, String[] cipherSuites) { + Long notificationCount = 0L; + try { + notificationCount = getNotifications(serverId, mirthVersion, extensionVersions, protocols, cipherSuites) + .stream() + .map(Notification::getId) + .filter(id -> !archivedNotifications.contains(id)) + .count(); + } catch (Exception ignore) { + System.err.println("Failed to get notification count, defaulting to zero: " + ignore); } - return notificationCount; + return notificationCount.intValue(); } public static boolean sendStatistics(String serverId, String mirthVersion, boolean server, String data, String[] protocols, String[] cipherSuites) { @@ -212,7 +238,7 @@ public static boolean sendStatistics(String serverId, String mirthVersion, boole RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(TIMEOUT).setConnectionRequestTimeout(TIMEOUT).setSocketTimeout(TIMEOUT).build(); post.setURI(URI.create(URL_CONNECT_SERVER + URL_USAGE_SERVLET)); - post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params), Charset.forName("UTF-8"))); + post.setEntity(new UrlEncodedFormEntity(Arrays.asList(params), StandardCharsets.UTF_8)); try { HttpClientContext postContext = HttpClientContext.create(); diff --git a/server/test/com/mirth/connect/client/core/ConnectServiceUtilTest.java b/server/test/com/mirth/connect/client/core/ConnectServiceUtilTest.java new file mode 100644 index 0000000000..d5061313f4 --- /dev/null +++ b/server/test/com/mirth/connect/client/core/ConnectServiceUtilTest.java @@ -0,0 +1,224 @@ +package com.mirth.connect.client.core; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.util.Optional; +import java.util.function.Predicate; +import java.util.stream.Stream; + +import org.apache.http.HttpEntity; +import org.apache.http.entity.BasicHttpEntity; +import org.apache.http.entity.InputStreamEntity; +import org.apache.http.message.BasicHeader; +import org.junit.Test; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.zafarkhaja.semver.Version; +import com.mirth.connect.model.notification.Notification; + +public class ConnectServiceUtilTest { + private static final String FILE_POPULATED = "notifications-populated.json"; + private static final String FILE_EMPTY = "notifications-empty.json"; + + /** + * Creates a streamable entity from the given file name in test resources. + * + * @param filename The name of the file in the test resources. + * @return An {@link InputStreamEntity} created from the file. + * @throws Exception if the file (resource) was not found. + */ + private InputStreamEntity createEntityFromFile(String filename) throws Exception { + InputStream is = getClass().getClassLoader().getResourceAsStream(filename); + + if (is == null) { + throw new Exception("Failed to find resource: " + filename); + } + + return new InputStreamEntity(is); + } + + /** + * Helper method to create a simple JsonNode with a "tag_name" property. + * @param tagName The value for the "tag_name" property. + * @return A {@link JsonNode} object. + */ + private JsonNode createJsonNodeWithTag(String tagName) { + ObjectMapper mapper = new ObjectMapper(); + return mapper.createObjectNode().put("tag_name", tagName); + } + + @Test + public void test_jsonStreamPopulated() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_POPULATED); + Stream stream = ConnectServiceUtil.toJsonStream(entity); + assertEquals("Expected all 25 elements to be present", 25L, stream.count()); + } + + @Test + public void test_jsonStreamEmpty() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_EMPTY); + Stream stream = ConnectServiceUtil.toJsonStream(entity); + assertEquals("Expected no elements in stream", 0L, stream.count()); + } + + @Test + public void test_getCharsetWhenMissing() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_POPULATED); + Charset charset = ConnectServiceUtil.getCharset(entity); + assertEquals(StandardCharsets.UTF_8.name(), charset.name()); + } + + @Test + public void test_getCharsetWhenSet() throws Exception { + //inspired by https://github.com/apache/httpcomponents-core/blob/4.4.x/httpcore/src/test/java/org/apache/http/entity/TestContentType.java#L173 + BasicHttpEntity entity = new BasicHttpEntity(); + String expectedCharset = "UTF-16"; + entity.setContentType(new BasicHeader("Content-Type", "application/json; charset=" + expectedCharset)); + // Set some dummy content for the entity to be valid, though getCharset only looks at headers + entity.setContent(new ByteArrayInputStream("{}".getBytes(StandardCharsets.UTF_8))); + Charset charset = ConnectServiceUtil.getCharset(entity); + assertEquals(expectedCharset, charset.name()); + } + + @Test + public void test_getCharsetWhenSetButNoCharsetParam() throws Exception { + BasicHttpEntity entity = new BasicHttpEntity(); + entity.setContentType(new BasicHeader("Content-Type", "application/json")); + entity.setContent(new ByteArrayInputStream("{}".getBytes(StandardCharsets.UTF_8))); + Charset charset = ConnectServiceUtil.getCharset(entity); + assertEquals(StandardCharsets.UTF_8.name(), charset.name()); + } + + @Test + public void test_dropOlderThan_currentIsOlderMajorVersion() throws Exception { + Version current = Version.parse("3.12.0"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertTrue("Predicate should be true if current version is older (major)", + predicate.test(createJsonNodeWithTag("4.0.0"))); + } + + @Test + public void test_dropOlderThan_currentIsNewerMajorVersion() throws Exception { + Version current = Version.parse("4.0.0"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertFalse("Predicate should be false if current version is newer (major)", + predicate.test(createJsonNodeWithTag("3.12.0"))); + } + + @Test + public void test_dropOlderThan_currentIsSameVersion() throws Exception { + Version current = Version.parse("4.0.0"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertFalse("Predicate should be false if current version is the same", + predicate.test(createJsonNodeWithTag("4.0.0"))); + } + + @Test + public void test_dropOlderThan_currentIsOlderMinor() throws Exception { + Version current = Version.parse("4.0.1"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertTrue("Predicate should be true if current version is older (minor)", + predicate.test(createJsonNodeWithTag("4.1.1"))); + } + + @Test + public void test_dropOlderThan_currentIsNewerMinor() throws Exception { + Version current = Version.parse("4.1.1"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertFalse("Predicate should be false if current version is newer (minor)", + predicate.test(createJsonNodeWithTag("4.0.1"))); + } + + @Test + public void test_dropOlderThan_currentIsOlderRevision() throws Exception { + Version current = Version.parse("4.0.0"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertTrue("Predicate should be true if current version is older (revision)", + predicate.test(createJsonNodeWithTag("4.0.1"))); + } + + @Test + public void test_dropOlderThan_currentIsNewerRevision() throws Exception { + Version current = Version.parse("4.0.1"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertFalse("Predicate should be false if current version is newer (revision)", + predicate.test(createJsonNodeWithTag("4.0.0"))); + } + + @Test + public void test_dropOlderThan_predicateIsFalseForInvalidOtherVersion() throws Exception { + Version current = Version.parse("4.0.1"); + Predicate predicate = ConnectServiceUtil.dropOlderThan(current); + assertFalse("Predicate should be false if the other version string is invalid", + predicate.test(createJsonNodeWithTag("INVALID_VERSION_STRING"))); + } + + // Tests for notification filtering using dropOlderThan + @Test + public void test_filterNotifications_currentVersionNewerThanAllOther() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_POPULATED); + Version current = Version.parse("4.6.0"); + Stream notifications = ConnectServiceUtil.toJsonStream(entity) + .filter(ConnectServiceUtil.dropOlderThan(current)); + assertEquals("Expected no notifications given a current version newer than all others", 0L, notifications.count()); + } + + @Test + public void test_filterNotifications_emptyComparisonList() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_EMPTY); + Version current = Version.parse("1.0.0"); + Stream notifications = ConnectServiceUtil.toJsonStream(entity) + .filter(ConnectServiceUtil.dropOlderThan(current)); + assertEquals("Expected no notifications given an empty comparison list", 0L, notifications.count()); + } + + @Test + public void test_filterNotifications_matchingLatestVersion() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_POPULATED); + Version current = Version.parse("4.5.2"); + Stream notifications = ConnectServiceUtil.toJsonStream(entity) + .filter(ConnectServiceUtil.dropOlderThan(current)); + assertEquals("Expected no notifications given a current version matching the latest in other list", 0L, notifications.count()); + } + + @Test + public void test_filterNotifications_someVersionsNewer() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_POPULATED); + Version current = Version.parse("4.2.0"); + Stream notifications = ConnectServiceUtil.toJsonStream(entity) + .filter(ConnectServiceUtil.dropOlderThan(current)); + assertEquals("Expected newer versions to generate notifications", 7L, notifications.count()); + } + + @Test + public void test_filterNotifications_allVersionsNewer() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_POPULATED); + Version current = Version.parse("1.0.0"); + Stream notifications = ConnectServiceUtil.toJsonStream(entity) + .filter(ConnectServiceUtil.dropOlderThan(current)); + assertEquals("Expected all versions in populated list to be newer", 25L, notifications.count()); + } + + @Test + public void test_notificationInfo() throws Exception { + HttpEntity entity = createEntityFromFile(FILE_POPULATED); + Optional firstNode = ConnectServiceUtil.toJsonStream(entity).findFirst(); + + assertTrue("A node was expected to act upon", firstNode.isPresent()); + + JsonNode orig = firstNode.get(); + + Notification created = ConnectServiceUtil.toNotification(orig); + assertEquals(orig.get("id").asInt(), (int) created.getId()); + assertEquals(orig.get("name").asText(), created.getName()); + assertEquals(orig.get("published_at").asText(), created.getDate()); + assertEquals(orig.get("body_html").asText(), created.getContent()); + } +} diff --git a/server/test/resources/notifications-empty.json b/server/test/resources/notifications-empty.json new file mode 100644 index 0000000000..41b42e677b --- /dev/null +++ b/server/test/resources/notifications-empty.json @@ -0,0 +1,3 @@ +[ + +] diff --git a/server/test/resources/notifications-populated.json b/server/test/resources/notifications-populated.json new file mode 100644 index 0000000000..0353d36ad9 --- /dev/null +++ b/server/test/resources/notifications-populated.json @@ -0,0 +1,1144 @@ +[ + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/176445080", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/176445080/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/176445080/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.5.2", + "id": 176445080, + "author": { + "login": "jdonextgen", + "id": 100001865, + "node_id": "U_kgDOBfXoSQ", + "avatar_url": "https://avatars.githubusercontent.com/u/100001865?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jdonextgen", + "html_url": "https://github.com/jdonextgen", + "followers_url": "https://api.github.com/users/jdonextgen/followers", + "following_url": "https://api.github.com/users/jdonextgen/following{/other_user}", + "gists_url": "https://api.github.com/users/jdonextgen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jdonextgen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jdonextgen/subscriptions", + "organizations_url": "https://api.github.com/users/jdonextgen/orgs", + "repos_url": "https://api.github.com/users/jdonextgen/repos", + "events_url": "https://api.github.com/users/jdonextgen/events{/privacy}", + "received_events_url": "https://api.github.com/users/jdonextgen/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4KhFaY", + "tag_name": "4.5.2", + "target_commitish": "development", + "name": "Mirth Connect 4.5.2", + "draft": false, + "prerelease": false, + "created_at": "2024-09-10T13:12:21Z", + "published_at": "2024-09-23T16:36:51Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.5.2", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.5.2", + "body_html": "

Mirth® Connect 4.5.2 is a patch release that includes enhancements, bug fixes, and security improvements. For more details, visit our See What's New and Release Notes pages linked below.

\n

NOTICE: In 2025, Mirth® Connect will move to Java 17 as the minimum supported Java version.

\n

See What's New | Upgrade Guide | Release Notes

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/6310" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/167690613", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/167690613/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/167690613/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.5.1", + "id": 167690613, + "author": { + "login": "joaryche", + "id": 17276087, + "node_id": "MDQ6VXNlcjE3Mjc2MDg3", + "avatar_url": "https://avatars.githubusercontent.com/u/17276087?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/joaryche", + "html_url": "https://github.com/joaryche", + "followers_url": "https://api.github.com/users/joaryche/followers", + "following_url": "https://api.github.com/users/joaryche/following{/other_user}", + "gists_url": "https://api.github.com/users/joaryche/gists{/gist_id}", + "starred_url": "https://api.github.com/users/joaryche/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/joaryche/subscriptions", + "organizations_url": "https://api.github.com/users/joaryche/orgs", + "repos_url": "https://api.github.com/users/joaryche/repos", + "events_url": "https://api.github.com/users/joaryche/events{/privacy}", + "received_events_url": "https://api.github.com/users/joaryche/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4J_sF1", + "tag_name": "4.5.1", + "target_commitish": "release/4.5.1", + "name": "Mirth Connect 4.5.1", + "draft": false, + "prerelease": false, + "created_at": "2024-07-19T20:29:36Z", + "published_at": "2024-07-29T16:32:18Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.5.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.5.1", + "body_html": "

Mirth Connect 4.5.1 is a patch release that includes security improvements.

\n

See What's New | Upgrade Guide | Release Notes

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/6269" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/139361411", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/139361411/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/139361411/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.5.0", + "id": 139361411, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4ITnyD", + "tag_name": "4.5.0", + "target_commitish": "development", + "name": "Mirth Connect 4.5.0", + "draft": false, + "prerelease": false, + "created_at": "2024-01-19T21:11:27Z", + "published_at": "2024-01-31T17:07:21Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.5.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.5.0", + "body_html": "

This release is a major release that includes security updates and bug fixes. We have also updated the Duo Multi-Factor Authentication to use the new Universal Prompt because the Traditional Prompt will no longer be accessible after March 30, 2024. For more information about the Duo Multi-Factor Authentication changes, check out the 4.5.0 What's New and Upgrade Guide pages linked below. See the release notes for the list of fixes and updates.

\n

NOTICE (UPDATED): After reviewing community feedback, we have decided that starting in Mirth Connect version 4.7.0 and Mirth Connect Administrator Launcher version 1.5.0, we will be switching our minimum supported Java version from Java 8 to Java 17.

\n

See What's New | Upgrade Guide | Release Notes

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/6080", + "reactions": { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/139361411/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/128198598", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/128198598/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/128198598/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.4.2", + "id": 128198598, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4HpCfG", + "tag_name": "4.4.2", + "target_commitish": "development", + "name": "Mirth Connect 4.4.2", + "draft": false, + "prerelease": false, + "created_at": "2023-10-24T19:21:51Z", + "published_at": "2023-11-06T18:27:55Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.4.2", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.4.2", + "body_html": "

Mirth Connect 4.4.2 is a patch release that includes bug fixes and an improvement to exporting messages.

\n

See What's New | Upgrade Guide | Release Notes

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/5977" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/125276770", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/125276770/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/125276770/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.4.1", + "id": 125276770, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4Hd5Ji", + "tag_name": "4.4.1", + "target_commitish": "development", + "name": "Mirth Connect 4.4.1", + "draft": false, + "prerelease": false, + "created_at": "2023-10-10T17:23:22Z", + "published_at": "2023-10-16T17:47:07Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.4.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.4.1", + "body_html": "

Mirth Connect 4.4.1 is a patch release that includes security improvements.

\n

See What's New | Upgrade Guide | Release Notes - Connect | Release Notes - Connect Docker

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/5955" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/114552134", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/114552134/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/114552134/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.4.0", + "id": 114552134, + "author": { + "login": "jdonextgen", + "id": 100001865, + "node_id": "U_kgDOBfXoSQ", + "avatar_url": "https://avatars.githubusercontent.com/u/100001865?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jdonextgen", + "html_url": "https://github.com/jdonextgen", + "followers_url": "https://api.github.com/users/jdonextgen/followers", + "following_url": "https://api.github.com/users/jdonextgen/following{/other_user}", + "gists_url": "https://api.github.com/users/jdonextgen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jdonextgen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jdonextgen/subscriptions", + "organizations_url": "https://api.github.com/users/jdonextgen/orgs", + "repos_url": "https://api.github.com/users/jdonextgen/repos", + "events_url": "https://api.github.com/users/jdonextgen/events{/privacy}", + "received_events_url": "https://api.github.com/users/jdonextgen/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4G0-1G", + "tag_name": "4.4.0", + "target_commitish": "development", + "name": "Mirth Connect 4.4.0", + "draft": false, + "prerelease": false, + "created_at": "2023-07-20T21:49:05Z", + "published_at": "2023-07-31T19:15:56Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.4.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.4.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 4.4.0 is a major release containing new features like adding new functionality to the Mirth Connect Setup Wizard such as:

\n
    \n
  1. Adding the ability to download and install your Mirth Connect commercial extensions at the time Mirth Connect is installed or upgraded.
  2. \n
  3. When upgrading Mirth Connect, the Setup Wizard now displays the existing values for the Destination Directory, License Key, Network Ports, and Password Requirements from your mirth.properties file rather than the standard default values or the values that were entered previously.
  4. \n
\n

Other new features include improved event log messages and a new server event that fires when the Mirth Connect Server has finished starting up. This release also contains enhancements for the Mirth Connect Administrator Launcher, the Mirth Connect Docker images, and several bug fixes, security improvements, and updates to both Mirth Connect Core and our commercial extensions.

\n

See What's New | Upgrade Guide | Release Notes

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/5864", + "reactions": { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/114552134/reactions", + "total_count": 2, + "+1": 2, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/97204987", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/97204987/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/97204987/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.3.0", + "id": 97204987, + "author": { + "login": "joaryche", + "id": 17276087, + "node_id": "MDQ6VXNlcjE3Mjc2MDg3", + "avatar_url": "https://avatars.githubusercontent.com/u/17276087?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/joaryche", + "html_url": "https://github.com/joaryche", + "followers_url": "https://api.github.com/users/joaryche/followers", + "following_url": "https://api.github.com/users/joaryche/following{/other_user}", + "gists_url": "https://api.github.com/users/joaryche/gists{/gist_id}", + "starred_url": "https://api.github.com/users/joaryche/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/joaryche/subscriptions", + "organizations_url": "https://api.github.com/users/joaryche/orgs", + "repos_url": "https://api.github.com/users/joaryche/repos", + "events_url": "https://api.github.com/users/joaryche/events{/privacy}", + "received_events_url": "https://api.github.com/users/joaryche/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4Fyzr7", + "tag_name": "4.3.0", + "target_commitish": "development", + "name": "Mirth Connect 4.3.0", + "draft": false, + "prerelease": false, + "created_at": "2023-03-09T20:28:09Z", + "published_at": "2023-03-28T16:11:37Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.3.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.3.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208 / CVE-2023-37679. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 4.3.0 is a major release containing new features like adding new functionality to the Mirth Connect Setup Wizard, adding the ability for resource and channel-specific classloaders to load child-first or parent-first, and added a default implementation of the getObjectsForSwaggerExamples() method in the ServicePlugin class. This release also contains enhancements for the Mirth Connect Administrator Launcher, the Mirth Connect Docker images, and several bug fixes and security improvements.

\n

See What's New | Upgrade Guide | Release Notes

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/5736", + "reactions": { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/97204987/reactions", + "total_count": 6, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 4, + "confused": 0, + "heart": 0, + "rocket": 2, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/85343153", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/85343153/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/85343153/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.2.0", + "id": 85343153, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4FFjux", + "tag_name": "4.2.0", + "target_commitish": "development", + "name": "Mirth Connect 4.2.0", + "draft": false, + "prerelease": false, + "created_at": "2022-11-29T22:33:01Z", + "published_at": "2022-12-07T18:43:04Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.2.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.2.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208 / CVE-2023-37679. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 4.2.0 is a major release containing new features like streamlining the process of selecting a listener port, adding the usernames to the overwriting channel changes warning message, adding additional, sortable columns to the Events screen, and being able to select multiple messages when sending messages through a channel. We also added new message integrity features like adding new JavaScript utility methods for hashing channel messages and automatically hashing outgoing messages. This release also contains enhancements for the Mirth Connect Administrator Launcher and several bug fixes, security improvements, and updates to the commercial extensions.

\n

See What's New | Upgrade Guide | Release Notes

", + "reactions": { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/85343153/reactions", + "total_count": 1, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/76621540", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/76621540/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/76621540/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.1.1", + "id": 76621540, + "author": { + "login": "jdonextgen", + "id": 100001865, + "node_id": "U_kgDOBfXoSQ", + "avatar_url": "https://avatars.githubusercontent.com/u/100001865?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jdonextgen", + "html_url": "https://github.com/jdonextgen", + "followers_url": "https://api.github.com/users/jdonextgen/followers", + "following_url": "https://api.github.com/users/jdonextgen/following{/other_user}", + "gists_url": "https://api.github.com/users/jdonextgen/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jdonextgen/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jdonextgen/subscriptions", + "organizations_url": "https://api.github.com/users/jdonextgen/orgs", + "repos_url": "https://api.github.com/users/jdonextgen/repos", + "events_url": "https://api.github.com/users/jdonextgen/events{/privacy}", + "received_events_url": "https://api.github.com/users/jdonextgen/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4EkSbk", + "tag_name": "4.1.1", + "target_commitish": "development", + "name": "Mirth Connect 4.1.1", + "draft": false, + "prerelease": false, + "created_at": "2022-08-24T17:30:08Z", + "published_at": "2022-09-08T17:23:43Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.1.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.1.1", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208 / CVE-2023-37679. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 4.1.1 is a patch release containing modifications to the Welcome to Mirth Connect screen and two fixed defects.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/73197971", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/73197971/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/73197971/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.1.0", + "id": 73197971, + "author": { + "login": "lmillergithub", + "id": 99997555, + "node_id": "U_kgDOBfXXcw", + "avatar_url": "https://avatars.githubusercontent.com/u/99997555?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/lmillergithub", + "html_url": "https://github.com/lmillergithub", + "followers_url": "https://api.github.com/users/lmillergithub/followers", + "following_url": "https://api.github.com/users/lmillergithub/following{/other_user}", + "gists_url": "https://api.github.com/users/lmillergithub/gists{/gist_id}", + "starred_url": "https://api.github.com/users/lmillergithub/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lmillergithub/subscriptions", + "organizations_url": "https://api.github.com/users/lmillergithub/orgs", + "repos_url": "https://api.github.com/users/lmillergithub/repos", + "events_url": "https://api.github.com/users/lmillergithub/events{/privacy}", + "received_events_url": "https://api.github.com/users/lmillergithub/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4EXOmT", + "tag_name": "4.1.0", + "target_commitish": "development", + "name": "Mirth Connect 4.1.0", + "draft": false, + "prerelease": false, + "created_at": "2022-07-29T18:08:28Z", + "published_at": "2022-07-29T18:47:37Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.1.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.1.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208 / CVE-2023-37679. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 4.1.0 includes new features such as new event log messages, additional fields to the Welcome to Mirth Connect screen, new information included in alerts as well as many smaller changes, updates, and improvements. This release also contains several improvements to commercial extensions.

\n

See What's New | Upgrade Guide | Release Notes

", + "reactions": { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/73197971/reactions", + "total_count": 2, + "+1": 1, + "-1": 0, + "laugh": 0, + "hooray": 1, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/65374146", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/65374146/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/65374146/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.0.1", + "id": 65374146, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4D5YfC", + "tag_name": "4.0.1", + "target_commitish": "development", + "name": "Mirth Connect 4.0.1", + "draft": false, + "prerelease": false, + "created_at": "2022-04-21T22:34:35Z", + "published_at": "2022-04-26T16:28:38Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.0.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.0.1", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208 / CVE-2023-37679. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 4.0.1 is a patch release containing a bug fix which includes fixing a Jetty keystore regression that caused Connect servers using a PKCS12 keystore containing a wildcard certificate and/or a certificate with a SAN to throw an exception on startup.

\n

See What's New | Upgrade Guide | Release Notes

", + "discussion_url": "https://github.com/nextgenhealthcare/connect/discussions/5158", + "reactions": { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/65374146/reactions", + "total_count": 2, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 2, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/63072651", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/63072651/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/63072651/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/4.0.0", + "id": 63072651, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "RE_kwDOCCE7Tc4DwmmL", + "tag_name": "4.0.0", + "target_commitish": "development", + "name": "Mirth Connect 4.0.0", + "draft": false, + "prerelease": false, + "created_at": "2022-03-21T14:59:08Z", + "published_at": "2022-03-29T18:56:57Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/4.0.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/4.0.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208 / CVE-2023-37679. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 4.0.0 includes new features such as a JavaScript Debugger, Login Notice and Consent dialog with options, Inactivity Logout with options, as well as many smaller changes, updates, and improvements. This release also contains several improvements to commercial extensions.

\n

See What's New | Upgrade Guide | Release Notes

", + "reactions": { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/63072651/reactions", + "total_count": 3, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 3, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + } + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/51058683", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/51058683/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/51058683/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.12.0", + "id": 51058683, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTUxMDU4Njgz", + "tag_name": "3.12.0", + "target_commitish": "development", + "name": "Mirth Connect 3.12.0", + "draft": false, + "prerelease": false, + "created_at": "2021-09-02T16:52:39Z", + "published_at": "2021-10-08T20:13:04Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.12.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.12.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

Mirth Connect 3.12.0 is a minor release that includes database performance improvements, improves visual HL7 representation, message pruning, keystore handling, PDF generation, community contributions, and fixes several security vulnerabilities. It also contains many improvements to commercial extensions.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/42025125", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/42025125/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/42025125/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.11.0", + "id": 42025125, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTQyMDI1MTI1", + "tag_name": "3.11.0", + "target_commitish": "development", + "name": "NextGen Connect 3.11.0", + "draft": false, + "prerelease": false, + "created_at": "2021-04-06T17:50:04Z", + "published_at": "2021-04-26T18:09:24Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.11.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.11.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.11.0 is a minor release that includes improvements to licensing and the NCPDP data type. It also includes various security fixes, general bug fixes, and improvements to commercial extensions.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/36406968", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/36406968/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/36406968/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.10.1", + "id": 36406968, + "author": { + "login": "cturczynskyj", + "id": 15792647, + "node_id": "MDQ6VXNlcjE1NzkyNjQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/15792647?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/cturczynskyj", + "html_url": "https://github.com/cturczynskyj", + "followers_url": "https://api.github.com/users/cturczynskyj/followers", + "following_url": "https://api.github.com/users/cturczynskyj/following{/other_user}", + "gists_url": "https://api.github.com/users/cturczynskyj/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cturczynskyj/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cturczynskyj/subscriptions", + "organizations_url": "https://api.github.com/users/cturczynskyj/orgs", + "repos_url": "https://api.github.com/users/cturczynskyj/repos", + "events_url": "https://api.github.com/users/cturczynskyj/events{/privacy}", + "received_events_url": "https://api.github.com/users/cturczynskyj/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTM2NDA2OTY4", + "tag_name": "3.10.1", + "target_commitish": "release/3.10.1", + "name": "NextGen Connect 3.10.1", + "draft": false, + "prerelease": false, + "created_at": "2021-01-05T22:05:20Z", + "published_at": "2021-01-14T18:54:27Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.10.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.10.1", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.10.1 is a patch release containing a few bug fixes including fixing a velocity replacement regression that caused velocity variables with hyphens to stop working properly and fixed an issue where installing extensions using the Connect Administrator would fail.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/33934269", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/33934269/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/33934269/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.10.0", + "id": 33934269, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTMzOTM0MjY5", + "tag_name": "3.10.0", + "target_commitish": "development", + "name": "NextGen Connect 3.10.0", + "draft": false, + "prerelease": false, + "created_at": "2020-11-05T21:49:02Z", + "published_at": "2020-11-13T18:51:00Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.10.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.10.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.10 includes better SQL Server database support, security improvements through fixes and library updates, and improvements for the Advanced Clustering plugin with a focus on improving performance of many of the tasks that are carried out on a frequent interval.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/29829664", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/29829664/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/29829664/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.9.1", + "id": 29829664, + "author": { + "login": "pladesma", + "id": 4097281, + "node_id": "MDQ6VXNlcjQwOTcyODE=", + "avatar_url": "https://avatars.githubusercontent.com/u/4097281?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pladesma", + "html_url": "https://github.com/pladesma", + "followers_url": "https://api.github.com/users/pladesma/followers", + "following_url": "https://api.github.com/users/pladesma/following{/other_user}", + "gists_url": "https://api.github.com/users/pladesma/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pladesma/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pladesma/subscriptions", + "organizations_url": "https://api.github.com/users/pladesma/orgs", + "repos_url": "https://api.github.com/users/pladesma/repos", + "events_url": "https://api.github.com/users/pladesma/events{/privacy}", + "received_events_url": "https://api.github.com/users/pladesma/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTI5ODI5NjY0", + "tag_name": "3.9.1", + "target_commitish": "release/3.9.1", + "name": "NextGen Connect 3.9.1", + "draft": false, + "prerelease": false, + "created_at": "2020-07-21T22:12:12Z", + "published_at": "2020-08-18T17:57:28Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.9.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.9.1", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.9.1 is a patch release containing a few bug fixes including plugging memory leaks for SMB and SFTP file readers as well as adding support for eHealth Exchange UDDI providers in the Interoperability plugin.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/25582093", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/25582093/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/25582093/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.9.0", + "id": 25582093, + "author": { + "login": "cturczynskyj", + "id": 15792647, + "node_id": "MDQ6VXNlcjE1NzkyNjQ3", + "avatar_url": "https://avatars.githubusercontent.com/u/15792647?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/cturczynskyj", + "html_url": "https://github.com/cturczynskyj", + "followers_url": "https://api.github.com/users/cturczynskyj/followers", + "following_url": "https://api.github.com/users/cturczynskyj/following{/other_user}", + "gists_url": "https://api.github.com/users/cturczynskyj/gists{/gist_id}", + "starred_url": "https://api.github.com/users/cturczynskyj/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cturczynskyj/subscriptions", + "organizations_url": "https://api.github.com/users/cturczynskyj/orgs", + "repos_url": "https://api.github.com/users/cturczynskyj/repos", + "events_url": "https://api.github.com/users/cturczynskyj/events{/privacy}", + "received_events_url": "https://api.github.com/users/cturczynskyj/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTI1NTgyMDkz", + "tag_name": "3.9.0", + "target_commitish": "development", + "name": "NextGen Connect 3.9.0", + "draft": false, + "prerelease": false, + "created_at": "2020-04-03T17:46:14Z", + "published_at": "2020-04-16T17:41:26Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.9.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.9.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.9.0 introduces dozens of new features, improvements, and bug fixes!

\n

Some key features and benefits of the new release include:

\n
    \n
  • \n

    JSON Support in REST API — Updated, easier to use REST API documentation, and JSON support now too!

    \n
  • \n
  • \n

    SMB v2/v3 Support — SMB versions 2.0.2 through 3.1.1 are now supported on our File Reader/Writer connectors!

    \n
  • \n
  • \n

    TCP Sender Server Mode — Similar to how the TCP Listener has client/server modes, the TCP Sender now does too. When the TCP Sender is in server mode, Messages will queue until at least one client connects, and when a message gets sent it will be sent to all currently connected clients.

    \n
  • \n
  • \n

    FHIR R4/R5 Support — For those of you that don't know, our FHIR Connector Extension is freely available, and now supports the latest versions R4 and R5 (Preview 1). It also supports other older versions as well. Go to our website to download it!

    \n
  • \n
  • \n

    Channel History UI Improvements — Our Channel History extension has been updated with performance improvements for very large channels/scripts. We also now have the ability to switch between Unified vs Side-by-side diffs, and Previous/Next buttons to cycle through changes.

    \n
  • \n
  • \n

    And More!

    \n
  • \n
\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/20452127", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/20452127/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/20452127/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.8.1", + "id": 20452127, + "author": { + "login": "narupley", + "id": 3595934, + "node_id": "MDQ6VXNlcjM1OTU5MzQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/3595934?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/narupley", + "html_url": "https://github.com/narupley", + "followers_url": "https://api.github.com/users/narupley/followers", + "following_url": "https://api.github.com/users/narupley/following{/other_user}", + "gists_url": "https://api.github.com/users/narupley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/narupley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/narupley/subscriptions", + "organizations_url": "https://api.github.com/users/narupley/orgs", + "repos_url": "https://api.github.com/users/narupley/repos", + "events_url": "https://api.github.com/users/narupley/events{/privacy}", + "received_events_url": "https://api.github.com/users/narupley/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTIwNDUyMTI3", + "tag_name": "3.8.1", + "target_commitish": "development", + "name": "NextGen Connect 3.8.1", + "draft": false, + "prerelease": false, + "created_at": "2019-10-03T14:42:53Z", + "published_at": "2019-10-03T16:57:18Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.8.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.8.1", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.8.1 is a small patch release including a couple of enhancements / bug fixes for the Interoperability Connector Suite (IHE protocols) extension.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/18069858", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/18069858/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/18069858/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.8.0", + "id": 18069858, + "author": { + "login": "narupley", + "id": 3595934, + "node_id": "MDQ6VXNlcjM1OTU5MzQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/3595934?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/narupley", + "html_url": "https://github.com/narupley", + "followers_url": "https://api.github.com/users/narupley/followers", + "following_url": "https://api.github.com/users/narupley/following{/other_user}", + "gists_url": "https://api.github.com/users/narupley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/narupley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/narupley/subscriptions", + "organizations_url": "https://api.github.com/users/narupley/orgs", + "repos_url": "https://api.github.com/users/narupley/repos", + "events_url": "https://api.github.com/users/narupley/events{/privacy}", + "received_events_url": "https://api.github.com/users/narupley/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE4MDY5ODU4", + "tag_name": "3.8.0", + "target_commitish": "development", + "name": "NextGen Connect 3.8.0", + "draft": false, + "prerelease": false, + "created_at": "2019-06-05T16:36:51Z", + "published_at": "2019-06-18T16:51:31Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.8.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.8.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.8.0 is a minor stability update with a couple dozen bug fixes, some third-party library updates, and a few new features and improvements.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/16415449", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/16415449/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/16415449/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.7.1", + "id": 16415449, + "author": { + "login": "narupley", + "id": 3595934, + "node_id": "MDQ6VXNlcjM1OTU5MzQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/3595934?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/narupley", + "html_url": "https://github.com/narupley", + "followers_url": "https://api.github.com/users/narupley/followers", + "following_url": "https://api.github.com/users/narupley/following{/other_user}", + "gists_url": "https://api.github.com/users/narupley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/narupley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/narupley/subscriptions", + "organizations_url": "https://api.github.com/users/narupley/orgs", + "repos_url": "https://api.github.com/users/narupley/repos", + "events_url": "https://api.github.com/users/narupley/events{/privacy}", + "received_events_url": "https://api.github.com/users/narupley/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE2NDE1NDQ5", + "tag_name": "3.7.1", + "target_commitish": "development", + "name": "NextGen Connect 3.7.1", + "draft": false, + "prerelease": false, + "created_at": "2019-03-28T15:56:01Z", + "published_at": "2019-03-28T16:36:16Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.7.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.7.1", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.7.1 is a patch release containing around a dozen bug fixes.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/14627249", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/14627249/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/14627249/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.7.0", + "id": 14627249, + "author": { + "login": "narupley", + "id": 3595934, + "node_id": "MDQ6VXNlcjM1OTU5MzQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/3595934?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/narupley", + "html_url": "https://github.com/narupley", + "followers_url": "https://api.github.com/users/narupley/followers", + "following_url": "https://api.github.com/users/narupley/following{/other_user}", + "gists_url": "https://api.github.com/users/narupley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/narupley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/narupley/subscriptions", + "organizations_url": "https://api.github.com/users/narupley/orgs", + "repos_url": "https://api.github.com/users/narupley/repos", + "events_url": "https://api.github.com/users/narupley/events{/privacy}", + "received_events_url": "https://api.github.com/users/narupley/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE0NjI3MjQ5", + "tag_name": "3.7.0", + "target_commitish": "development", + "name": "NextGen Connect 3.7.0", + "draft": false, + "prerelease": false, + "created_at": "2018-12-19T22:05:43Z", + "published_at": "2018-12-19T22:59:30Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.7.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.7.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.7.0 includes dozens of new features, improvements, and bug fixes!

\n

Some key features and benefits of the new release include:

\n
    \n
  • \n

    Java 11 Support — Java 11 is the newest \"major\" release of Java, and with it comes lots of great features like TLS 1.3 support. It's also the latest LTS release for Oracle support customers. Java 8 is not yet EOL so it can still definitely be used.

    \n
  • \n
  • \n

    OpenJDK Support — No need to be worried about Oracle's recent license changes. With 3.7, Connect now supports both the official Oracle JDK, as well as OpenJDK distributions like the Oracle OpenJDK JDK, Azul Zulu, AdoptOpenJDK, and others! So when public security updates cease for Oracle JDK 8, you won't be forced to purchase Oracle support. You can choose whatever Java distribution you want.

    \n
  • \n
  • \n

    Database Connection Pool Options — The database connections Connect uses can now be separated into read/write and read-only pools, which means you can leverage read-replica database scaling for running Connect in a cluster.

    \n
  • \n
  • \n

    Advanced Clustering: Guaranteed Message Order — Our Advanced Clustering extension is great for horizontally scaling your Connect servers, and paired with a load balancer you can greatly improve throughput by allowing channels to run on multiple servers simultaneously. However in some cases you want messages for a particular channel to process in order. This is now possible in 3.7, and can be enabled on a per-channel and per-destination-queue basis!

    \n
  • \n
  • \n

    User Authorization: Channel Tags / Groups — The role/privilege options for our User Authorization extension have been expanded in 3.7! With this you can create more fine-tuned roles. For example you can decide that a particular user should only be able to View/Manage channels that have a certain tag, or that belong to a certain group.

    \n
  • \n
  • \n

    And More!

    \n
  • \n
\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/14627161", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/14627161/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/14627161/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.6.2", + "id": 14627161, + "author": { + "login": "narupley", + "id": 3595934, + "node_id": "MDQ6VXNlcjM1OTU5MzQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/3595934?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/narupley", + "html_url": "https://github.com/narupley", + "followers_url": "https://api.github.com/users/narupley/followers", + "following_url": "https://api.github.com/users/narupley/following{/other_user}", + "gists_url": "https://api.github.com/users/narupley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/narupley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/narupley/subscriptions", + "organizations_url": "https://api.github.com/users/narupley/orgs", + "repos_url": "https://api.github.com/users/narupley/repos", + "events_url": "https://api.github.com/users/narupley/events{/privacy}", + "received_events_url": "https://api.github.com/users/narupley/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTE0NjI3MTYx", + "tag_name": "3.6.2", + "target_commitish": "development", + "name": "NextGen Connect 3.6.2", + "draft": false, + "prerelease": false, + "created_at": "2018-12-19T18:45:38Z", + "published_at": "2018-12-19T22:53:14Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.6.2", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.6.2", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.6.2 is a patch release containing a few bug fixes.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/12060838", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/12060838/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/12060838/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.6.1", + "id": 12060838, + "author": { + "login": "narupley", + "id": 3595934, + "node_id": "MDQ6VXNlcjM1OTU5MzQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/3595934?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/narupley", + "html_url": "https://github.com/narupley", + "followers_url": "https://api.github.com/users/narupley/followers", + "following_url": "https://api.github.com/users/narupley/following{/other_user}", + "gists_url": "https://api.github.com/users/narupley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/narupley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/narupley/subscriptions", + "organizations_url": "https://api.github.com/users/narupley/orgs", + "repos_url": "https://api.github.com/users/narupley/repos", + "events_url": "https://api.github.com/users/narupley/events{/privacy}", + "received_events_url": "https://api.github.com/users/narupley/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTEyMDYwODM4", + "tag_name": "3.6.1", + "target_commitish": "development", + "name": "NextGen Connect 3.6.1", + "draft": false, + "prerelease": false, + "created_at": "2018-07-23T16:35:55Z", + "published_at": "2018-07-23T17:47:08Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.6.1", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.6.1", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.6.1 is a patch release containing a few bug fixes.

\n

See What's New | Upgrade Guide | Release Notes

" + }, + { + "url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/11374428", + "assets_url": "https://api.github.com/repos/nextgenhealthcare/connect/releases/11374428/assets", + "upload_url": "https://uploads.github.com/repos/nextgenhealthcare/connect/releases/11374428/assets{?name,label}", + "html_url": "https://github.com/nextgenhealthcare/connect/releases/tag/3.6.0", + "id": 11374428, + "author": { + "login": "narupley", + "id": 3595934, + "node_id": "MDQ6VXNlcjM1OTU5MzQ=", + "avatar_url": "https://avatars.githubusercontent.com/u/3595934?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/narupley", + "html_url": "https://github.com/narupley", + "followers_url": "https://api.github.com/users/narupley/followers", + "following_url": "https://api.github.com/users/narupley/following{/other_user}", + "gists_url": "https://api.github.com/users/narupley/gists{/gist_id}", + "starred_url": "https://api.github.com/users/narupley/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/narupley/subscriptions", + "organizations_url": "https://api.github.com/users/narupley/orgs", + "repos_url": "https://api.github.com/users/narupley/repos", + "events_url": "https://api.github.com/users/narupley/events{/privacy}", + "received_events_url": "https://api.github.com/users/narupley/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "node_id": "MDc6UmVsZWFzZTExMzc0NDI4", + "tag_name": "3.6.0", + "target_commitish": "development", + "name": "NextGen Connect 3.6.0", + "draft": false, + "prerelease": false, + "created_at": "2018-06-06T19:48:59Z", + "published_at": "2018-06-07T16:15:09Z", + "assets": [ + + ], + "tarball_url": "https://api.github.com/repos/nextgenhealthcare/connect/tarball/3.6.0", + "zipball_url": "https://api.github.com/repos/nextgenhealthcare/connect/zipball/3.6.0", + "body_html": "

NOTE: This version is affected by the critical vulnerability CVE-2023-43208. You should upgrade to version 4.4.1 or later.

\n
\n

NextGen Connect 3.6.0 includes dozens of new features, improvements, and bug fixes, as well as some new extensions!

\n

Some key features and benefits of the new release include:

\n
    \n
  • \n

    FHIR Connector Extension — In addition to updating our FHIR extension to support STU3 (R3), we've added a number of other enhancements as well! There's a new FHIR Sender destination you can use to connect to external FHIR servers. A new FHIR data type supports both XML and JSON resources simultaneously. A new graphical UI builder for resources is available on the FHIR Sender, as well as on a new transformer step type and code template type. An updated user guide and lots of examples (for instance, how to convert HL7 v2.x to FHIR) are available on the public wiki!

    \n
  • \n
  • \n

    Interoperability Connector Suite — This is a completely new commercial extension that provides Listener and Sender connectors that can help kickstart your eHealth Exchange / Sequoia onboarding and integration. The connectors support the most common operations for PIX, PDQ, XDS.b, XCA, and XCPD. They also support automatic generation and validation of NHIN-compliant SAML/WS-Security sections. In addition, the suite provides a new resource that automatically downloads and syncs business endpoint information from a UDDI Provider!

    \n
  • \n
  • \n

    Multi-Factor Authentication — This commercial extension is new as of 3.5.2, and provides an extra security layer for all user accounts! A secondary device such as a phone, tablet, or landline is used to ensure that no one but the actual user can login, even if they know the correct username and password. Both Duo and generic apps such as Google Authenticator / Authy are supported. When using Duo, advanced options such as lockout protection, automatic enrollment, and policy management are available in the Duo administrator dashboard.

    \n
  • \n
  • \n

    Advanced Clustering Enhancements — View and manage alerts, server logs, connection logs, and global maps across the entire cluster! Automatically prune old, offline server IDs. Global Scripts now auto-compile across the entire cluster. Reload Resources now executes across the entire cluster. More information on our Advanced Clustering commercial extension here!

    \n
  • \n
  • \n

    Amazon S3 support for File Reader/Writer — Both the File Reader and File Writer now support Amazon S3! Set explicit AWS credentials, or use the Default Credential Provider Chain to automatically lookup credentials from a variety of common locations. Temporary credentials are supported as well via the Amazon Security Token Service (STS). You can also supply custom headers for PUT requests, including encryption settings and custom object metadata!

    \n
  • \n
  • \n

    And More!

    \n
  • \n
\n

See What's New | Upgrade Guide | Release Notes

" + } +]