.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. _release_notes:

..      ========================
..      * * *     KOHN     * * *
..      ========================

=============
Release Notes
=============

Kohn
====

Abstract
--------

This document provides the DMaaP Message Router release notes for the Kohn release.

Summary
-------

Security Issues addressed

Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | - onap/dmaap/dmaap-mr:1.4.3          |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | 11.0.0 Kohn                          |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2022-12-01                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+


New features
------------
* Remove acl check on topics (DMAAP-1744)
* Remove acl update for deny (DMAAP-1744)

Known Limitations, Issues and Workarounds
-----------------------------------------

System Limitations
------------------


Known Vulnerabilities
---------------------


Workarounds
-----------


Security Notes
--------------
* Update kohn sec vul packages (DMAAP-1748)

References
----------

For more information on the ONAP Kohn release, please see:

#. `ONAP Home Page`_
#. `ONAP Documentation`_
#. `ONAP Release Downloads`_
#. `ONAP Wiki Page`_


.. _`ONAP Home Page`: https://www.onap.org
.. _`ONAP Wiki Page`: https://wiki.onap.org
.. _`ONAP Documentation`: https://docs.onap.org
.. _`ONAP Release Downloads`: https://git.onap.org

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_


..      ========================
..      * * *    JAKARTA   * * *
..      ========================

=============
Release Notes
=============

Jakarta
=======

Abstract
--------

This document provides the DMaaP Message Router release notes for the Jakarta release.

Summary
-------

Security Issues addressed

Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | - onap/dmaap/dmaap-mr:1.3.2          |
|                                      | - onap/dmaap/kafka111:1.1.1          |
|                                      | - onap/dmaap/zookeeper:6.1.0         |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | 10.0.0 Jakarta                       |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 5/12/2022                            |
|                                      |                                      |
+--------------------------------------+--------------------------------------+


New features
------------
* Remediate log4j bug (DMAAP-1691)
* Add support for configuring jaas.sasl.config at runtime (DMAAP-1653)

Known Limitations, Issues and Workarounds
-----------------------------------------

System Limitations
------------------


Known Vulnerabilities
---------------------


Workarounds
-----------


Security Notes
--------------
Transitive dependency for log4j 1.2.17
Sources:
org.codehaus.groovy : groovy-eclipse-compiler : 2.8.0-01
com.att.camel : att-camel-dme2-servlet : 2.16.2-oss
org.apache.zookeeper : zookeeper : 3.7.0


References
----------

For more information on the ONAP Jakarta release, please see:

#. `ONAP Home Page`_
#. `ONAP Documentation`_
#. `ONAP Release Downloads`_
#. `ONAP Wiki Page`_


.. _`ONAP Home Page`: https://www.onap.org
.. _`ONAP Wiki Page`: https://wiki.onap.org
.. _`ONAP Documentation`: https://docs.onap.org
.. _`ONAP Release Downloads`: https://git.onap.org

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_


..      ======================================
..      * * *    ISTANBUL MAINTENANCE    * * *
..      ======================================

=============
Release Notes
=============

Istanbul Maintenance
====================

Abstract
--------

This document provides the DMaaP Message Router release notes for the Istanbul release.

Summary
-------

Securities Issues addressed

Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | - onap/dmaap/dmaap-mr:1.3.2          |
|                                      | - onap/dmaap/kafka111:1.1.1          |
|                                      | - onap/dmaap/zookeeper:6.1.0         |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | 9.0.1 Istanbul Maintenance           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2022-02-17                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+


New features
------------
* Remediate log4j bug (DMAAP-1691)


Known Limitations, Issues and Workarounds
-----------------------------------------

System Limitations
------------------


Known Vulnerabilities
---------------------


Workarounds
-----------


Security Notes
--------------
Transitive dependency for log4j 1.2.17
Sources:
org.codehaus.groovy : groovy-eclipse-compiler : 2.8.0-01
com.att.camel : att-camel-dme2-servlet : 2.16.2-oss
org.apache.zookeeper : zookeeper : 3.7.0


References
----------

For more information on the ONAP Istanbul Maintenance release, please see:

#. `ONAP Home Page`_
#. `ONAP Documentation`_
#. `ONAP Release Downloads`_
#. `ONAP Wiki Page`_


.. _`ONAP Home Page`: https://www.onap.org
.. _`ONAP Wiki Page`: https://wiki.onap.org
.. _`ONAP Documentation`: https://docs.onap.org
.. _`ONAP Release Downloads`: https://git.onap.org

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_


..      ===========================
..      * * *    ISTANBUL     * * *
..      ===========================

=============
Release Notes
=============

Istanbul
========

Abstract
--------

This document provides the DMaaP Message Router release notes for the Istanbul release.

Summary
-------

Securities Issues addressed

Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | - onap/dmaap/dmaap-mr:1.3.0          |
|                                      | - onap/dmaap/kafka111:1.1.1          |
|                                      | - onap/dmaap/zookeeper:6.1.0         |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | 9.0.0 Istanbul                       |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2021-10-14                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+


New features
------------
* Consolidate msgrtr and message-service repos (DMAAP-1582)
* Remove redundant data (DMAAP-1638)
* Sonar fixes (DMAAP-1564)
* Remove Python 2.7 (DMAAP-1489)
* Sec vulnerabilities fix (DMAAP-1608)

Known Limitations, Issues and Workarounds
-----------------------------------------

System Limitations
------------------


Known Vulnerabilities
---------------------


Workarounds
-----------


Security Notes
--------------


References
----------

For more information on the ONAP Istanbul release, please see:

#. `ONAP Home Page`_
#. `ONAP Documentation`_
#. `ONAP Release Downloads`_
#. `ONAP Wiki Page`_


.. _`ONAP Home Page`: https://www.onap.org
.. _`ONAP Wiki Page`: https://wiki.onap.org
.. _`ONAP Documentation`: https://docs.onap.org
.. _`ONAP Release Downloads`: https://git.onap.org

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_


..      ===========================
..      * * *    HONOLULU    * * *
..      ===========================

Honolulu
========

Abstract
--------

This document provides the DMaaP Message Router release notes for the Honolulu release.

Summary
-------

Securities Issues addressed

Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | - onap/dmaap/dmaap-mr:1.1.20         |
|                                      | - onap/dmaap/kafka111:1.0.5          |
|                                      | - onap/dmaap/zookeeper:6.0.3         |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | 8.0.0 Honolulu                       |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2021-04-01                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+


New features
------------
* Fix Security Vulnerabilities (listed in "Known Vulnerabilities" below) - DMAAP-1515
* Alter Project Lead information - DMAAP-1538
* Update certs - DMAAP-1565
* Update AAF Artifacts - DMAAP-1565

Known Limitations, Issues and Workarounds
-----------------------------------------

System Limitations
------------------


Known Vulnerabilities
---------------------
* CVE-2018-11307
* CVE-2018-12022
* CVE-2018-12023
* CVE-2019-17571
* SONATYPE-2010-0053
* CVE-2020-11994
* SONATYPE-2015-0174
* CVE-2020-5397
* SONATYPE-2012-0050

Workarounds
-----------


Security Notes
--------------


References
----------

For more information on the ONAP Honolulu release, please see:

#. `ONAP Home Page`_
#. `ONAP Documentation`_
#. `ONAP Release Downloads`_
#. `ONAP Wiki Page`_


.. _`ONAP Home Page`: https://www.onap.org
.. _`ONAP Wiki Page`: https://wiki.onap.org
.. _`ONAP Documentation`: https://docs.onap.org
.. _`ONAP Release Downloads`: https://git.onap.org

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_


..      ===================================
..      * * *    GUILIN  MAINTENANCE  * * *
..      ===================================


Guilin maintenance
==================

Version: 7.0.1
--------------

Abstract
--------

This document provides the release notes for the Guilin Maintenance release


Summary
-------

This maintenance release is primarily to resolve bugs identified during Guilin release testing.


Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | Same as Guilin Release               |
+--------------------------------------+--------------------------------------+
| **Release designation**              | Guilin Maintenance Release           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2021/04/19                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+

New features
------------

None

**Bug fixes**

- `DMAAP-1547 <https://jira.onap.org/browse/DMAAP-1547>`_ Update certificats for DMaaP message router

**Known Issues**

Same as Guilin Release


..      ===========================
..      * * *    GUILIN    * * *
..      ===========================

Guilin
======

Abstract
--------

This document provides the DMaaP Message Router release notes for the Guilin release.

Summary
-------


Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | - onap/dmaap/dmaap-mr:1.1.18         |
|                                      | - onap/dmaap/kafka111:1.0.4          |
|                                      | - onap/dmaap/zookeeper:6.0.3         |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | 7.0.0 guilin                         |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2020-11-18                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+


New features
------------

Known Limitations, Issues and Workarounds
-----------------------------------------

System Limitations
------------------


Known Vulnerabilities
---------------------
* CVE-2016-1000027
* CVE-2018-11307
* CVE-2019-13990
* SONATYPE-2018-0624
* CVE-2018-12022
* SONATYPE-2019-0414
* SONATYPE-2019-0808
* CVE-2019-10241
* CVE-2019-12406
* CVE-2020-5408
* CVE-2019-10246
* CVE-2019-10247
* CVE-2020-5397
* SONATYPE-2012-0050
* SONATYPE-2017-0507
* SONATYPE-2019-0469
* CVE-2018-12023
* SONATYPE-2018-0624
* CVE-2019-20444
* CVE-2019-20445
* CVE-2019-16869
* SONATYPE-2020-0029
* SONATYPE-2020-0103
* CVE-2019-17571
* CVE-2020-5398
* CVE-2018-17196


Workarounds
-----------


Security Notes
--------------


References
----------

For more information on the ONAP Guilin release, please see:

#. `ONAP Home Page`_
#. `ONAP Documentation`_
#. `ONAP Release Downloads`_
#. `ONAP Wiki Page`_


.. _`ONAP Home Page`: https://www.onap.org
.. _`ONAP Wiki Page`: https://wiki.onap.org
.. _`ONAP Documentation`: https://docs.onap.org
.. _`ONAP Release Downloads`: https://git.onap.org

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_

..      ===========================
..      * * *    FRANKFURT    * * *
..      ===========================

Frankfurt
=========

Abstract
--------

This document provides the DMaaP Message Router release notes for the Frankfurt release.

Summary
-------


Release Data
------------

+--------------------------------------+--------------------------------------+
| **DMaaP Message Router Project**     |                                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Docker images**                    | - onap/dmaap/dmaap-mr:1.1.18         |
|                                      | - onap/dmaap/kafka111:1.0.4          |
|                                      | - onap/dmaap/zookeeper:6.0.3         |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release designation**              | 6.0.0 frankfurt                      |
|                                      |                                      |
+--------------------------------------+--------------------------------------+
| **Release date**                     | 2020-06-04                           |
|                                      |                                      |
+--------------------------------------+--------------------------------------+


New features
------------
* Kafka and Zookeeper images are created using confluent community edition 5.3.0 
* Prometheus monitoring
* Protected all the Kafka operations using AAF
* Remove the AAF dependency by toggling  a flag


Known Limitations, Issues and Workarounds
-----------------------------------------

System Limitations
------------------


Known Vulnerabilities
---------------------
* CVE-2016-1000027
* CVE-2018-11307
* CVE-2019-13990
* SONATYPE-2018-0624
* CVE-2018-12022
* SONATYPE-2019-0414
* SONATYPE-2019-0808
* CVE-2019-10241
* CVE-2019-12406
* CVE-2020-5408
* CVE-2019-10246
* CVE-2019-10247
* CVE-2020-5397
* SONATYPE-2012-0050
* SONATYPE-2017-0507
* SONATYPE-2019-0469
* CVE-2018-12023
* SONATYPE-2018-0624
* CVE-2019-20444
* CVE-2019-20445
* CVE-2019-16869
* SONATYPE-2020-0029
* SONATYPE-2020-0103
* CVE-2019-17571
* CVE-2020-5398
* CVE-2018-17196


Workarounds
-----------


Security Notes
--------------


References
----------

For more information on the ONAP Frankfurt release, please see:

#. `ONAP Home Page`_
#. `ONAP Documentation`_
#. `ONAP Release Downloads`_
#. `ONAP Wiki Page`_


.. _`ONAP Home Page`: https://www.onap.org
.. _`ONAP Wiki Page`: https://wiki.onap.org
.. _`ONAP Documentation`: https://docs.onap.org
.. _`ONAP Release Downloads`: https://git.onap.org

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_

ElAlto
======

Version: 1.1.16
---------------

:Release Date: 2019-10-10

**New Features**

- Cert based authentication support in Message Router
- Improved Kafka and Zookeeper cluster lookup
- Pluggable Kafka server.properties,log4j.properties  and Message Router logback.xml


**Bug Fixes**

- Fixed for security vulnerabilities in Message Router
- Fixed  authorization issues in Message Router

**Known Issues**
	NA

**Security Notes**

DMAAP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DMAAP open Critical security vulnerabilities and their risk assessment have been documented as part of the `Dublin <https://wiki.onap.org/pages/viewpage.action?pageId=64003715>`_.

Quick Links:

- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_
- `Dublin Project Vulnerability Review Table for DMAAP <https://wiki.onap.org/pages/viewpage.action?pageId=64003715>`_

**Upgrade Notes**
  NA

**Deprecation Notes**

Dublin
======

Version: 1.1.14
---------------

:Release Date: 2019-06-06

**New Features**

- Upgrade Kafka to v1.1.1
- Support for Authenticated topics
- Add Scaling support
- Support for multi-site applications 
- Add MirrorMaker to allow for message replication across Kafka clusters

**Bug Fixes**
	NA
**Known Issues**
	NA

**Security Notes**

DMAAP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DMAAP open Critical security vulnerabilities and their risk assessment have been documented as part of the `Dublin <https://wiki.onap.org/pages/viewpage.action?pageId=64003715>`_.

Quick Links:

- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_
- `Dublin Project Vulnerability Review Table for DMAAP <https://wiki.onap.org/pages/viewpage.action?pageId=64003715>`_

**Upgrade Notes**
  NA

**Deprecation Notes**

Casablanca
==========

Version: 1.1.8
--------------

:Release Date: 2018-11-30

**New Features**

 - DMaaP client changes to fix some known issues
 - Kafka upgrade  to 0.11.0.1 and corresponding changes in the Message Router
 - New Kafka image was created instead of using the publicly available Kafka image

**Bug Fixes**
	NA
	
**Known Issues**

If the ZooKeeper  is restarted, Message Router works as expected only after restarting the Message Router . Refer  `Jira <https://jira.onap.org/browse/DMAAP-893>`_  for more details

**Security Notes**

DMAAP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DMAAP open Critical security vulnerabilities and their risk assessment have been documented as part of the `Casablanca <https://wiki.onap.org/pages/viewpage.action?pageId=42598688>`_.

Quick Links:

- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_
- `Casablanca Project Vulnerability Review Table for DMAAP <https://wiki.onap.org/pages/viewpage.action?pageId=42598688>`_

**Upgrade Notes**
  NA

**Deprecation Notes**


Beijing
=======

Version: 1.1.4
--------------

:Release Date: 2018-06-07

**New Features**

 - Topic creation with out AAF
 - DMaaP client changes to call the message Router with out authentication
 - Kafka upgrade from 0.8.11 to 1.1.0
 - Fixes for docker image packaging issues

**Bug Fixes**
	NA
**Known Issues**
	NA

**Security Notes**

DMAAP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and determined to be false positive. The DMAAP open Critical security vulnerabilities and their risk assessment have been documented as part of the `project <https://wiki.onap.org/pages/viewpage.action?pageId=28379799>`_.

Quick Links:
- `DMAAP project page <https://wiki.onap.org/display/DW/DMaaP+Planning>`_
- `Passing Badge information for DMAAP <https://bestpractices.coreinfrastructure.org/en/projects/1751>`_
- `Project Vulnerability Review Table for DMAAP <https://wiki.onap.org/pages/viewpage.action?pageId=28379799>`_

**Upgrade Notes**
  NA

**Deprecation Notes**

Amsterdam
=========

Version: 1.0.1
--------------

:Release Date: 2017-11-16


New Features:

 - Pub/sub messaging metaphor to broaden data processing opportunities
 - A single solution for most event distribution needs to support a range of environments
 - Standardized topic names
 - Implements a RESTful HTTP API for provisioning
 - Implements a RESTful HTTP API for message transactions (i.e. pub, sub)
 - Implements a RESTful HTTP API for transaction metrics
 - Topic registry and discovery



Bug Fixes
   - `DMAAP-165 <https://jira.onap.org/browse/DMAAP-165>`_ Correct documentation rst file errors and warnings
   - `DMAAP-160 <https://jira.onap.org/browse/DMAAP-160>`_ DMaaP periodically loses connection to Kafka
   - `DMAAP-157 <https://jira.onap.org/browse/DMAAP-157>`_ SDC service models distribution fails
   - `DMAAP-151 <https://jira.onap.org/browse/DMAAP-151>`_ Fix docker image bug
   - `DMAAP-1 <https://jira.onap.org/browse/DMAAP-1>`_ MSO DB is not populated with the models from SDC
   
Known Issues
   - `DMAAP-164 <https://jira.onap.org/browse/DMAAP-164>`_ The dependency from kafka for zookeeper created issues when the vm is restarted

Other

