Linkr
Home Resources Tools Documentation Blog Demo
FR
  • What is Linkr?
  • Deployment modes
  • Quick start
  • Local install
  • With Docker
  • Manual install
  • Client-only
  • Your first project
  • Workspaces and projects
  • The data pipeline
  • Entities and sharing
  • Versioning and collaboration
  • Overview
  • Projects
  • Wiki
  • Plugins
  • Members and roles
  • Settings
  • Schemas
  • Databases
  • Derived sub-databases
  • Data quality
  • Data catalog
  • SQL script collections
  • ETL pipelines
  • Overview
  • Mapping projects
  • Global view
  • Target concepts
  • Mapping editor
  • Suggestions
  • Evaluation
  • Export
  • Overview
  • Concepts
  • Cohorts
  • 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
  • Model providers
  • Skills
  • Authoring through MCP
  • Import and export
  • Git versioning
  • Community catalog
  • Publishing content
  • Production install
  • Configuration
  • Authentication and permissions
  • Files on the server
  • Backup and restore
  • Glossary
  • Keyboard shortcuts
  • Release notes
Documentation Administration Authentication and permissions

Authentication and permissions

Accounts, organizations, roles: how people sign in to an instance, and how what each of them may do is decided.

In short

People sign in with a local account — a username and password held by Linkr. Rights are described by resource and action (read, write, delete, execute) and grouped into roles, granted at workspace level then inherited by its projects, which a project may override. The right to run code is kept separate from the rest: it is the most sensitive one.

Client Not available in client-only mode — this feature requires a backend. Backend Available with the FastAPI backend.

All of this assumes server mode

In browser mode there is no account and no authentication: whoever is at the screen has access to everything their browser holds. The Users and Roles pages there show a notice saying a server is required.

Signing in

Authentication is local: Linkr keeps accounts in its own database, and the password is compared against a hash. The first administrator is created by the setup wizard, described in Production install.

Single sign-on does not exist yet

LDAP, OIDC and SAML are planned — the internal structure anticipates them, an account being markable as managed by an external directory — but none is implemented. Do not put Linkr into your single sign-on chain today.

A user cannot change their own password

The button exists in the profile but goes nowhere: the function is not available server-side. In practice, only an administrator resets a password, from the user’s record.

There is also no email sending: no reset by mail, no invitations. Passing the password on is up to you.

Accounts

The Settings › Users page manages accounts: username, password, global role, first and last name, email, affiliation, profession and ORCID.

The ORCID is worth filling in: it follows the user into everything they publish, and it is how another instance recognises the author of an imported entity instead of crediting whoever imported it.

The guardrails

Several operations are refused by the server, and rightly so:

  • You cannot disable yourself, nor delete your own account.
  • The last active administrator can be neither demoted, disabled nor deleted — so the door cannot be locked from the inside.
  • An account with no password cannot be enabled: it could not sign in.
  • Deleting a user does not delete their content. The projects and entities they produced remain, with their authorship recorded.

The directory is open to any signed-in user

To add someone to a workspace, you have to be able to find them. A reduced list — name, affiliation, profession, ORCID — is therefore readable by any signed-in user. It carries neither email nor role, and managing accounts stays with administrators.

Organizations

Settings › Organizations holds the instance’s directory of institutions: hospital, university, research institute, company, consortium. Each carries its name, country, website, a reference identifier — a ROR, an institutional code — and free-form fields.

An organization serves two purposes: attaching a workspace to the institution behind it, and co-signing what you publish. A shared entity therefore stays attributable to the institution it came from, even after several reuses.

Reading open, writing protected

Any signed-in user can consult the directory — it is a shared reference. Creating and editing require the matching permission, genuinely enforced by the server.

Roles

This is the heart of the model. A right is written resource : action, and a role is a list of rights.

The actions

Read

Consult.

Write

Create and modify.

Delete

Remove.

Execute

Run code. Only a few resources carry it.

Not every resource carries all four actions: you do not “delete” a summary page, and only a few accept execution.

Two scopes

  • Workspace roles describe what a member may do in a workspace — and, by inheritance, in its projects.
  • Global roles cover instance administration: accounts, roles, organizations, creating workspaces.

The roles that ship

RoleScopeWhat it allows
ViewerWorkspaceConsult, without modifying or executing anything.
EditorWorkspaceCreate, modify and run code. Manages neither members nor AI models.
OwnerWorkspaceEverything, including deleting and managing members.
AdministratorGlobalEverything, everywhere, without needing to be a member.
UserGlobalNo global rights. Access comes from workspace membership.

These roles cannot be deleted, but their rights remain editable: you may decide that an editor, at your institution, does not run code.

Two deliberate exclusions from the Editor role

An editor sees the member list but does not change it — that is an owner’s responsibility. And they do not declare an AI model, because that choice determines whether data may leave the institution.

How a right is resolved

The order matters, and it answers most questions.

1

The administrator comes first

They bypass the permission system. That is what guarantees a mistake in the role matrix cannot lock everyone out.

2

The role set on the project

It may widen or restrict the inherited role. Set to “none”, the project disappears for that member, even though they belong to the workspace.

3

The role inherited from the workspace

The common case: you are an editor of a workspace, therefore an editor of its projects.

Two global rights cut across everything: all workspaces and all projects grant access without membership — convenient for a support lead, to be used with judgement.

Creating a workspace and editing a workspace are two different rights

The first is global: it allows creating them. The second belongs to one given workspace: it allows editing that one. Their names look alike; their scopes have nothing in common.

Accounts and roles stay administrator-only

The matrix does show rights over users and roles, but the server requires the administrator role for those two screens. Granting those rights to a custom role will make the tabs visible without making them usable. Organizations, by contrast, really can be delegated.

Code execution, kept apart

This is the most sensitive right: it allows arbitrary code to run on the server. It is therefore separable from everything else — a role can read everything and execute nothing.

Linkr distinguishes two things that could be confused:

  • Running in the IDE — R, Python or SQL written by the user. This is the right to watch.
  • Displaying a widget — running the code of an already-defined analysis, at display time. Far more limited, and still distinct from the above.

The boundary is held server-side: rendering a built-in component runs a program belonging to the application from a validated description, never code sent by the browser.

And the master switch

Independently of roles, LINKR_ENABLE_CODE_EXECUTION=false turns execution off across the instance. For a locked-down deployment it is the most useful setting — see Configuration.

What someone without the right sees

Three behaviours, depending on the case — and in all of them the real check is done by the server: the interface only explains.

  • A tab stays visible, its contents replaced by a notice: “Your account doesn’t have permission to access this section.” Showing that a feature exists beats making it vanish.
  • A button stays visible but inactive, with a tooltip explaining why.
  • A project disappears when its role is set to “none” — there, discretion is the intent.

Going further

  • Configuration — the execution switch and other instance settings.
  • Members and roles — granting these roles day to day.
  • Production install — creating the first administrator.
  • Files on the server — the rights that open the server picker.
PreviousConfigurationNextFiles on the server

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) · GPLv3 (software)