Skip to content

Glossary

A short reference for the terms used across MINT, written for someone landing on the platform for the first time.

A

Admin A platform-wide role that grants every permission. Distinct from a project owner, which is scoped to a single project.

Analysis plugin A plugin that reads experiment data and produces results. Doesn't own a database schema. The Analyze tab on an experiment lists installed analysis plugins.

Analysis result The output of an analysis-plugin run, accumulated under the experiment's analysis_results. Multiple runs over time accumulate; the platform doesn't replace previous runs.

Approval queue The list of pending plugin install requests, visible to admins under Admin → Marketplace. Required when marketplace.requireApproval is true.

Archive (project) Hides a project from default dashboards without deleting any data. Reversible.

Archive (uninstall mode) Renames a plugin's tables with an archived_* prefix on uninstall. Data is unreachable but recoverable.

Artifact A user-uploaded file attached to an experiment — RAW data, plate maps, sequence sheets, and so on. Stored under plugins.dataDir.

Authenticator The device or method that proves a user's identity in WebAuthn / passkey login — a hardware key, Touch ID, Windows Hello, etc.

C

Capability A flag in PluginMetadata declaring that a plugin needs read or write access to a specific resource family (experiments, projects, …). The PlatformContext enforces capabilities at runtime.

Channel (updates)stable or beta. Switches whether the platform polls for stable releases or pre-release tags.

Collaborator A per-experiment role override stored on the experiment itself. Survives project membership changes.

Custom role A platform-wide role assembled by an admin from any subset of the 18 permissions. Sits alongside the built-in Admin / Member / Viewer.

D

Design data JSON validated against an experiment-design plugin's schema. Describes what the experiment is and what it contains.

Design plugin A plugin that owns an experiment type and its database schema. Provides the experiment's design form and CRUD logic.

Dev modedevMode: true in config.json. Bypasses authentication on every route, forces a local Postgres, disables rate limits. For local development only — never expose.

E

Experiment The unit of work in MINT. Has a unique code (EXP-001), a type, a status, an owner, optional collaborators, design data, and accumulated analysis results.

Experiment code Auto-assigned, globally unique identifier (EXP-001, EXP-002, …). Generated by naming_service. Not editable.

Experiment type A string registered by an experiment-design plugin. Determines which design schema applies and which analyses can run.

I

Isolation The mechanism by which conflicting plugins run in separate venvs and subprocesses. The platform proxies HTTP to them transparently. Detected automatically by the dependency conflict checker.

J

JWT (JSON Web Token) The auth token MINT issues after a successful password or passkey login. Stored in an HttpOnly cookie. 24-hour TTL by default.

M

Marketplace The catalog of plugins available for install. Sourced from marketplace.registryUrl. Admins approve install requests when approval is enforced.

Marketplace registry A static JSON feed plus the wheel files it points at. Hostable on any HTTPS endpoint. Default is marketplace.morscherlab.org.

Member (system role) A user with read + write rights for projects and experiments they belong to, but no platform-admin rights. Most lab users are Members.

Migration (platform) A schema migration in api/migrations/versions/ that the platform runs on startup. Tracked via alembic_version.

Migration (plugin) A PluginMigration from mint_sdk.migrations. Plugins that own tables ship migrations; the platform runs them advisory-locked. Tracked in plugin_schema_migrations.

MINT Mass-spec INtegrated Toolkit. The current name for the platform formerly called MLD. Rebrand landed alongside v1.0.0.

MLD The historical name of the platform — Morscher Laboratory Database. Now retired in favor of MINT, but the GitHub repo retains the name.

P

Passkey A WebAuthn credential — a public/private key pair stored on a device. Replaces or supplements password login.

Permission A resource.action string (e.g., experiment.write) that backend routes check. 18 permissions total, in 5 groups.

Pin (plugin) Locks a plugin at a specific version, opting it out of auto-update. Configured under plugins.pin in config.json.

Plugin A self-contained extension to the platform. Implements AnalysisPlugin from mint-sdk. Discovered via the mld.plugins entry-point group.

PlatformContext The runtime object the platform hands a plugin. Provides repository accessors, the current user, and an OpenTelemetry tracer.

Project The top-level grouping in MINT. Owns a set of experiments and a member list. Project membership gates access to all experiments in the project.

Project role A per-project override on top of the system role. One of Owner / Editor / Viewer.

Purge (uninstall mode) Drops a plugin's tables and uploaded artifacts permanently. Irreversible.

R

Repository pattern The platform's data-access abstraction. Each resource (project, experiment, user, …) has a repository that hides whether the storage is files, SQLite, or Postgres.

Routes prefix The URL path a plugin mounts under, declared in PluginMetadata.routes_prefix (e.g., /my-plugin).

S

Snapshot A pre-upgrade capture of plugin database + filesystem state, used for rollback. Created by snapshot.py. Short-lived — not a backup substitute.

SDKmint-sdk (Python) for plugin backends; @morscherlab/mint-sdk (npm) for plugin frontends. The contract between plugins and the platform.

SSO (Single Sign-On) Delegating authentication to an external identity provider (Microsoft Entra, Google Workspace, Okta, …) via OIDC. Configured under auth.sso.

Status (experiment) One of planned, ongoing, completed. Most plugins gate writes on the status.

V

Viewer (system role) A read-only platform-wide role. Cannot write to any resource.

W

WebAuthn The browser standard behind passkey login. MINT uses it via the passkey_service.

MINT is open source. Made by the Morscher Lab.