SciCatProject / frontend

SciCat open data catalogue web client
https://scicatproject.github.io
BSD 3-Clause "New" or "Revised" License
23 stars 25 forks source link

Plugins system for SciCat FE #1519

Open Ingvord opened 2 months ago

Ingvord commented 2 months ago

As #1505 shows one can already have quite isolated "plugins" in SciCat FE. However real plugins system requires some more efforts.

Here is how I see plugins roadmap in general:

Extract TypeScript Definitions:

Identify and extract necessary TypeScript definitions from the SciCat frontend. For instance, DatasetState definition or e.g. DataSet itself etc

Create a shared types package (e.g., scicat-shared-types).

For any given plugin:

Set Up New Angular Project:

Integrate Shared Types:

Publish the Plugin:

Update SciCat FE:

An interesting point is to extract those scicat-shared-types. Ideally those has to be generated from common schema or sdk

Ingvord commented 1 month ago

Apparently Angular has already implemented microfrontends, hence plugins in Angular Federation

I believe for us (if we go this way) the best will be to leverage this