Linkr
Home Resources Tools Documentation Blog Demo
FR
  • What is Linkr?
  • Deployment modes
  • Quick start
  • Local install
  • With Docker
  • Manual install
  • Client-only
  • Install LibreChat
  • Your first project
  • Linkr in a clinical data warehouse
  • Workspaces and projects
  • The data pipeline
  • Entities and sharing
  • Versioning and collaboration
  • Overview
  • Projects
  • Wiki
  • Plugins
  • Members and roles
  • Settings
  • Schemas
  • Getting and exploring
  • Mapping
  • Databases
  • Derived sub-databases
  • Data quality
  • Data catalog
  • Build and publish
  • Anonymize
  • SQL script collections
  • ETL pipelines
  • Building and running
  • Generating the scripts
  • Overview
  • Mapping projects
  • Global view
  • Target concepts
  • Mapping editor
  • Suggestions
  • AI agent
  • Evaluation
  • Export
  • Overview
  • Databases
  • Concepts
  • Cohorts
  • Building
  • Results, SQL and report
  • Patient data
  • Pipeline
  • Datasets
  • IDE
  • Web apps
  • Versioning
  • Overview
  • Tabs and widgets
  • Built-in widgets
  • Analysis widgets
  • Control charts (SPC)
  • Surveys and eCRF
  • R and Python code
  • Filters, settings and export
  • Overview
  • Presentation mode
  • Exporting a report
  • Agents
  • MCP server
  • Skills
  • Import and export
  • Git versioning
  • Community catalog
  • Publishing content
  • Production install
  • Configuration
  • Database connectors
  • Authentication and permissions
  • Files on the server
  • Backup and restore
  • Contributing code
  • Glossary
  • Keyboard shortcuts
  • Release notes
Documentation Core concepts Versioning and collaboration

Versioning and collaboration

How Linkr versions and shares work: ZIP export, git integration, shared workspaces and bottom-up standardisation.

Summary

Everything you produce in Linkr — projects, plugins, scripts, schemas, wiki — is versionable and shareable. Two mechanisms coexist: ZIP export / import, available everywhere with no installation, and git integration, to link projects and workspaces to remote repositories.

Client Available in client-only mode — runs entirely in the browser, no backend. Backend Available with the FastAPI backend.

Why versioning matters

A study, a dashboard, an analysis plugin represent work you want to keep, find again and pass on. Without versioning, every analysis starts from scratch and nothing circulates between teams. So Linkr treats projects and workspaces as objects you archive, share and version — just like code.

This follows directly from a principle seen in the previous chapter: a project is a file tree (entity.json, scripts/, cohorts/, dashboards/…). Versioning a project means versioning those files. See Workspaces and projects.

Two ways to share

ZIP export / import

Download a whole project or workspace as an archive, re-importable into any Linkr instance. Available in both modes, no backend.

Git integration

Link a project or workspace to a remote repository (GitLab, GitHub). Cloning, pushing and pulling need server mode.

ZIP export / import

This is the simplest path, available right away. You download a project — or an entire workspace — as a ZIP archive, then re-import it elsewhere. Re-importing the same entity updates it in place rather than creating a duplicate: every entity carries an identity that follows it from one instance to another. It is the recommended way today to back up your work and pass it to a colleague or another centre.

Workspace export is granular: you choose what to include (projects, wiki, schemas, databases, SQL scripts, ETL, mappings, plugins), and database connection credentials are never part of it: no password leaves in an archive.

Git integration

Any entity — a project, a workspace, but also a SQL script collection, an ETL pipeline or a mapping project — can be linked to a remote git repository. Everything that goes through git — cloning a repository on import, pushing, pulling — needs server mode, which alone ships a git client.

Pulling exists today for concept mappings, schemas, databases and ETL pipelines. For a project, a workspace and the other entities, Linkr pushes but does not pull yet: a banner says so in the Git repository tab.

Where it exists, pulling happens item by item: Linkr shows what is coming from the repository and you decide on each entry — accept or decline. What you decline stays yours and comes back as a change to push. Until every entry has a decision the pull is not finished, and while the repository is ahead of you the push is blocked: you never push over someone else’s work without having seen it.

Data files are excluded by default: you explicitly mark the ones to version, file by file. Large files can go through Git LFS.

What depends on the mode

ZIP export / import works everywhere, including in the browser. Everything that goes through git — cloning, pushing, pulling — and multi-user management need server mode: a browser has no git client. See Deployment modes.

The “git links” pattern

How do you share a workspace containing dozens of projects without duplicating everything into one giant archive? Linkr uses an approach inspired by git submodules.

When a project (or other content) is linked to its own git repository, the workspace export does not carry its full content: it carries only its metadata and a pointer to the repository. The workspace then becomes a manifest of links rather than a large monolithic block. At deployment time, each linked repository is cloned and the full content is reconstituted.

1.The workspace export

Linked items leave only their record and a pointer.

workspace/
├── entity.json
├── git-links.json
├── wiki/ full content
├── projects/sepsis/entity.json pointer
└── mapping-projects/… pointer

2.One repository per linked item

Each team versions at its own pace.

projects/sepsis-icuProject
mapping/labs-hospitalMapping
etl/cdw-to-omopETL pipeline

3.Linkr Portal

Clones every pointed repository and rebuilds the content.

scripts/build.sh

4.A pre-filled instance

A static site, ready to open.

linkr.mon-reseau.org
The journey of a workspace whose items are linked to their own repositories: the export carries only their record and a pointer (git-links.json), each repository lives on its own, and Linkr Portal clones the pointed repositories to publish a pre-filled instance.

The benefit is direct: each team versions its projects in its own repository, at its own pace, then links them into a shared workspace. You combine each team’s autonomy with a pooled overview — without copying the same files in ten places.

Deploying a pre-loaded instance: Linkr Portal

Reassembling these linked repositories at deployment time is handled by a dedicated tool, Linkr Portal: it aggregates the Linkr code and the content repositories, reconstitutes the workspaces and publishes a pre-loaded Linkr instance (for example on GitLab or GitHub Pages), with an optional split between public and private content. Its repository, linkr-portal, describes how to set it up.

Tracing origin and versions

Sharing means knowing where a resource comes from and how it evolved. Plugins carry a built-in traceability for this.

Plugin traceability

Each plugin keeps: a content hash (a technical identifier recomputed on every save, distinct from the human-readable version number), its origin (creator, organisation, repository), an optional lineage (the version it was forked from) and a changelog. You can thus tell precisely which version of a plugin produced a result, and trace the lineage of a plugin picked up and adapted by another centre.

Collaborating

Collaboration rests first on shared workspaces: a common container where several people find the same projects, databases, plugins and wiki. See Workspaces and projects.

In full-stack mode, a workspace has members with roles — Viewer, Editor, Owner, or a custom role — that determine who can view, edit or delete. Projects inherit the workspace role, and each can override it for one person. Above that, an instance administrator manages the accounts. See Members and roles and Authentication and permissions.

Standardisation, from the bottom up

This sharing machinery serves a conviction: standardisation in healthcare works better when it emerges from the field than when it is decreed in advance.

Each team starts by solving its local problems — cleaning its data, aligning its vocabulary, writing its analysis scripts. By then sharing projects, plugins and mappings via git or ZIP, good practices circulate, are picked up and adapted elsewhere. Standardisation is thus built gradually, through adoption, instead of being imposed from above.

No effort is wasted: data cleaning, semantic alignment, analysis scripts — everything produced for one study feeds the next.

This is the collaborative counterpart of cumulative investment: quality and reusability build up project after project, team after team.

Further reading

  • Workspaces and projects — the shared container and the unit of work.
  • Concept mapping — evaluation — multi-reviewer review in practice.
  • Deployment modes — what the full-stack mode unlocks.
PreviousEntities and sharingNextOverview

Product

  • Home
  • Demo

Resources

  • Documentation
  • Resources
  • Tools
  • Blog

Community

  • Framagit source code
  • Github source code

About

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · AGPLv3 (software)