Terminology:

This is a suggestion for how user data could flow to Grouper in future state

The problem this is trying to solve


Setup entity resolvers

The first configuration step is to set up entity resolvers

For users

Returns

Two types of data fields

Point in time

Assumption

All institutions are either

Grouper gets that data


Subject source

Members table

Loaders

UI/WS

Provisioning

Summary

In summary here is a metaphor... we used to have SQL credentials in multiple places, then we made an external system layer to re-use that.  This suggested is similar.  Have a data layer that can we re-used across things.  Includes real-time updates, security, and data manipulation configured centrally...  why?  if we want to be ABAC and data field-based, we need to organize our data fields


Data model

grouper_members

Existing table

grouper_data_field

Types of data fields for user or rows

grouper_data_row

Type of data field rows available for users

grouper_data_row_field

Which fields are in which rows

grouper_data_field_row_sec

Row level security for data

grouper_member_data_field

Assignment of a data field to an entity

grouper_member_data_row

Assignment of a row of data to an entity

grouper_member_data_row_field

Assignment of a field to a row assignment

grouper_dictionary

Keep data field values here to reduce data redundancy