-
Notifications
You must be signed in to change notification settings - Fork 3k
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
feat(propagation): UI for rendering propagated column documentation #11047
feat(propagation): UI for rendering propagated column documentation #11047
Conversation
…eover' into jj--propagation-doc-action-ui-takeover
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughThis update significantly enhances the functionality and clarity of various components in the data hub application. Key improvements include the introduction of new properties for better contextual information, restructuring rendering logic for more efficient display, and adding utility functions to streamline data handling. Overall, these changes contribute to a more user-friendly experience and improve code maintainability. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant UI
participant DescriptionField
participant PropagationDetails
participant EntityLink
User->>UI: Request dataset schema
UI->>DescriptionField: Render description
DescriptionField->>PropagationDetails: Check for propagation
PropagationDetails-->>DescriptionField: Return propagation info
DescriptionField->>EntityLink: Generate entity links
EntityLink-->>UI: Display linked entities
UI-->>User: Show updated schema with propagation details
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
Outside diff range, codebase verification and nitpick comments (3)
datahub-web-react/src/app/entity/shared/propagation/PropagationIcon.tsx (2)
1-3
: Ensure consistent import order.To improve readability, consider grouping the imports by third-party libraries and local files.
import styled from 'styled-components'; import { ThunderboltFilled } from '@ant-design/icons'; +import { REDESIGN_COLORS } from '../constants';
5-14
: Avoid hardcoding colors.Instead of hardcoding the color value, consider using a constant or a theme.
- color: #a7c7fa; + color: ${REDESIGN_COLORS.LIGHT_BLUE};smoke-test/tests/cypress/cypress/e2e/actions/docPropagation.js (1)
1-1
: Consider using a more descriptive test ID.Using a more descriptive test ID can improve readability and maintainability.
-const testId = '[data-testid="docPropagationIndicator"]'; +const docPropagationIndicatorTestId = '[data-testid="docPropagationIndicator"]';
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (12)
- datahub-web-react/src/app/entity/dataset/profile/schema/components/SchemaDescriptionField.tsx (6 hunks)
- datahub-web-react/src/app/entity/shared/components/legacy/DescriptionModal.tsx (2 hunks)
- datahub-web-react/src/app/entity/shared/propagation/PropagationDetails.tsx (1 hunks)
- datahub-web-react/src/app/entity/shared/propagation/PropagationEntityLink.tsx (1 hunks)
- datahub-web-react/src/app/entity/shared/propagation/PropagationIcon.tsx (1 hunks)
- datahub-web-react/src/app/entity/shared/propagation/utils.ts (1 hunks)
- datahub-web-react/src/app/entity/shared/tabs/Dataset/Schema/components/SchemaFieldDrawer/FieldDescription.tsx (4 hunks)
- datahub-web-react/src/app/entity/shared/tabs/Dataset/Schema/utils/getFieldDescriptionDetails.ts (1 hunks)
- datahub-web-react/src/app/entity/shared/tabs/Dataset/Schema/utils/useDescriptionRenderer.tsx (4 hunks)
- datahub-web-react/src/app/entity/shared/useGetEntities.ts (1 hunks)
- smoke-test/tests/cypress/cypress/e2e/actions/docPropagation.js (1 hunks)
- smoke-test/tests/cypress/data.json (17 hunks)
Additional comments not posted (35)
datahub-web-react/src/app/entity/shared/propagation/PropagationIcon.tsx (1)
16-22
: LGTM!The
PropagateThunderboltFilled
component is well-defined and uses theREDESIGN_COLORS
constant for color.smoke-test/tests/cypress/cypress/e2e/actions/docPropagation.js (1)
3-25
: LGTM!The Cypress test is well-structured and covers the necessary steps to verify the
docPropagation
feature.datahub-web-react/src/app/entity/shared/propagation/utils.ts (1)
9-11
: Ensure proper error handling foruseGetEntities
.Consider handling cases where
useGetEntities
might fail or return unexpected results.Ensure that
useGetEntities
handles errors gracefully and returns a valid result.datahub-web-react/src/app/entity/shared/propagation/PropagationEntityLink.tsx (2)
26-27
: Ensure proper error handling foruseEntityRegistry
.Consider handling cases where
useEntityRegistry
might fail or return unexpected results.Ensure that
useEntityRegistry
handles errors gracefully and returns a valid result.
36-42
: Ensure proper URL encoding and display name assignment.Consider handling cases where
getEntityUrl
orgetDisplayName
might fail or return unexpected results.Ensure that
getEntityUrl
andgetDisplayName
handle errors gracefully and return valid results.datahub-web-react/src/app/entity/shared/propagation/PropagationDetails.tsx (7)
1-8
: Imports look good.The imported modules and components are appropriate for the functionality described.
10-27
: Styled components are well-defined.The styled components
PopoverWrapper
,PopoverTitle
, andPopoverDescription
are defined with appropriate styles.
29-31
: Interface definition looks good.The
Props
interface correctly defines the expected props for thePropagationDetails
component.
33-38
: Usage ofusePropagationDetails
looks good.The custom hook
usePropagationDetails
is used appropriately to extract propagation details fromsourceDetail
.
40-40
: Handle null or non-propagated source details gracefully.The early return ensures that the component does not render if
sourceDetail
is null or not propagated.
42-59
: Popover content rendering is well-structured.The
popoverContent
variable conditionally renders content based on the presence oforiginEntity
andviaEntity
.
61-74
: Component rendering logic looks good.The
Popover
component is used appropriately to display the propagated description with a custom title and content.datahub-web-react/src/app/entity/shared/components/legacy/DescriptionModal.tsx (7)
Line range hint
1-7
:
Imports look good.The imported modules and components are appropriate for the functionality described.
Line range hint
9-24
:
Styled components are well-defined.The styled components
FormLabel
,StyledEditor
,StyledViewer
, andOriginalDocumentation
are defined with appropriate styles.
25-34
: Interface definition looks good.The
Props
interface correctly defines the expected props for theUpdateDescriptionModal
component, including the newpropagatedDescription
prop.
36-44
: Component props usage looks good.The
UpdateDescriptionModal
component correctly uses the newpropagatedDescription
prop along with other existing props.
Line range hint
46-49
:
State initialization logic looks good.The component initializes the state
updatedDesc
based on the provideddescription
ororiginal
prop.
Line range hint
51-60
:
Modal rendering logic looks good.The
Modal
component is used appropriately to display the update description modal with custom footer buttons.
Line range hint
62-90
:
Conditional rendering of descriptions is well-implemented.The component conditionally renders the
StyledEditor
,OriginalDocumentation
for original description, andOriginalDocumentation
for propagated description based on the provided props.datahub-web-react/src/app/entity/shared/tabs/Dataset/Schema/utils/useDescriptionRenderer.tsx (5)
Line range hint
1-9
:
Imports look good.The imported modules and components are appropriate for the functionality described.
Line range hint
11-23
:
Function setup looks good.The
useDescriptionRenderer
function initializes several hooks and utilities appropriately.
25-27
: Editable field info extraction looks good.The function correctly extracts the editable field info from the provided
editableSchemaMetadata
.
28-33
: Usage ofgetFieldDescriptionDetails
looks good.The function correctly uses
getFieldDescriptionDetails
to extract the displayed description, propagation status, and source detail.
Line range hint
35-66
:
Description rendering logic is well-implemented.The function correctly sanitizes the description and handles the expanded rows state. The
DescriptionField
component is used appropriately to render the description with the extracted details.datahub-web-react/src/app/entity/shared/tabs/Dataset/Schema/components/SchemaFieldDrawer/FieldDescription.tsx (5)
9-10
: New imports approved.The new imports
getFieldDescriptionDetails
andPropagationDetails
are necessary for the added functionality.
25-30
: Styled component update approved.The addition of
gap
andalign-items
properties to theDescriptionWrapper
styled component enhances the layout.
100-110
: Conditional rendering update approved.The update to conditionally display
PropagationDetails
based onisPropagated
enhances the user experience by avoiding clutter when propagation is not applicable.
132-132
: UpdateDescriptionModal update approved.The addition of
propagatedDescription
to theUpdateDescriptionModal
component enhances functionality by providing additional context.
83-88
: Utility function usage approved.The usage of
getFieldDescriptionDetails
to derivedisplayedDescription
,isPropagated
,sourceDetail
, andpropagatedDescription
centralizes the logic and improves code clarity.Verify the implementation of
getFieldDescriptionDetails
to ensure it correctly handles the logic.Verification successful
Utility function implementation verified.
The
getFieldDescriptionDetails
function correctly processes theschemaFieldEntity
andeditableFieldInfo
to derive the necessary details. The logic for determiningdisplayedDescription
,isPropagated
,sourceDetail
, andpropagatedDescription
is appropriately handled.
- File:
datahub-web-react/src/app/entity/shared/tabs/Dataset/Schema/utils/getFieldDescriptionDetails.ts
- Lines: 9-25
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the implementation of `getFieldDescriptionDetails`. # Test: Search for the function implementation. Expect: Correct handling of description logic. ast-grep --lang typescript --pattern $'function getFieldDescriptionDetails($_) { $$$ }'Length of output: 2633
datahub-web-react/src/app/entity/dataset/profile/schema/components/SchemaDescriptionField.tsx (4)
8-9
: New imports approved.The new imports
StringMapEntry
andPropagationDetails
are necessary for the added functionality.
33-36
: Styled component addition approved.The addition of the
DescriptionWrapper
styled component enhances the layout by aligning propagation details with the description text.
115-116
: New properties inProps
type approved.The addition of
isPropagated
andsourceDetail
properties to theProps
type enhances functionality by allowing the component to convey additional information regarding data propagation.
198-220
: Conditional rendering update approved.The update to conditionally display
PropagationDetails
based onisPropagated
enhances the user experience by providing more contextual information.smoke-test/tests/cypress/data.json (2)
99-103
: Formatting adjustments approved.The formatting adjustments enhance the readability of the JSON by expanding the "tags" arrays.
Also applies to: 144-148, 257-263, 418-423, 563-567, 743-747, 1040-1044, 1262-1266, 1316-1320, 1373-1377, 1416-1420, 1462-1466, 1512-1516, 1578-1582, 1819-1823, 1850-1854
2208-2217
: New entry for schema field documentation approved.The new entry is correctly formatted and provides necessary metadata regarding schema field documentation.
const { data } = useGetEntitiesQuery({ variables: { urns: verifiedUrns }, skip: !verifiedUrns.length }); | ||
return (data?.entities || []) as Entity[]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure error handling for GraphQL query.
Consider adding error handling for the useGetEntitiesQuery
to handle potential errors gracefully.
const { data, error } = useGetEntitiesQuery({ variables: { urns: verifiedUrns }, skip: !verifiedUrns.length });
if (error) {
console.error('Failed to fetch entities:', error);
return [];
}
return (data?.entities || []) as Entity[];
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
const { data } = useGetEntitiesQuery({ variables: { urns: verifiedUrns }, skip: !verifiedUrns.length }); | |
return (data?.entities || []) as Entity[]; | |
const { data, error } = useGetEntitiesQuery({ variables: { urns: verifiedUrns }, skip: !verifiedUrns.length }); | |
if (error) { | |
console.error('Failed to fetch entities:', error); | |
return []; | |
} | |
return (data?.entities || []) as Entity[]; |
export function useGetEntities(urns: string[]): Entity[] { | ||
const [verifiedUrns, setVerifiedUrns] = useState<string[]>([]); | ||
|
||
useEffect(() => { | ||
urns.forEach((urn) => { | ||
if (urn.startsWith('urn:li:') && !verifiedUrns.includes(urn)) { | ||
setVerifiedUrns((prevUrns) => [...prevUrns, urn]); | ||
} | ||
}); | ||
}, [urns, verifiedUrns]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Optimize URN verification logic.
The current logic verifies URNs on every render, which can be optimized by using a Set
to track verified URNs.
export function useGetEntities(urns: string[]): Entity[] {
const [verifiedUrns, setVerifiedUrns] = useState<Set<string>>(new Set());
useEffect(() => {
urns.forEach((urn) => {
if (urn.startsWith('urn:li:') && !verifiedUrns.has(urn)) {
setVerifiedUrns((prevUrns) => new Set(prevUrns).add(urn));
}
});
}, [urns, verifiedUrns]);
const { data } = useGetEntitiesQuery({ variables: { urns: Array.from(verifiedUrns) }, skip: !verifiedUrns.size });
return (data?.entities || []) as Entity[];
}
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
export function useGetEntities(urns: string[]): Entity[] { | |
const [verifiedUrns, setVerifiedUrns] = useState<string[]>([]); | |
useEffect(() => { | |
urns.forEach((urn) => { | |
if (urn.startsWith('urn:li:') && !verifiedUrns.includes(urn)) { | |
setVerifiedUrns((prevUrns) => [...prevUrns, urn]); | |
} | |
}); | |
}, [urns, verifiedUrns]); | |
export function useGetEntities(urns: string[]): Entity[] { | |
const [verifiedUrns, setVerifiedUrns] = useState<Set<string>>(new Set()); | |
useEffect(() => { | |
urns.forEach((urn) => { | |
if (urn.startsWith('urn:li:') && !verifiedUrns.has(urn)) { | |
setVerifiedUrns((prevUrns) => new Set(prevUrns).add(urn)); | |
} | |
}); | |
}, [urns, verifiedUrns]); | |
const { data } = useGetEntitiesQuery({ variables: { urns: Array.from(verifiedUrns) }, skip: !verifiedUrns.size }); | |
return (data?.entities || []) as Entity[]; | |
} |
export function usePropagationDetails(sourceDetail?: StringMapEntry[] | null) { | ||
const isPropagated = !!sourceDetail?.find((mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true'); | ||
const originEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'origin')?.value || ''; | ||
const viaEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'via')?.value || ''; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider handling edge cases for sourceDetail
.
Ensure that sourceDetail
is properly validated to avoid potential issues with find
operations.
- const isPropagated = !!sourceDetail?.find((mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true');
- const originEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'origin')?.value || '';
- const viaEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'via')?.value || '';
+ const isPropagated = sourceDetail?.some((mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true') ?? false;
+ const originEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'origin')?.value ?? '';
+ const viaEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'via')?.value ?? '';
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
export function usePropagationDetails(sourceDetail?: StringMapEntry[] | null) { | |
const isPropagated = !!sourceDetail?.find((mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true'); | |
const originEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'origin')?.value || ''; | |
const viaEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'via')?.value || ''; | |
export function usePropagationDetails(sourceDetail?: StringMapEntry[] | null) { | |
const isPropagated = sourceDetail?.some((mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true') ?? false; | |
const originEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'origin')?.value ?? ''; | |
const viaEntityUrn = sourceDetail?.find((mapEntry) => mapEntry.key === 'via')?.value ?? ''; |
const displayedDescription = | ||
editableFieldInfo?.description || documentation?.documentation || defaultDescription || ''; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Optimize the displayedDescription
assignment.
The assignment of displayedDescription
can be optimized by using nullish coalescing to handle default values.
- const displayedDescription =
- editableFieldInfo?.description || documentation?.documentation || defaultDescription || '';
+ const displayedDescription = editableFieldInfo?.description ?? documentation?.documentation ?? defaultDescription ?? '';
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
const displayedDescription = | |
editableFieldInfo?.description || documentation?.documentation || defaultDescription || ''; | |
const displayedDescription = editableFieldInfo?.description ?? documentation?.documentation ?? defaultDescription ?? ''; |
export function getFieldDescriptionDetails({ schemaFieldEntity, editableFieldInfo, defaultDescription }: Props) { | ||
const documentation = schemaFieldEntity?.documentation?.documentations?.[0]; | ||
const isUsingDocumentationAspect = !editableFieldInfo?.description && !!documentation; | ||
const isPropagated = | ||
isUsingDocumentationAspect && | ||
!!documentation?.attribution?.sourceDetail?.find( | ||
(mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true', | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider handling edge cases for schemaFieldEntity
and editableFieldInfo
.
Ensure that schemaFieldEntity
and editableFieldInfo
are properly validated to avoid potential issues with find
operations.
- const isPropagated =
- isUsingDocumentationAspect &&
- !!documentation?.attribution?.sourceDetail?.find(
- (mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true',
- );
+ const isPropagated = isUsingDocumentationAspect &&
+ documentation?.attribution?.sourceDetail?.some(
+ (mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true'
+ ) ?? false;
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
export function getFieldDescriptionDetails({ schemaFieldEntity, editableFieldInfo, defaultDescription }: Props) { | |
const documentation = schemaFieldEntity?.documentation?.documentations?.[0]; | |
const isUsingDocumentationAspect = !editableFieldInfo?.description && !!documentation; | |
const isPropagated = | |
isUsingDocumentationAspect && | |
!!documentation?.attribution?.sourceDetail?.find( | |
(mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true', | |
); | |
export function getFieldDescriptionDetails({ schemaFieldEntity, editableFieldInfo, defaultDescription }: Props) { | |
const documentation = schemaFieldEntity?.documentation?.documentations?.[0]; | |
const isUsingDocumentationAspect = !editableFieldInfo?.description && !!documentation; | |
const isPropagated = isUsingDocumentationAspect && | |
documentation?.attribution?.sourceDetail?.some( | |
(mapEntry) => mapEntry.key === 'propagated' && mapEntry.value === 'true' | |
) ?? false; |
const isSchemaField = entity.type === EntityType.SchemaField; | ||
const baseEntity = isSchemaField ? (entity as SchemaFieldEntity).parent : entity; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Optimize the entity type check and assignment.
The entity type check and assignment can be optimized for better readability and performance.
- const isSchemaField = entity.type === EntityType.SchemaField;
- const baseEntity = isSchemaField ? (entity as SchemaFieldEntity).parent : entity;
+ const baseEntity = entity.type === EntityType.SchemaField ? (entity as SchemaFieldEntity).parent : entity;
Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
const isSchemaField = entity.type === EntityType.SchemaField; | |
const baseEntity = isSchemaField ? (entity as SchemaFieldEntity).parent : entity; | |
const baseEntity = entity.type === EntityType.SchemaField ? (entity as SchemaFieldEntity).parent : entity; |
…eover' into jj--propagation-doc-action-ui-takeover
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- datahub-web-react/src/app/settings/features/Feature.tsx (2 hunks)
- datahub-web-react/src/app/settings/features/Features.tsx (1 hunks)
- smoke-test/tests/cypress/cypress/e2e/actions/docPropagation.js (1 hunks)
Files skipped from review as they are similar to previous changes (1)
- smoke-test/tests/cypress/cypress/e2e/actions/docPropagation.js
Additional comments not posted (2)
datahub-web-react/src/app/settings/features/Features.tsx (1)
82-82
: LGTM! But verify the impact on user experience.The change to
isAvailable: true
for the "Asset Level Propagation" feature is approved.However, ensure that this change positively impacts the user experience and does not introduce any unexpected behaviors.
datahub-web-react/src/app/settings/features/Feature.tsx (1)
162-178
: LGTM! But verify the impact on the user interface.The addition of the
DataHubOnlyTag
for settings options is approved.However, ensure that this change positively impacts the user interface and provides the intended context to the users.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- smoke-test/tests/cypress/cypress/e2e/actions/docPropagation.js (1 hunks)
Files skipped from review as they are similar to previous changes (1)
- smoke-test/tests/cypress/cypress/e2e/actions/docPropagation.js
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- datahub-web-react/src/app/entity/shared/components/legacy/DescriptionModal.tsx (2 hunks)
Files skipped from review as they are similar to previous changes (1)
- datahub-web-react/src/app/entity/shared/components/legacy/DescriptionModal.tsx
…eover' into jj--propagation-doc-action-ui-takeover
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (3)
- datahub-web-react/src/app/entity/shared/propagation/PropagationDetails.tsx (1 hunks)
- datahub-web-react/src/app/entity/shared/propagation/PropagationEntityLink.tsx (1 hunks)
- datahub-web-react/src/app/lineage/LineageExplorer.tsx (1 hunks)
Files skipped from review due to trivial changes (1)
- datahub-web-react/src/app/lineage/LineageExplorer.tsx
Files skipped from review as they are similar to previous changes (2)
- datahub-web-react/src/app/entity/shared/propagation/PropagationDetails.tsx
- datahub-web-react/src/app/entity/shared/propagation/PropagationEntityLink.tsx
…eover' into jj--propagation-doc-action-ui-takeover
…eover' into jj--propagation-doc-action-ui-takeover
…eover' into jj--propagation-doc-action-ui-takeover
…eover' into jj--propagation-doc-action-ui-takeover
Summary
In this PR we add support for rendering propagated column documentation.
Checklist
-project/datahub/blob/master/docs/CONTRIBUTING.md) (particularly Commit Message Format)
Summary by CodeRabbit
New Features
SchemaDescriptionField
to display propagation details and source information.PropagationDetails
andPropagationEntityLink
components for improved user interface related to data propagation.propagatedDescription
prop in theDescriptionModal
for displaying additional description information.Feature
component to visually indicate DataHub-only options with a new tag.Bug Fixes
Tests