UI Profiles & Data Source Filtering¶
GeoLibre can hide data sources, web services, and plugins to simplify the
interface for beginners or to standardize a deployment across a team. Hiding is
non-destructive — nothing is removed, and any item can be re-enabled at any
time. Profile preferences are stored locally in the browser/app and never travel
inside a saved .geolibre.json project.
For users¶
Onboarding¶
On first launch (when no administrator profile is present) GeoLibre asks for an experience level:
- Beginner — only the essential data sources and tools.
- Intermediate — common data sources, services, and plugins.
- Advanced — everything GeoLibre offers.
Choosing Skip — show everything keeps the full interface. The wizard appears only once; you can revisit the choice later in Settings → Interface.
Settings → Interface¶
The interface is controlled by a single four-state selector:
- Beginner / Intermediate / Advanced are developer-curated presets. Selecting one applies its layout immediately. Advanced reveals everything, so it is the full, unrestricted interface.
- Custom activates automatically the moment you hand-edit any item below; it is a status, not a button you click.
Open Settings → Interface to:
- Pick an experience level, which fills the checklists from each item's complexity and takes effect at once.
- Check or uncheck individual data sources, plugins, whole menus (Project, Edit, Add Data, Processing, Controls, Plugins, Help), and the items within the Project, Edit, Processing, Controls, Settings, and Help menus. Editing any item switches the selector to Custom.
The Settings menu itself, and its Language / Layout / Interface entries, are always shown so the profile UI can never be hidden away.
For administrators¶
A deployment can be pre-configured (and optionally locked) with an
admin-profile.json file. When present, it is applied on startup, the onboarding
wizard is skipped, and — if lock is set — the Interface settings are read-only.
File location¶
- Web / embed: serve
admin-profile.jsonfrom the application root (for the Docker/nginx build, the served document root). A missing file is ignored. - Desktop: place
admin-profile.jsonin the app config directory (read_admin_profilereads<app_config_dir>/admin-profile.json). The desktop file takes precedence over a bundled web file.
File format¶
{
"enabled": true,
"level": "intermediate",
"lock": true,
"hiddenDataSources": ["postgres", "video"],
"hiddenPlugins": ["maplibre-gl-geoagent"]
}
| Field | Type | Meaning |
|---|---|---|
enabled |
boolean | Whether filtering is active. Defaults to true for an admin file. |
level |
"beginner" \| "intermediate" \| "advanced" |
Seeds the hidden lists from each item's tier. Optional. |
lock |
boolean | When true, users cannot change the profile from Settings. Removing the file (or serving one without lock) releases the lock on the next launch. |
hiddenDataSources |
string[] | Explicit data-source ids to hide. Overrides the preset when present. |
hiddenPlugins |
string[] | Explicit plugin ids to hide. Overrides the preset when present. |
hiddenMenus |
string[] | Top-level menu ids to hide (project, edit, addData, processing, controls, plugins, help). |
hiddenMenuItems |
string[] | Menu-item ids to hide (e.g. processing.raster, help.diagnostics, controls.minimap). |
Data-source ids are the catalog ids in
apps/geolibre-desktop/src/lib/ui-profile.ts (e.g. vector, xyz, mbtiles,
postgres). Plugin ids are the stable ids defined in
packages/plugins/src/plugins/* (e.g. maplibre-gl-geoagent). Menu and
menu-item ids are the catalog ids in the same ui-profile.ts
(TOP_LEVEL_MENUS, MENU_ITEM_CATALOG).
When a level preset is active, external/bundled drop-in plugins (which load
asynchronously after startup) are folded into the hidden set as they appear, so
a beginner profile keeps hiding advanced plugins even when they load late.