From f9f705f014254806c12448ab0e483ad8239993a1 Mon Sep 17 00:00:00 2001 From: bobby-smedley Date: Thu, 9 Apr 2026 12:46:38 -0400 Subject: [PATCH 1/3] fix: correct DefinitionAttributeTypeID --- pkg/clients/dgc_relation_client.go | 2 +- pkg/tools/add_business_term/tool.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/clients/dgc_relation_client.go b/pkg/clients/dgc_relation_client.go index 747cd21..a27d690 100644 --- a/pkg/clients/dgc_relation_client.go +++ b/pkg/clients/dgc_relation_client.go @@ -10,7 +10,7 @@ import ( // Well-known Collibra UUIDs for relation and attribute types. const ( - DefinitionAttributeTypeID = "00000000-0000-0000-0000-000000003008" + DefinitionAttributeTypeID = "00000000-0000-0000-0000-000000000202" DataAttributeRepresentsMeasureRelID = "00000000-0000-0000-0000-000000007200" GenericConnectedAssetRelID = "00000000-0000-0000-0000-000000007038" ColumnToTableRelID = "00000000-0000-0000-0000-000000007042" diff --git a/pkg/tools/add_business_term/tool.go b/pkg/tools/add_business_term/tool.go index 4bc9102..d34b9b7 100644 --- a/pkg/tools/add_business_term/tool.go +++ b/pkg/tools/add_business_term/tool.go @@ -12,7 +12,7 @@ const ( // BusinessTermTypeID is the fixed type public ID for Business Term assets. BusinessTermTypeID = "BusinessTerm" // DefinitionAttributeTypeID is the type ID for the Definition attribute. - DefinitionAttributeTypeID = "00000000-0000-0000-0000-000000003114" + DefinitionAttributeTypeID = "00000000-0000-0000-0000-000000000202" ) // InputAttribute represents an additional attribute to add to the business term. From 6cb2389ecf8352e93ec670b45aafff34ac65a6e5 Mon Sep 17 00:00:00 2001 From: bobby-smedley Date: Thu, 9 Apr 2026 14:33:19 -0400 Subject: [PATCH 2/3] fix: rename relation/attribute type constants to match DGC and fix broken UUIDs --- pkg/clients/dgc_relation_client.go | 14 +++++++------- pkg/tools/get_business_term_data/tool.go | 4 ++-- pkg/tools/get_column_semantics/tool.go | 4 ++-- pkg/tools/get_measure_data/tool.go | 4 ++-- pkg/tools/get_table_semantics/tool.go | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pkg/clients/dgc_relation_client.go b/pkg/clients/dgc_relation_client.go index a27d690..b1d4ab2 100644 --- a/pkg/clients/dgc_relation_client.go +++ b/pkg/clients/dgc_relation_client.go @@ -10,12 +10,12 @@ import ( // Well-known Collibra UUIDs for relation and attribute types. const ( - DefinitionAttributeTypeID = "00000000-0000-0000-0000-000000000202" - DataAttributeRepresentsMeasureRelID = "00000000-0000-0000-0000-000000007200" - GenericConnectedAssetRelID = "00000000-0000-0000-0000-000000007038" - ColumnToTableRelID = "00000000-0000-0000-0000-000000007042" - DataAttributeRelID1 = "00000000-0000-0000-0000-000000007094" - DataAttributeRelID2 = "cd000000-0000-0000-0000-000000000023" + DefinitionAttributeTypeID = "00000000-0000-0000-0000-000000000202" + MeasureIsCalculatedUsingDataElementRelID = "00000000-0000-0000-0000-000000007200" + BusinessAssetRepresentsDataAssetRelID = "00000000-0000-0000-0000-000000007038" + ColumnIsPartOfTableRelID = "00000000-0000-0000-0000-000000007042" + DataAttributeRepresentsColumnRelID = "00000000-0000-0000-0000-000000007094" + ColumnIsSourceForDataAttributeRelID = "00000000-0000-0000-0000-120000000011" ) type RelationsQueryParams struct { @@ -164,7 +164,7 @@ func FindColumnsForDataAttribute(ctx context.Context, client *http.Client, dataA seen := make(map[string]struct{}) result := make([]ConnectedAsset, 0) - for _, relID := range []string{DataAttributeRelID1, DataAttributeRelID2} { + for _, relID := range []string{DataAttributeRepresentsColumnRelID, ColumnIsSourceForDataAttributeRelID} { assets, err := FindConnectedAssets(ctx, client, dataAttributeID, relID) if err != nil { return nil, err diff --git a/pkg/tools/get_business_term_data/tool.go b/pkg/tools/get_business_term_data/tool.go index 2d7a1cb..e83617a 100644 --- a/pkg/tools/get_business_term_data/tool.go +++ b/pkg/tools/get_business_term_data/tool.go @@ -56,7 +56,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { return Output{Error: "businessTermId is required"}, nil } - dataAttributes, err := clients.FindConnectedAssets(ctx, collibraClient, input.BusinessTermID, clients.GenericConnectedAssetRelID) + dataAttributes, err := clients.FindConnectedAssets(ctx, collibraClient, input.BusinessTermID, clients.BusinessAssetRepresentsDataAssetRelID) if err != nil { return Output{}, err } @@ -79,7 +79,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { Description: clients.FetchDescription(ctx, collibraClient, col.ID), } - tables, err := clients.FindConnectedAssets(ctx, collibraClient, col.ID, clients.ColumnToTableRelID) + tables, err := clients.FindConnectedAssets(ctx, collibraClient, col.ID, clients.ColumnIsPartOfTableRelID) if err != nil { return Output{}, err } diff --git a/pkg/tools/get_column_semantics/tool.go b/pkg/tools/get_column_semantics/tool.go index 3246431..beff244 100644 --- a/pkg/tools/get_column_semantics/tool.go +++ b/pkg/tools/get_column_semantics/tool.go @@ -58,7 +58,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { for _, da := range dataAttributes { description := clients.FetchDescription(ctx, collibraClient, da.ID) - rawMeasures, err := clients.FindConnectedAssets(ctx, collibraClient, da.ID, clients.DataAttributeRepresentsMeasureRelID) + rawMeasures, err := clients.FindConnectedAssets(ctx, collibraClient, da.ID, clients.MeasureIsCalculatedUsingDataElementRelID) if err != nil { return Output{}, err } @@ -73,7 +73,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { }) } - rawGenericAssets, err := clients.FindConnectedAssets(ctx, collibraClient, da.ID, clients.GenericConnectedAssetRelID) + rawGenericAssets, err := clients.FindConnectedAssets(ctx, collibraClient, da.ID, clients.BusinessAssetRepresentsDataAssetRelID) if err != nil { return Output{}, err } diff --git a/pkg/tools/get_measure_data/tool.go b/pkg/tools/get_measure_data/tool.go index 9101286..6a0056c 100644 --- a/pkg/tools/get_measure_data/tool.go +++ b/pkg/tools/get_measure_data/tool.go @@ -55,7 +55,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { return Output{Error: "measureId is required"}, nil } - dataAttributes, err := clients.FindConnectedAssets(ctx, collibraClient, input.MeasureID, clients.DataAttributeRepresentsMeasureRelID) + dataAttributes, err := clients.FindConnectedAssets(ctx, collibraClient, input.MeasureID, clients.MeasureIsCalculatedUsingDataElementRelID) if err != nil { return Output{}, err } @@ -76,7 +76,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { Description: clients.FetchDescription(ctx, collibraClient, col.ID), } - tables, err := clients.FindConnectedAssets(ctx, collibraClient, col.ID, clients.ColumnToTableRelID) + tables, err := clients.FindConnectedAssets(ctx, collibraClient, col.ID, clients.ColumnIsPartOfTableRelID) if err != nil { return Output{}, err } diff --git a/pkg/tools/get_table_semantics/tool.go b/pkg/tools/get_table_semantics/tool.go index 1f29139..efa8e8c 100644 --- a/pkg/tools/get_table_semantics/tool.go +++ b/pkg/tools/get_table_semantics/tool.go @@ -56,7 +56,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { return Output{Error: "tableId is required"}, nil } - rawColumns, err := clients.FindConnectedAssets(ctx, collibraClient, input.TableID, clients.ColumnToTableRelID) + rawColumns, err := clients.FindConnectedAssets(ctx, collibraClient, input.TableID, clients.ColumnIsPartOfTableRelID) if err != nil { return Output{}, err } @@ -74,7 +74,7 @@ func handler(collibraClient *http.Client) chip.ToolHandlerFunc[Input, Output] { for _, da := range dataAttributes { daDescription := clients.FetchDescription(ctx, collibraClient, da.ID) - rawMeasures, err := clients.FindConnectedAssets(ctx, collibraClient, da.ID, clients.DataAttributeRepresentsMeasureRelID) + rawMeasures, err := clients.FindConnectedAssets(ctx, collibraClient, da.ID, clients.MeasureIsCalculatedUsingDataElementRelID) if err != nil { return Output{}, err } From 544372e18bc59bd197aec7bf08515591b21f9a31 Mon Sep 17 00:00:00 2001 From: bobby-smedley Date: Thu, 9 Apr 2026 14:40:30 -0400 Subject: [PATCH 3/3] fix: update hardcoded DefinitionAttributeTypeID in add_business_term test --- pkg/tools/add_business_term/tool_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/tools/add_business_term/tool_test.go b/pkg/tools/add_business_term/tool_test.go index 69f8623..90a6339 100644 --- a/pkg/tools/add_business_term/tool_test.go +++ b/pkg/tools/add_business_term/tool_test.go @@ -30,8 +30,8 @@ func TestAddBusinessTermSuccess(t *testing.T) { if req.AssetId != "new-asset-uuid-456" { t.Errorf("expected assetId 'new-asset-uuid-456', got '%s'", req.AssetId) } - if req.TypeId != "00000000-0000-0000-0000-000000003114" { - t.Errorf("expected definition typeId '00000000-0000-0000-0000-000000003114', got '%s'", req.TypeId) + if req.TypeId != "00000000-0000-0000-0000-000000000202" { + t.Errorf("expected definition typeId '00000000-0000-0000-0000-000000000202', got '%s'", req.TypeId) } if req.Value != "Total income generated from sales" { t.Errorf("expected value 'Total income generated from sales', got '%s'", req.Value)