Skip to content

Plugin catalog tab (postponed) #27

Open

Description

@PierreRaybaut

DataLab desktop 1.4 lists the plugins of the DataLab plugin catalog in Plugins > Configure plugins... > Available plugins (DataLab-Platform/DataLab#391). DataLab-Web has no equivalent.

Postponed on purpose. The catalog only lists Camera and Pulse, which are already bundled with DataLab-Web: a catalog tab would add nothing today, and the catalog should stay low-key while it lists so few plugins. Revisit when the catalog lists a web plugin (targets includes web) that is not bundled. Meanwhile, a catalog wheel can be downloaded and installed with Install wheel… in the plugin manager.

When this is picked up:

  • Read catalog.json (schema_version 1; release URLs are relative to it). Keep releases whose targets include web, skip yanked releases and revoked plugins, show deprecated plugins with their reason.
  • Download the wheel, check its size and SHA-256 against the catalog, then install it through the existing user-wheel path (installPluginWheel) and the same consent dialog, showing the catalog as the source.
  • Decide the trust level. Catalog checks are automatic (pure Python, OSI-approved license, dependencies provided by DataLab, same rules as datalab.plugins.wheels); they are not the qualification gate behind verified. A catalog source/trust value is likely, and UserPluginWheelRecord needs the catalog plugin ID and version to offer updates.
  • Catalog URL setting, empty to disable (desktop: plugins_catalog_url). In production, /web/ and /plugins/ share the datalab-platform.com origin; other hosts rely on the CORS headers of GitHub Pages.
  • i18n, Vitest, and a Playwright spec with a local catalog fixture.

Desktop reference: datalab/plugins/catalog.py (fetch, download and checks, Qt-free) and datalab/gui/plugins/available.py (tab).

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions