-
Notifications
You must be signed in to change notification settings - Fork 0
/
migration-config.yml
65 lines (65 loc) · 4.07 KB
/
migration-config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# -------------------- Lyterati XML Profile -------------------------------------------------------------------------------------------------
# The id_source is expected to consist of an XML file from Lyterati containing faculty user IDs, names, and department and school affiliation.
# This file is used to match rows from the various Lyterati service/teaching/research reports with their user IDs for import into Elements
id_source: ./data/lyterati-xml/expert-finder-feed/fis_faculty.xml
# Field name in the XML that corresponds to the unique user ID
profile_id_field: gw_id
# Field names to extract from the XML
profile_fields:
- first_name
- middle_name
- last_name
- home_college
- home_department
- gw_id
# Mapping from XML profile to Lyterati reporting column names
profile_field_map:
home_college: college_name
home_department: department_name
# Field names for merging with Lyterati reports
merge_fields: ['first_name', 'last_name', 'college_name', 'department_name']
# -------------------- Lyterati Activity Reports ----------------------------------------------------------------------------------------------
# This JSON file contains a mapping from the broader categories of data (Research, Teaching Service) to the individual reports available in Lyterati
# The data_migrator script uses this mapping to aggregate reports by category, where the categories correspond to categories in Elements.
# The categories also correspond to the enum attributes defined in elements_types.SourceHeading
lyterati_type_mapping: ./category-mapping.json
# -------------------- Lyterati-Elements Transform ------------------------------------------------------------------------------------------
# Output files will be prefixed with the category of object (activity/publication/teaching-activity) as required by Elements
output_dir: ./data/to-migrate/sftp
# File that stores unique identifiers on Elements objects. It's import to preserve this file to avoid duplicating objects on subsequent uploads.
object_id_store: ./data/to-migrate/unique-ids.csv
# Decision sheets from Elements mapping exercise, by category
mapping:
activity: ./data/to-migrate/mapping/professional-activities-decision_12-05-2024.csv
teaching-activity: ./data/to-migrate/mapping/teaching-acitivities-decision_10-25-2024.csv
publication: ./data/to-migrate/mapping/publications-decision_10-24-2024.csv
# Choice lists: these files map Elements choice items to Lyterati values, or in the case where no mapping is required, they provide a list of choice items
# Each file should be a spreadsheet containing tabs for each underlying choice field used in that category
choice_lists:
activity: "./data/to-migrate/mapping/Professional Actitivies Choice Lists.xlsx"
teaching-activity: "./data/to-migrate/mapping/Teaching Activities Choice Lists.xlsx"
# Fields from the Lyterati reports to concatenate, by category
# For each category, the fields specified as keys will have their values concatenated with the values of the fields listed in association with those keys
# Note that the fields correspond to column names in the LYTERATI reports, not Elements fields, since the concatenation is done prior to mapping
concat_fields:
activity:
additional_details: ['heading_type', 'collaborators']
teaching-activity:
additional_details: ['placement_type', 'role', 'degree_type']
publication:
additional_details: ['authors']
# Lyterati fields for adding the faculty user to the list of co-authors
user_author_mapping:
fields: ['first_name', 'middle_name', 'last_name']
included_in: ['publication']
# Lyterati field that may contain DOI's
doi_fields: ['url', 'additional_details', 'publication_name']
# Minium end date -- for end-date field values that are blank when the end-date underlying field is specified on the mapping for an object type
# This will be computed as the end of the given year
end_year_min: 2019
# global settings affecting all objects of this type
# first value is the privacy setting, second is whether the privacy setting is locked for the user
object_privacy:
activity: internal,false
publication: internal,false
teaching-activity: internal,false