What makes an INM7Member? #1

Closed
opened 2025-01-17 06:53:34 +00:00 by mih · 6 comments
mih commented 2025-01-17 06:53:34 +00:00 (Migrated from github.com)

This is a Person.

What properties do we need? Candidates

  • Juseless account name
  • Start date
  • End date
This is a `Person`. What properties do we need? Candidates - Juseless account name - Start date - End date
Owner

I asked Data and Platforms, and this was the initial response:

  • full name
  • juseless account
  • contact details (FZJ email, external email, matrix, etc; clearly this is unclear)
  • group membership (aka who is responsible)
  • start date
  • end date

Pulling from Ansible, this is an example of the information we have for each user account on Juseless:

  - username: droozbehani
    name: Delaram Roozbehani
    uid: 42198
    groups:
      - cng
    datastore_user_password: !vault "$ANSIBLE_VAULT;1.1;AES256\n366161636163656135386666343038643531613637353838376236393862666338323037373738333537636535646336323564373633633363323836326532330a373132626239366461663764336134373361343737343836336262646632663138326533663066383162356464613066653133376531393830626230323631310a34363935306136323338653639613033336661656138303733343731396562323166636231393638333331393931346139383736313333313030363863616330"
I asked Data and Platforms, and this was the initial response: - full name - juseless account - contact details (FZJ email, external email, matrix, etc; clearly this is unclear) - group membership (aka who is responsible) - start date - end date Pulling from Ansible, this is an example of the information we have for each user account on Juseless: ``` - username: droozbehani name: Delaram Roozbehani uid: 42198 groups: - cng datastore_user_password: !vault "$ANSIBLE_VAULT;1.1;AES256\n366161636163656135386666343038643531613637353838376236393862666338323037373738333537636535646336323564373633633363323836326532330a373132626239366461663764336134373361343737343836336262646632663138326533663066383162356464613066653133376531393830626230323631310a34363935306136323338653639613033336661656138303733343731396562323166636231393638333331393931346139383736313333313030363863616330" ```
Owner

I am in touch with Tobias now to discuss this further. Key question is what would be a suitable persistent identifier for an INM7 member?

I am in touch with Tobias now to discuss this further. Key question is what would be a suitable persistent identifier for an INM7 member?
Owner

Names and account names can change. And are PII (if that matters).

My ideas are:

  • uid (that presumes that everyone associated with INM-7 will have a Juseless account, or at least that we reserve a uid for them and we add another flag to toggle whether to create the account or not).
  • generate a UUID
  • bank IBAN number ;-P
Names and account names can change. And are PII (if that matters). My ideas are: - `uid` (that presumes that everyone associated with INM-7 will have a Juseless account, or at least that we reserve a `uid` for them and we add another flag to toggle whether to create the account or not). - generate a UUID - bank IBAN number ;-P
Owner

Here is a first attempt to flesh out the concept map necessary to capture the main aspects of people at inm7

classDiagram
    class Agent
    class Organization
    class INM7
    class Person {
        pid: truncated_hash(name, start_date)
    }
    class Group
    class Entity
    class Resource
    class Activity
    class Project
    class JuselessProject
    class INM7Group {
        pid: "inm7:groups/group-id"
    }
    class Account {
    }
    class JuselessAccount {
        pid: "inm7:accounts/account-id"
    }
    class EmailAccount {
        pid: "email:fzj-email"
    }
    class FZJEmailAccount {
    }
    class MatrixAccount {
        pid: "@user:host"
    }
    Activity <|-- Project
    Project <|-- JuselessProject
    Agent <|-- Person
    Agent <|-- Group
    Agent <|-- Organization
    INM7 ..|> Organization
    Group <|-- INM7Group
    Account <|-- JuselessGroup
    Entity <|-- Account
    Account <|-- MatrixAccount
    Account <|-- JuselessAccount
    Account <|-- EmailAccount
    EmailAccount <|-- FZJEmailAccount
    Entity <|-- Resource
    Document <|-- Resource
    Document <|-- JugitIssue
    Document <|-- DUA

    DUA <.. Person : signatory
    Person <.. MatrixAccount
    Person <.. FZJEmailAccount
    Person <.. EmailAccount
    Person <.. JuselessAccount
    JuselessAccount <.. JugitIssue

    JuselessProject <.. Person : owner|member
    JuselessProject <.. JuselessGroup

    INM7 <.. Person : member
    INM7 <.. INM7Group : partOf
    INM7Group <.. Person : member

    click Agent href "https://concepts.datalad.org/sprov/unreleased/Agent/"
    click Group href "https://concepts.datalad.org/s/social/unreleased/Group/"
    click Entity href "https://concepts.datalad.org/s/prov/unreleased/Entity/"
    click Activity href "https://concepts.datalad.org/s/prov/unreleased/Activity/"
    click Project href "https://concepts.datalad.org/s/social/unreleased/Project/"
    click Person href "https://concepts.datalad.org/s/social/unreleased/Person/"

continue editing with the above as a starting point

Here is a first attempt to flesh out the concept map necessary to capture the main aspects of people at inm7 ```mermaid classDiagram class Agent class Organization class INM7 class Person { pid: truncated_hash(name, start_date) } class Group class Entity class Resource class Activity class Project class JuselessProject class INM7Group { pid: "inm7:groups/group-id" } class Account { } class JuselessAccount { pid: "inm7:accounts/account-id" } class EmailAccount { pid: "email:fzj-email" } class FZJEmailAccount { } class MatrixAccount { pid: "@user:host" } Activity <|-- Project Project <|-- JuselessProject Agent <|-- Person Agent <|-- Group Agent <|-- Organization INM7 ..|> Organization Group <|-- INM7Group Account <|-- JuselessGroup Entity <|-- Account Account <|-- MatrixAccount Account <|-- JuselessAccount Account <|-- EmailAccount EmailAccount <|-- FZJEmailAccount Entity <|-- Resource Document <|-- Resource Document <|-- JugitIssue Document <|-- DUA DUA <.. Person : signatory Person <.. MatrixAccount Person <.. FZJEmailAccount Person <.. EmailAccount Person <.. JuselessAccount JuselessAccount <.. JugitIssue JuselessProject <.. Person : owner|member JuselessProject <.. JuselessGroup INM7 <.. Person : member INM7 <.. INM7Group : partOf INM7Group <.. Person : member click Agent href "https://concepts.datalad.org/sprov/unreleased/Agent/" click Group href "https://concepts.datalad.org/s/social/unreleased/Group/" click Entity href "https://concepts.datalad.org/s/prov/unreleased/Entity/" click Activity href "https://concepts.datalad.org/s/prov/unreleased/Activity/" click Project href "https://concepts.datalad.org/s/social/unreleased/Project/" click Person href "https://concepts.datalad.org/s/social/unreleased/Person/" ``` [continue editing with the above as a starting point](https://mermaid.live/edit#pako:eNqdVm1vmzAQ_ivInzYp4SUESFA1rVq7qZW6Vpv2pYpUucYBt2Aj23RN2_z32bykhpBqCl-Ae-6eu_O9wCtALMEgBiiHQpwRmHJYrKilrlpinaaYSlNwzVNIyQuUhFFTfvHzKjLfbzAXjFqvjUxfJUliS_KKIihxcpdBkX2isMATS0jI5V2ixJ8b9a3J9IOzqjQF51QSuTElv7BgFUe4FzmS5Gmgd8PZA0a9fC4rgXMsxAikU6qd72WxAoQWUZxqUDj1bUqSFRiJ_hQhVlHZUWzHfA90hm5gAwunfTjk6ryAJD_MhTUcr18epvXTKMX328sxlp7OFZScPB_281VlxeOMCTlw0VXEOnmbTvu1aF8aZLQkdSO2lnVr7YmNPjGk-_2qy2rZ9tuXEawpd224q34XfJNvL0IDb5qygVvdEcPe2X1AfFjDLE_r2SxYrTOo4n6A_Xk5Y6gqdgf2EXZZpUReCFGNomd_TlftOapH68S2uy0QW4KkFErG23Fs5Vpl5EgMdDQVA_8QHD3N4dA1iu959bV2jWkmw_5SzN8KXNxjflh90CRG8_XITJod-r56YqtUy_F6_a7Q9ugYRzemBD22M5BxvFYzmUlZithxEKMIl1LYatnCHCY246kjnJKzJ6eiXMULBU6c2tbpxrfha9z-H59giMDcZKytB4xtRx4XYmM8YNxtmCPTbs0HrF1Rj829tR-yNsU7mrQ2V5xgAlJOEhCvYS7wBBSYq5lQ76BezSsgM1zgFdCrOYH8UUexVUYlpLeMFSBWn2RlpuqTZjuSqtRf4_Z_YCA9T4ga5J0QVpL93lDUEeUMJljBr0BuSv1rkRIhlT-V2ZqkWl7xXIm7jDVsq_HLqnsbscIRJMlUx2dPy9AJZ-ECznwcRj4MfD9B995ysZ7NvXUSud4Mgu1WRY6pcvhNDzOIvbnv1rlpR88g9n3XDsJg6UXLcBEFE7ABcRDZ82jmRuHcC10vCGeBYnmpz8K1Q991vSiYB-F84S1DfwJwne9V-5-kb9t_IlgFHQ)
Owner

As this spans technical, admin, and scientific information, it could be linked to #12 (talent management) as well. On the administrative side, my wish list includes the following:

  • contract information (location: e.g., Düsseldorf, Jülich, type: e.g., scientific, administrative, internship)
  • an indicator of career stage (to distinguish BSc, MSc, PhD students, postdocs, PIs. In the past, "time since PhD" was a relevant metric, so something like - for lack of creativity in layman terms - "degree" and "degree-awarded-date")

Edit: @mih and me discussed the possibility of a degree_awared slot that takes a date.

As this spans technical, admin, and scientific information, it could be linked to #12 (talent management) as well. On the administrative side, my wish list includes the following: - contract information (location: e.g., Düsseldorf, Jülich, type: e.g., scientific, administrative, internship) - an indicator of career stage (to distinguish BSc, MSc, PhD students, postdocs, PIs. In the past, "time since PhD" was a relevant metric, so something like - for lack of creativity in layman terms - "degree" and "degree-awarded-date") Edit: @mih and me discussed the possibility of a ``degree_awared`` slot that takes a date.
Owner

There is now a user management application with a dedicated schema: https://concepts.inm7.de/s/flat-users

I'd say this is good enough until domain feedback arrives. Closing for now.

There is now a user management application with a dedicated schema: https://concepts.inm7.de/s/flat-users I'd say this is good enough until domain feedback arrives. Closing for now.
mih closed this issue 2025-05-08 10:45:40 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
inm7/inm7-concepts#1
No description provided.