frontend icon indicating copy to clipboard operation
frontend copied to clipboard

Plugins system for SciCat FE

Open Ingvord opened this issue 7 months ago • 1 comments

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:

  • Create a new Angular project for the generic component.

  • Implement the component using the shared types.

Integrate Shared Types:

  • Install the scicat-shared-types package in the new plugin project.

  • Utilize the shared types in the component.

Publish the Plugin:

  • Build and publish the plugin to npm or any npm compatible registry (e.g. GitHub).

Update SciCat FE:

  • Install the new plugin and shared types package.

  • Update import paths and integrate the plugin into the SciCat frontend.

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

Ingvord avatar Jul 08 '24 15:07 Ingvord