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

Complete overhaul (separated Dockerfiles, Nuxt3, ...) #29

Merged
merged 313 commits into from
Jun 17, 2024
Merged

Complete overhaul (separated Dockerfiles, Nuxt3, ...) #29

merged 313 commits into from
Jun 17, 2024

Conversation

EDM115
Copy link
Contributor

@EDM115 EDM115 commented Mar 29, 2024

This Pull Request is a complete change of how processings work
Here's a comprehensive list of everything that have changed :

Global changes

  • Redone the README
  • Added Contributing guidelines
  • Added a documentation for the API
  • Renamed the folder server to api and public to ui to reflect the deliverables split
  • Extracted the worker part of the api in its own folder
  • Reduced the RAM usage of ElasticSearch in the Docker Compose to ease the local development
  • Splitted the Dockerfile in 3 (one for each part of the app)
  • Updated in consequence the Actions scripts, made a new one to test the build without pushing anything
  • Added Zellij
  • Added new scripts (i to do a clean install of the dependencies, build-types to create the types from the schema.json, dev-zellij to run the docker compose and all parts of processings in a nice UI, test-images to run the project with the 3 Dockerfiles built, ...)
  • Moved scripts in each of the 3 main subfolders, made them workspaces
  • Cleaned the config files, made them distinct per folder
  • Uses ES6 instead of CJS
  • Updated all dependencies to their latest versions
  • Uses @data-fair/lib when possible
  • Removed unused deps
  • Saves the docker compose logs on dev
  • Reordered folders to the place they belong to
  • Added a small nginx server to serve as a proxy on dev (simple-directory runs on 8080, data-fair on 8081 and notify on 8088)
  • Added type annotations
  • Changed the way tests are done, uses node:test instead of mocha

api

  • On dev, runs on port 8082
  • prometheus is now observer from lib
  • session is also handled by lib
  • Comply to the new objects returned by data-fair
  • Added custom metrics
  • Better requests to the NPM registry
  • Validates config's via a schema
  • Added a param showAll on GET /plugins-registry, allowing to fetch distTags only on demand (useful for displaying test versions of plugins). This allows the request to be blazingly fast by default
  • Added new params to GET /processings, which uses Mongo's facets :
    • plugins : Allows to filter the processings by plugin used
    • statuses : Allows to filter the processings by status (last run status and next run if any)
  • GET /plugins returns a new object along count and results : facets, which is a object containing usages :
    {
      "id": 0
    }
    it allows to get how many times a plugin is used, useful to restrict uninstalling a plugin still used

ui

  • Migrated from Nuxt 2 to Nuxt 3
  • Migrated from Vuetify 2 to Vuetify 3
  • Bumped VJSF to v3
  • Removed the top bar, unless we're not in an iframe. Allows for easier development. Also removed sd-vue components
  • Removed the store
  • Login errors appears as a new page
  • Refreshed the UI (more rounded)
  • Added loading indicators while we wait for a response from the API and disables the buttons (i.e. avoid creating 2 processings because we clicked twice)
  • Added a foolproof routing (/admin => /admin/plugins)
  • Fixed some issues with the way the menu appeared on mobile
  • Fixed the notifications having a transparent background (rendering them unreadable on mobile)
  • The notifications appear in more errors cases from the API
  • Added the Show all processings in the mobile menu
  • We can now install several plugins at once
  • Stops having an installed plugin also appearing in the available plugins list
  • Updating a plugin is better (displays an update button)
  • Confirm before deleting a plugin
  • Plugins are sorted in their list and have their version better displayed
  • Processings that uses a deleted plugin can't be run
  • The runs page now displays a status icon before every step, allowing to quickly see where a warning can be
  • Uses the accent color for warnings and stopped runs to differentiate them better from errors
  • You can now type a plugin's name during processing creation
  • Displays the number of available and installed plugins, just like in processing's list
  • Displays the kill/killed status on processing's list
  • Allow to search for processings (without reload), filter by run status and plugin used, all compatible with each other
  • Plugins can have a custom name
  • Don't load all distTags of plugins (only useful for test versions), making the available plugins list load much faster (~ instantly) and allows to load the extra plugins with a checkbox
  • Added skeleton loaders while we wait for the processings/plugins list to load
  • Dynamic filters now reflects in the URL, meaning reloading it with special params will display the same thing
  • Now the iframe height shows correctly when there's no processing and we spawn the create processing menu (before it was very small)
  • We now can't uninstall a plugin used by at least one processing, also displays how many times a plugin is used

worker

  • Validates config's via a schema
  • Mainly bugfixes

BatLeDev and others added 30 commits February 29, 2024 19:31
+ move start servers into index.js
- added back things that went missing during the migration
- the docker-compose logs are now saved
- reordered variables, imports, ...
- specify the source of $fetch calls
- fixed the default 8px margin, see https://www.joshwcomeau.com/css/custom-css-reset/ for more CSS hacks
- tried to fix the emits, subject to change
- VJSF migration not 100% done yet
- probably fixed some ws bugs
- moved sources/ to ui/assets/sources/
- removed every require left
- ui/assets/format.js seems unused
- ui build now deletes the right folder
- fixed the middleware
- fixed some event bus oversights
- store update: added error(), changed the login (! this can be the source of some errors)
+ bug : /api/v1/runs never return 403 error
+ bug : processings tests doesn't work
- the middleware now works
- fixed some migration issues
- uses navigateTo instead of router.push
- the error layout is now in ui/
- properly set the HEAD metadata
- moved all filters in 1 file
- _id.vue is now [id].vue
- properly instantiate the store
- fix some eslint errors
- create a gitignore for ui
- better nuxt.config.js
… nuxt3

# Veuillez entrer un message de validation pour expliquer en quoi cette fusion est
# nécessaire, surtout si cela fusionne une branche amont mise à jour dans une branche de sujet.
#
# Les lignes commençant par '#' seront ignorées, et un message vide
# abandonne la validation.
@albanm albanm marked this pull request as ready for review June 17, 2024 13:41
@albanm albanm merged commit a061639 into master Jun 17, 2024
5 checks passed
@albanm albanm deleted the nuxt3 branch June 17, 2024 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants