Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Attendees

  1. Dragan Ivanovic 
  2. Georgy Litvinov 
  3. Benjamin Kampe 
  4. Mark Vanin 
  5. Veljko Maksimovic 
  6. Rolf
  7. William Welling 

Resources

Agenda

  1. Goals:

    1. Surface any fundamental issues
  2. Sprint logistics / scheduling

    1. Daily stand-up report in Slack - #dynamic-api-sprint-may#i18n-sep-2022 channel
    2. A bi-daily meeting (Monday, Wednesday, Friday) at 10am Eastern Time (4pm CEST)
  3. Tools and resources 
    1. Branches
    2. Test datasets
    3. Integration tests
    4. Development processes
      1. Git / GitHub processes
      2. GitHub issues process
    5. Dev environment... please take as first task to establish this
  4. Tickets - https://github.com/orgs/vivo-project/projects/24/views/1

  5. Documentation - VIVO Dynamic API

  6. Tracks
  7. Ontology
    1. RDF representation of dynamic actions and resourceAPIs
  8. Binding
    1. Binding to Java objects representation 
  9. Execution
    1. Execution of a dynamic action
  10. RCP Endpoint
  11. REST Endpoint
  12. Security
    1. Definition of dynamic action roles
    2. Authentication (endpoint and UI)
    3. Authorization
      1. JWT
      2. Do we need OAuth2 or OpenID Connect ???
  13. Validation
    1. syntax,
    2. over the ontology,
    3. generic SHACL rules for all dynamic actions
    4. custom SHACL rules for specific dynamic actions ???
  14. UI for running a dynamic action
  15. Angular & Angular Material
  16. Some notes regarding angular from William Welling .

  17. I would recommend against using a openapi specification generator
    1. it likely does not take into consideration angular universal for SEO, central state management, or i18n
    2. it is not likely to be a long lived dependency, popular, or actually work well with the dynamism of custom actions
  18. choose between the server side module (both express and angular universal)
  19. https://angular.io/guide/universal
  20. https://github.com/nestjs/ng-universal
  21. consider a central state management up front
    1. https://ngrx.io/
  22. choose i18n library (important to know whether we want runtime or build time i18n)
    1. http://www.ngx-translate.com/
    2. https://ngneat.github.io/transloco/
    3. https://angular.io/guide/i18n-overview
  23. adopt a style guide and have it enforced using linting
    1. have github action check code styles
    2. protect main branch against style guide violations
  24. incorporate best practices and have test coverage in initial commit
    1. have github action that performs code coverage
    2. protect main branch for code coverage decrease
  25. CRUD operations for custom actions
  26. UI for management of custom actions
  27. Exploitation

Slack stand-up template

Panel

[VIVO Dynamic API Standup]
Finished yesterday: 
  {ticket titles and associated GitHub links}
  {AND please include brief textual description}
Working on today:
  {ticket titles and associated GitHub links}
  {AND please include brief textual description}
Blockers:
  {brief textual description}

Notes 

...

Discussion about approach for implementation of authorization. Conclusion was that we should create a separate ontology for Vitro AuthZ solution. One, or two person should work on designing it before we implement that into Dynamic API.  Georgy thinks this is a big issue deserving a complete sprint, and we need a quick and simple solution for forthcoming sprint. That solution might be that users with role Administrator can modify (create, update, delete) dynamic actions, while a role for execution of a dynamic action is defined by using hasRole object property in the Action class. 

...