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

Stitch all pieces together #23

Open
2 tasks
joecorall opened this issue Dec 5, 2024 · 0 comments
Open
2 tasks

Stitch all pieces together #23

joecorall opened this issue Dec 5, 2024 · 0 comments

Comments

@joecorall
Copy link
Member

joecorall commented Dec 5, 2024

We have several data sources we currently manage independent of each other

1. Drupal node field storage

We treat Drupal's config export for our content type and its attached fields to represent the metadata we're saving in our repository.
drupal

2. Google Sheets columns

We treat the Google Sheet as a human-friendlier UI to create bulk metadata to ultimately be stored in Drupal
sheets

3. Go structs

We use generated structs to help the transformation process between Drupal and Google Sheets

gophercolor

Existing tooling

go-islandora has tooling to transform

drupal right-arrow gophercolor
sheets right-arrow gophercolor

This fabricator repo then uses those structs and has some gnarly validation and transformation logic to basically unmarshal the google sheet data and marshal it into a CSV workbench can process.

Path forward

If we were to create a spec that can read the Drupal field storage, understand its field types and the expected format the data should be in Google Sheets, we could then abstract the transformation between drupal and sheets, allowing us to make edits to the google sheet, and automatically have that be able to be processed by fabricator without any manual code changes. We could just download the sheet and run the transformation. This would allow adoption of this process by others in the Islandora community without needing to write any code. it would also make our own implementation more robust.

TODO

  • Create a transformation spec
  • Run a nightly job (or maybe event driven based on edits to the ingest template) that reconciles changes to the spreadsheet.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant