Add EntryLinks support#12
Open
eeshadutta1408 wants to merge 11 commits into
Open
Conversation
…ema-join and all entry links
nikhilk
reviewed
Jun 6, 2026
| } while (pageToken); | ||
| } | ||
|
|
||
| async lookupEntryLinks( |
Collaborator
There was a problem hiding this comment.
Does this need to page through the list of entry links to retrieve them all similar to list?
nikhilk
reviewed
Jun 6, 2026
| // Fix all entries and aspects to consistently use project id. Its currently a mess with an | ||
| // inconsistent mix of project ids and unusable project numbers. | ||
| async function _fixEntry(entry: Entry, ctx: context.ApiContext): Promise<void> { | ||
| export async function _fixEntry(entry: Entry, ctx: context.ApiContext): Promise<void> { |
Collaborator
There was a problem hiding this comment.
This function is expected to be used only within the service wrapper, the idea being all responses returned from this client layer are 'fixed', and any downstream user of this client should not have to think about such details.
nikhilk
reviewed
Jun 6, 2026
| import { CatalogSource, createSource, Sources } from './source'; | ||
|
|
||
|
|
||
| export const SYSTEM_LINK_ALIASES: Record<string, string> = { |
Collaborator
There was a problem hiding this comment.
Couple of things -
- Alias functionality would probably be better added in future alongside support for entry type and aspect type aliases. Being worked on in https://github.com/GoogleCloudPlatform/knowledge-catalog/pull/20/changes ...
- Still looking ahead, but we should support all link types without having to list them all here. The set of link types to be retrieved or created/modified should depend on the types listed in catalog manifest snapshot and publishing configuration.
# Conflicts: # toolbox/mdcode/src/libts/gcp/dataplex.ts # toolbox/mdcode/tests/libts/mocks.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR implements full support for Dataplex EntryLinks (both top-level and schema column-inlined links) in the
kcmdtool. It enables catalog curators to manage relationships (such as definition/glossary linkages or schema joins) locally in a structured format and synchronize them with the cloud catalog.Key Features
entryLinksconfiguration blocks to snapshot/publishing schemas in manifest.ts, supporting custom and global/system aliases (e.g.definition,schema-join).lookupEntryLinks,createEntryLink,deleteEntryLink,listEntryLinks), with built-in CRM project ID/number normalization.EntryLink Examples
Below are examples of how entry links are serialized locally in an entry's YAML file:
1. Schema-Join Link
For undirected relationships containing aspect metadata, such as join keys and inference attributes:
2. Glossary definition Link
For directional references mapped to glossary term path targets (resolved dynamically using display names):