Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend Apache Atlas integration connector to perform 2-way sync of glossaries. #7783

Merged
merged 13 commits into from
Jul 16, 2023

Conversation

mandy-chessell
Copy link
Contributor

Description

Apache Atlas Integration connector

This PR extends the Apache Atlas integration connector to support the 2-way exchange of glossary content (glossaries, terms and categories) between the open metadata ecosystem and Apache Atlas.

This involved extensions to the Asset Manager OMAS glossary queries to improve navigation around a glossary.

  • Retrieving the categories for a term
  • Retrieving the glossary for a term
  • Retrieving the glossary for a category

These extensions were also added to the CatalogIntegrator OMAS and Glossary Browser OMVS.

The context for all OMISs allows the maxPageSize() for the server to be extracted. This is useful when paging through results.

The Catalog Integrator OMIS also has a new method that returns a flag to indicate if a listener has been registered.

Improvements to Audit log destinations

@dwolfson also requested that the admin request for setting up a topic-based audit log destination should allow the topic name to be specified. There were also duplicated information being included in the topic (and file) audit log destination that have been removed. The originator properties have a more consistent naming style. Here is an example of the JSON output in both the file and topic audit log destinations.

{
    "guid": "f150879d-f807-47ae-a7e6-5d48118044a5",
    "timeStamp": 1689528452722,
    "originatorProperties": {
        "organizationName": null,
        "serverType": "Open Metadata and Governance Server",
        "serverName": "atlasexchange"
    },
    "originatorComponent": {
        "componentId": 659,
        "componentDevelopmentStatus": "IN_DEVELOPMENT",
        "componentName": "Egeria:IntegrationConnector:Catalog:ApacheAtlas:3ab99700-7750-4eca-8670-55b6f21bda14",
        "componentDescription": "Connector publishes active glossary terms to Apache Atlas.",
        "componentWikiURL": "https://egeria-project.org/connectors/integration/apache-atlas-integration-connector/"
    },
    "actionDescription": "processAtlasGlossaryTerm",
    "threadId": 185,
    "threadName": "atlasexchange::IntegrationDaemonThread",
    "severityCode": 5,
    "severity": "Error",
    "messageId": "APACHE-ATLAS-INTEGRATION-CONNECTOR-0015",
    "messageText": "The open metadata glossary term 52ca009f-0fa6-495e-b760-2a5b33f7281f for equivalent Apache Atlas glossary term custName has been unilaterally deleted; connector AtlasIntegrator is putting it back",
    "messageParameters": [
        "52ca009f-0fa6-495e-b760-2a5b33f7281f",
        "custName",
        "AtlasIntegrator"
    ],
    "systemAction": "The open metadata glossary term can not be retrieved.  This glossary term is owned by Apache Atlas.  The connector is creating a new copy of the Apache Atlas glossary term in the open metadata ecosystem.",
    "userAction": "Open metadata glossary terms that are copies from Apache Atlas should not be unilaterally removed.  Investigate why this element is missing from the open metadata ecosystem and make changes so it can not happen again."
}

Related Issue(s)

None

Testing

Using the open metadata labs to push the CIM model into Apache Atlas. There are also 2 new postman collections to create glossaries in Apache Atlas and query the content being saved into Apache Atlas.

Release Notes & Documentation

There is companion updates to the documentation for the connector and release notes to cover this new feature.

Additional notes

There are mainy updates to the javadoc as part of the effort to reduce the build warnings.

@sonatype-lift
Copy link
Contributor

sonatype-lift bot commented Jul 16, 2023

Sonatype Lift is retiring

Sonatype Lift will be retiring on Sep 12, 2023, with its analysis stopping on Aug 12, 2023. We understand that this news may come as a disappointment, and Sonatype is committed to helping you transition off it seamlessly. If you’d like to retain your data, please export your issues from the web console.
We are extremely grateful and thank you for your support over the years.

📖 Read about the impacts and timeline

@mandy-chessell mandy-chessell merged commit ed5f273 into odpi:main Jul 16, 2023
@@ -280,7 +279,7 @@
{
Integer castValue = (Integer)primitiveValue;

return new Byte(castValue.toString());
return Byte.valueOf(castValue.toString());

Check notice

Code scanning / CodeQL

Missing catch of NumberFormatException

Potential uncaught 'java.lang.NumberFormatException'.
@@ -292,19 +291,19 @@
{
Double castValue = (Double)primitiveValue;

return new Float(castValue);
return Float.valueOf(String.valueOf(castValue));

Check notice

Code scanning / CodeQL

Missing catch of NumberFormatException

Potential uncaught 'java.lang.NumberFormatException'.
}
else if (primitiveDefCategory == PrimitiveDefCategory.OM_PRIMITIVE_TYPE_SHORT)
{
Integer castValue = (Integer)primitiveValue;

return new Short(castValue.toString());
return Short.valueOf(castValue.toString());

Check notice

Code scanning / CodeQL

Missing catch of NumberFormatException

Potential uncaught 'java.lang.NumberFormatException'.
String assetManagerGUID,
String assetManagerName,
String glossaryTermGUID,
Date effectiveTime,

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'effectiveTime' is never used.
String assetManagerGUID,
String assetManagerName,
String glossaryCategoryGUID,
Date effectiveTime,

Check notice

Code scanning / CodeQL

Useless parameter

The parameter 'effectiveTime' is never used.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant