Date
Call-in Information
Time: 10:00 am, Eastern Time (New York, GMT-04:00)
To join the online meeting:
https://lyrasis.zoom.us/j/84378615572?pwd=bGUxSjlyRTdjOGl5U1B6L0Yva3RQdz09
Meeting ID: 843 7861 5572
Passcode: 556561
One tap mobile
+16699006833,,84378615572#,,,,*556561# US (San Jose)
+19292056099,,84378615572#,,,,*556561# US (New York)Dial by your location
+1 669 900 6833 US (San Jose)
+1 929 205 6099 US (New York)
+1 253 215 8782 US (Tacoma)
+1 301 715 8592 US (Washington DC)
+1 312 626 6799 US (Chicago)
+1 346 248 7799 US (Houston)
877 853 5257 US Toll-free
888 475 4499 US Toll-free
Meeting ID: 843 7861 5572
Passcode: 556561
Find your local number: https://lyrasis.zoom.us/u/kerqtGDrJ4
Slack
- https://vivo-project.slack.com
- Self-register at: http://bit.ly/vivo-slack
- Self-register at: http://bit.ly/vivo-slack
Attendees
Indicating note-taker
Agenda
- Questions/Issues/Pull requests/Announcements
- VIVO 1.13.0 release candidate -
- The ongoing sprint
- A Dynamic API label for issues and PR
- repositories and branches
- Testing strategy
- Tracks
- Project board - https://github.com/orgs/vivo-project/projects/2
- Ontology
- RDF representation of dynamic actions and resourceAPIs
- Binding
- Binding to Java objects representation
- Execution
- Execution of a dynamic action
RCP EndpointREST Endpoint- Security
- Definition of dynamic action roles
- Authentication (endpoint and UI)
- Authorization
- JWT
- Validation
- syntax,
- SHACL rules for all dynamic actions
- UI for exposing dynamic API
- Angular & Angular Material
- the server side module
- a central state management up front
- i18n library
- GitHub CI Actions
- build
- lints
- adopt a style guide and have it enforced using linting
- tests
- incorporate best practices and have test coverage in initial commit
- CodeCov vs Coverall vs Other options
- incorporate best practices and have test coverage in initial commit
- library for common modules and custom elements
- one or two or more modules
- Angular & Angular Material
CRUD operations for custom actionsUI for management of custom actionsExploitation
Notes
- Questions/Issues/Pull requests/Announcements
- VIVO 1.13.0 release candidate -
- New member: Vivian Silva from Brazil
- Trying to implement national grid in Brazil. Colleague (Washington) attended CRIS conference in Dubronik. Met with Christian Hauschke who advised attending dev meeting
- Problems with data loading into VIVO. Hard to load large amounts of data. Can add description of problem in slack
- Dragan: Custom solution for aggregating data, but then migrating data to VIVO.
- Vivian: Load data from multiple sources into relational DB, convert to RDF, and then load into VIVO
- Open Repositories conference underway in Denver. Presentation on VIVO and DSpace at conference
- The ongoing sprint
- A Dynamic API label for issues and PR
- repositories and branches
- https://github.com/vivo-project/Vitro/tree/sprint-dynapi-2022-feb-staging
- https://github.com/vivo-project/Vitro-angular
- Testing strategy
- Tracks
- Project board - https://github.com/orgs/vivo-project/projects/2
- Ontology
- RDF representation of dynamic actions and resourceAPIs
- Binding
- Binding to Java objects representation
- Execution
- Execution of a dynamic action
- RCP Endpoint
- REST Endpoint
- Security
- Definition of dynamic action roles
- Authentication (endpoint and UI)
- Authorization
- JWT
- Veljko: Working endpoint which uses authentication measures to check user credentials and writes user object to a session
- Trying to figure out how to get user roles
- User account object with field for all permissions, but roles aren’t really mentioned. But there are parts of code where roles are mentioned.
- E.g. Display by role permission, role identifier, request action
- Trying to find which function is called to get role for a specific user
- Role for displaying page or accessing data? Is there central way to get role info for a particular user?
- Validation
- syntax,
- SHACL rules for all dynamic actions
- Dragan: has continued to work on this track. Validator capable of loading SHACL rules and validate if new file is in accordance with those rules.
- If something already in graph, accept a resource URI and then see if valid according to SHACL rules
- Need to still decide whether we would get rid of any data that is not valid (Please correct if I got this wrong)
- Validation required when loading into graph and making available at endpoint
- UI for exposing dynamic API
- Angular & Angular Material
- the server side module
- a central state management up front
- i18n library
- GitHub CI Actions
- build
- lints
- adopt a style guide and have it enforced using linting
- tests
- incorporate best practices and have test coverage in initial commit
- CodeCov vs Coverall vs Other options
- library for common modules and custom elements
- one or two or more modules
- William: Boilerplate (no UX, etc). Dependencies up to date. CI actions in GitHub.
- Next step: spinning up Dynamic API backend . Will look at CORS setup in Tomcat.
- UI: creating feature store. Using NGX (manual redux). Observing to create routing system. Simple route to go to each of these resources. Then steps of calling getters/exposing crud operations.
- Blocker: don’t have a graph yet to expose
- Dragan: Thought sprint focused on exposing dynamic actions. Also doing edit?
- William: No just exposing all available REST endpoints. As bound to resources, delineation to route by resource.
- Solr query: custom action on one of resources.
- CRUD operations for custom actions
- UI for management of custom actions
- Exploitation
N3 triple editing
Georgy: Additions and Retractions objects in ModelChange processing
Veljko: How can user specify which triple is removed/added (modified)
Georgy: Boolean data property that switches action from addition to retraction. Property in ontology, domain is N3TemplateClass and range is boolean.
Veljo: How would modification work? Chaining addition and retraction
Georgy: Or one N3 file for addition, one N3 file for retraction.
Two files. N3 template wants to remove something and then add something.
- N3 file with values to be added
- N3 file with values to be removed
Huda: Reminisced about N3 optionals and requireds and N3 editing
Georgy: If we have two separate transactions for deletions and insertions, would that affect performance?
Brian: Moving away from the process where it’s one atomic transaction where we dedup triples between additions and transactions and then add and remove: feels like that might be mistake.
Georgy: ModelChange - additions and retractions. Does code handle both together?
Brian:
William (from chat): Have to drop off for local standup. Have question attempting to load dynamic api n3. Not being picked up. Where in vivo-home do they need to be placed? Posted question in slack
Veljko: Seems like an open question still. Is there code that processes additions and retractions together?
Georgy: Yes, there should be code looking at intersections
Veljko: May leave security track for now and look at editing
Huda (from chat): this is how it used to work
(Generate the minimal set of additions and retractions to be passed along)
Georgy: If Veljko switches focus to N3templates, better for Mark to work on pull request. Not to overload Veljko with both N3 templates and security
William: Do we need editing if we just want to start out with read?
Cloned all four repositories. Spinning up, it does not seem to be loading.
Dragan: Startup listeners should be checked. Done in Vitro. If running full VIVO, startup listeners need to be copied over.
Benjamin (from chat): https://github.com/vivo-project/Vitro/blob/sprint-dynapi-2022-feb-staging/webapp/src/main/webapp/WEB-INF/resources/startup_listeners.txt
Task List
Previous Tasks
- Dragan Ivanovic to open an issue for a reverse proxy (redirecting) - https://vivo-project.slack.com/archives/C8RL9L98A/p1651739159126489
- Dragan Ivanovic to contact Andrew Wood for resolving the issue with registration for the Slack channel
- All to consider participation in the sprint and if decide to participate to register for the sprint - link
- Dragan Ivanovic to send a require to add in the Leadership group agenda a topic for discussing Copyright owner in License
- All please help in filling this document - spreadsheet
- Dragan Ivanovic to create a draft version of a Google Spreadsheet document with labeled columns representing requirements and to share with committers
- Committers to review the structure of the document and to fill it with data for JS and CSS frameworks