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

Plugins system for SciCat FE #1519

Open
Ingvord opened this issue Jul 8, 2024 · 1 comment
Open

Plugins system for SciCat FE #1519

Ingvord opened this issue Jul 8, 2024 · 1 comment

Comments

@Ingvord
Copy link
Contributor

Ingvord commented Jul 8, 2024

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
Copy link
Contributor Author

Ingvord commented Jul 23, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant