egeria icon indicating copy to clipboard operation
egeria copied to clipboard

[Enhancement] Add framework clients to all OMASs

Open mandy-chessell opened this issue 1 year ago • 5 comments

Existing/related issue?

No response

Please describe the new behavior that that will improve Egeria

Each Open Metadata Access Service (OMAS) Client should have two framework clients plus one or more specialized clients. This enhancement is to ensure that the two framework clients are added to all OMASs.

The OMASs are implemented under module open-metadata-implementation/access-services. They each should have a client module. For example, the Community Profile OMAS has a module called community-profile-client under open-metadata-implementation/access-services/community-profile.

The source code for Community Profile OMAS's client has a number of clients. The two framework clients are called ConnectedAssetClient and MetadataSourceClient:

Screenshot 2023-09-07 at 08 40 26

This enhancement is to check each OMAS and make sure it has a client module with at least these two clients in place.

Alternatives

None

Any Further Information?

You will need to add dependencies to the updated client module's build.gradle file. I think this is what you need:

    implementation project(':open-metadata-implementation:framework-services:ocf-metadata-management:ocf-metadata-api')
    implementation project(':open-metadata-implementation:framework-services:ocf-metadata-management:ocf-metadata-client')
    implementation project(':open-metadata-implementation:framework-services:gaf-metadata-management:gaf-metadata-api')
    implementation project(':open-metadata-implementation:framework-services:gaf-metadata-management:gaf-metadata-client')

In addition, each client needs to have the correct serviceURLMarker value set. This tells the server which module is calling the framework services so it performs the correct security check for the calling module.

Screenshot 2023-09-07 at 09 00 40

It is OK to copy the two standard clients from Community Profile OMAS into another OMAS. Then update the serviceURLMarker value in each client to be the correct value for the receiving OMAS. This is its name in lower case with a dash in between. For example:

  • Community Profile OMAS is community-profile
  • Asset Catalog OMAS is asset-catalog etc

Some OMASs are also missing their client module so you may have to add that too. You can copy the structure of the client module from Community profile - remembering to update the package name to match the OMAS. Then add the new client module name to settings.gradle in the top level directory.

Would you be prepared to be assigned this issue to work on?

No response

mandy-chessell avatar Sep 07 '23 08:09 mandy-chessell

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 20 days if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Nov 10 '23 00:11 github-actions[bot]

Hi @mandy-chessell , Sorry for being late with this issue, I just started this (while on vacation :) ). The MetadataSourceClient class from community profile extends a CommunityProfileBaseClient and which implements MetadataSourceInterface. Both of these are unique to community profile. So if we are get this client on to other OMAS, we would have to have implementations of these two also

odttlnt avatar Nov 27 '23 12:11 odttlnt

@odttlnt Apologies Sachin - it should be OpenMetadataStoreClient

mandy-chessell avatar Nov 27 '23 12:11 mandy-chessell

Ok, so OpenMetadataStoreClient and ConnectedAssetClient , right ?

odttlnt avatar Nov 27 '23 12:11 odttlnt

@mandy-chessell I have created a PR for the code changes. Please feel free to do the review and provide your feedback

odttlnt avatar Dec 12 '23 16:12 odttlnt

This function is complete

mandy-chessell avatar May 21 '24 15:05 mandy-chessell