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

feat(bpdm-gate-pool): MVP hierarchy data model adjustment #1027

Closed
9 tasks done
HeyHardy opened this issue Aug 9, 2024 · 5 comments
Closed
9 tasks done

feat(bpdm-gate-pool): MVP hierarchy data model adjustment #1027

HeyHardy opened this issue Aug 9, 2024 · 5 comments
Assignees
Labels
enhancement New feature or request standards-relevant The issue has an impact on the Catena-X standards

Comments

@HeyHardy
Copy link

HeyHardy commented Aug 9, 2024

@nicoprow EDIT:

Use case Description

As a Company Admin,
I want to manage hierarchies for Business Partner Number Legal Entities (BPNLs) in the Catena-X Portal,
so that I can effectively organize and control the relationships between different BPNLs by using the existing UI for own company data in the portal.

Acceptance Criteria

All acceptance criteria refer to the BPDM Gate component. Other BPDM components are not affected as the business partner relationship will not be shared for now.

  1. Data Modeling and Integration:

    • Create a new business partner relationship resource representing the hierarchy (see chapter Relationship Abstract Data Model).
    • Support relationship type 'IsManagedBy'.
    • Ensure that each BPNL can support multiple hierarchy types.
  2. CRUD Operations:

    • Create: Ability to create a new business partner relationship with hierarchy type IsManagedBy
    • Read: Display all hierarchy types, including Managed in Portal with their details.
    • Update: Allow editing of existing hierarchies.
  3. Extended Functional Requirements

    • Adjust authorization logic
    • Only able to define relationship for own Legal Entity (identified by owner BPNL) as source and other owned Legal Entity as target
    • No duplicate relationships from same source to same type

Relationship Abstract Data Model

---
title: Business Partner Relationship
---
classDiagram
    BusinessPartnerRelationship "*" --> "1" BusinessPartner: Source
    BusinessPartnerRelationship "*" --> "1" BusinessPartner: Target
    BusinessPartnerRelationship "*" --> "1" BusinessPartnerRelationshipType: Type

    class BusinessPartner["Business Partner"]{
    }
    class BusinessPartnerRelationship["Business Partner Relationship"]{
        String ExternalId
        Timestamp CreatedAt
        Timestamp UpdatedAt 
    }
    class BusinessPartnerRelationshipType["Business Partner Relationship Type"]{
        <<Enumeration>>
        IsManagedBy
    }
Loading

Authorization

Permissions

  1. read_input_relationship
  2. write_input_relationship

BPDM Roles

Admin Input Manager Input Consumer
  • read_input_relationship
  • write_input_relationship
    • read_input_relationship
    • write_input_relationship
    • read_input_relationship

    Working Assumptions:

    • Only one main company is onboarded (no subsidary company onboarded which can be linked to).

    Out of Scope:

    • No backward provisioning of hierarchy relationships and newly created BPNLs to the Sharing Member Gate (possibly in the future, Big Picture).
    • Set the own_company_data attribute for the child entity (only backend, not frontend).
    • No valid from, valid to, active, or inactive statuses.
    • Delete: Allow deletion of hierarchies when no longer needed.
    • Relationship types: public and non-public (default: non-public).
    • Advanced search capabilties beyond ExternalId

    Open Questions

    • Portal Roles? How do our new roles connect to the existing portal roles
    • How can we ensure that the linkage of two BPNLs exists if the information is not present in the pool?
    • Is a filter required to ensure that the information is correctly linked?
    @Sebastian-Wurm
    Copy link

    Sebastian-Wurm commented Sep 30, 2024

    Source IsManagedBy Target, so target is VW and source is Audi for example.

    image

    @nicoprow
    Copy link
    Contributor

    nicoprow commented Nov 14, 2024

    @HeyHardy I would like to sharpen the issue here in this repository. Open questions and more overall conceptional ideas should be kept in the attached sig-release parent issue. I would like to sharpen the issue description to the following:

    Use case Description

    As a Company Admin,
    I want to manage hierarchies for Business Partner Number Legal Entities (BPNLs) in the Catena-X Portal,
    so that I can effectively organize and control the relationships between different BPNLs by using the existing UI for own company data in the portal.

    Acceptance Criteria

    All acceptance criteria refer to the BPDM Gate component. Other BPDM components are not affected as the business partner relationship will not be shared for now.

    1. Data Modeling and Integration:

      • Create a new business partner relationship resource representing the hierarchy (see chapter Relationship Abstract Data Model).
      • Support relationship type 'IsManagedBy'.
      • Ensure that each BPNL can support multiple hierarchy types.
    2. CRUD Operations:

      • Create: Ability to create a new business partner relationship with hierarchy type IsManagedBy
      • Read: Display all hierarchy types, including Managed in Portal with their details.
      • Update: Allow editing of existing hierarchies.
    3. Extended Functional Requirements

      • Adjust authorization logic
      • Only able to define relationship for own Legal Entity (identified by owner BPNL) as source and other owned Legal Entity as target
      • No duplicate relationships from same source to same type

    Relationship Abstract Data Model

    ---
    title: Business Partner Relationship
    ---
    classDiagram
        BusinessPartnerRelationship "*" --> "1" BusinessPartner: Source
        BusinessPartnerRelationship "*" --> "1" BusinessPartner: Target
        BusinessPartnerRelationship "*" --> "1" BusinessPartnerRelationshipType: Type
    
        class BusinessPartner["Business Partner"]{
        }
        class BusinessPartnerRelationship["Business Partner Relationship"]{
            String ExternalId
            Timestamp CreatedAt
            Timestamp UpdatedAt 
        }
        class BusinessPartnerRelationshipType["Business Partner Relationship Type"]{
            <<Enumeration>>
            IsManagedBy
        }
    
    Loading

    Authorization

    Permissions

    1. read_input_relationship
    2. write_input_relationship

    BPDM Roles

    Admin Input Manager Input Consumer
  • read_input_relationship
  • write_input_relationship
    • read_input_relationship
    • write_input_relationship
    • read_input_relationship

    Working Assumptions:

    • Only one main company is onboarded (no subsidary company onboarded which can be linked to).

    Out of Scope:

    • No backward provisioning of hierarchy relationships and newly created BPNLs to the Sharing Member Gate (possibly in the future, Big Picture).
    • Set the own_company_data attribute for the child entity (only backend, not frontend).
    • No valid from, valid to, active, or inactive statuses.
    • Delete: Allow deletion of hierarchies when no longer needed.
    • Relationship types: public and non-public (default: non-public).
    • Advanced search capabilties beyond ExternalId

    Open Questions

    • Portal Roles? How do our new roles connect to the existing portal roles
    • How can we ensure that the linkage of two BPNLs exists if the information is not present in the pool?
    • Is a filter required to ensure that the information is correctly linked?

    @HeyHardy @Sebastian-Wurm Please give me feedback if you are ok with this summary so I can update the top comment of this issue for clarity

    @nicoprow nicoprow added the standards-relevant The issue has an impact on the Catena-X standards label Nov 26, 2024
    @Sebastian-Wurm
    Copy link

    @nicoprow, @HeyHardy, @maximilianong:

    @nicoprow
    Copy link
    Contributor

    nicoprow commented Dec 4, 2024

    updated the issue description with the suggestion in my previous comment

    @nicoprow nicoprow moved this to 🔖 Refined in BPDM Kanban Dec 4, 2024
    @nicoprow
    Copy link
    Contributor

    nicoprow commented Dec 4, 2024

    @nicoprow, @HeyHardy, @maximilianong:

    * What is the current implementation status here?
    
    * How can the implementation in this issue be used to fulfill the requirement raise here: [API Endpoint for Retrieving Legal Entity Data, incl. Sites and addresses of Onboarded Legal Entities to the data space and other legal entity data of that onboarded legal entity #1088](https://github.com/eclipse-tractusx/bpdm/issues/1088)?
    
    * Should the "is Catena-X member data" flag of the BPDM Pool be connected to the "is managed by" relationships of the BPDM Gate?
    

    I added this issue to the Kanban-board in the refined state to show the current status (ready to start implementing)

    Regarding #1088 the hierarchy relationship can of course be used to implement the requirements but I don't think it is necessary. Due to our current concept, the confidence criteria information 'isSharedByOwner' is enough.
    isManagedBy and isCatenaXMemberData has in my point of view two different meanings. At least for now Cx member data specifies sites and addresses that directly belong to legal entity members (including the legal entity member). It excludes legal entities which are not Cx members and their site and address data. I think the first step is decide on a conceptual level what Catena-X member data actually includes.

    @nicoprow nicoprow moved this from 🔖 Refined to 🏗 In progress in BPDM Kanban Dec 10, 2024
    @nicoprow nicoprow moved this from 🏗 In progress to 👀 In review in BPDM Kanban Dec 20, 2024
    @nicoprow nicoprow moved this from 👀 In review to ✅ Done in BPDM Kanban Jan 17, 2025
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    enhancement New feature or request standards-relevant The issue has an impact on the Catena-X standards
    Projects
    Archived in project
    Development

    No branches or pull requests

    4 participants