Versions Compared

Key

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

...

  1. Questions/Issues/Pull requests/Announcements
    1. VIVO 1.13.0 release candidate -
      1. Release Testing - 1.13.0
      2. Release Notes
  2. The ongoing sprint
    1. A Dynamic API label for issues and PR
    2. repositories and branches
      1.  https://github.com/vivo-project/Vitro/tree/sprint-dynapi-2022-feb-staging
      2. https://github.com/vivo-project/Vitro-angular
    3. Tracks
      1. Project board - https://github.com/orgs/vivo-project/projects/2 
      2. Ontology
        1. RDF representation of dynamic actions and resourceAPIs
      3. Binding
        1. Binding to Java objects representation 
      4. Execution
        1. Execution of a dynamic action
      5. RCP Endpoint
      6. REST Endpoint
      7. Security
        1. Definition of dynamic action roles
        2. Authentication (endpoint and UI)
        3. Authorization
          1. JWT
      8. Validation
        1. syntax,
        2. SHACL rules for all dynamic actions
      9. UI for exposing dynamic API
        1. Angular & Angular Material
          1. the server side module 
            1. https://angular.io/guide/universal
          2. a central state management up front
            1. https://ngrx.io/
          3. i18n library 
            1. https://ngneat.github.io/transloco/
          4. GitHub CI Actions
            1. build
            2. lints
              1. adopt a style guide and have it enforced using linting
            3. tests
              1. incorporate best practices and have test coverage in initial commit
                1. CodeCov vs Coverall vs Other options
          5. library for common modules and custom elements
            1. one or two or more modules
      10. CRUD operations for custom actions
      11. UI for management of custom actions
      12. Exploitation

Notes

Dragan: Announced VIVO 13.0.0 release candidate for testing via email. The hope is that some people who are not part of this sprint can maybe test the release candidate while the sprint is in progress. 

New Github label for DynamicAPI will be created for issues and tasks that concern this new part of VIVO.

Dragan: How to review William’s initial Angular PR?

William: Run different ngm scripts to see if they all work, + people who are interested in frontend development should go over the code to see if everything makes sense. Also advocates for using CLI tools for creating any new Angular component. Does not expect comments on PR, since there is no code that isn’t automatically generated with Angular tools. Suggests using release branches instead of staging. All feature dev happens on feature branches, and after that they get merget to the release branch. This approach negates the need for sprint branches. 

Dragan: How should we take care of CORS?

William: Thinks CORS should not be done on the level of application code, but rather on the level of tomcat server. Isn’t even sure that it is possible to do this on application level when it comes to java servlets.

Mark will read more about the CORS filters, and then we will continue the discussion about how to implement CORS filters.

Should we use one or multiple GitHub CI Actions? Having multiple builds should not slow down our CI pipeline since duplicate tasks (like downloading dependencies) would be cached. The agreement was to split Github CI actions into multiple files.

Short discussion about linters and security analysis tools. Some tools to check: jslint for js linting, lgtm.com, for java  security analysis, checkstyles for java style analysis, SonarCube. CodeCov will be used for test code coverage.

After short discussion about libraries and common modules, William and Dragan and Georgy agreed to start development using no libraries, because we currently don't have enough human resources to create abstractions for every possible use case.

Dragan: Should “Compute Scope” be part of isValid or not.

Georgy: It should be part of the validation process. ComputeScope will then be private, since it is never called directly.

Draft notes in Google Docs

...