QWC Permalink Service¶
Stores and resolves compact permalinks for the QGIS Web Client.
Permalinks are stored in a database table.
Configuration¶
The static config files are stored as JSON files in $CONFIG_PATH with subdirectories for each tenant,
e.g. $CONFIG_PATH/default/*.json. The default tenant name is default.
JSON config¶
- JSON schema
- File location:
$CONFIG_PATH/<tenant>/permalinkConfig.json
Example:
{
"$schema": "https://raw.githubusercontent.com/qwc-services/qwc-permalink-service/master/schemas/qwc-permalink-service.json",
"service": "permalink",
"config": {
"db_url": "postgresql:///?service=qwc_configdb",
"permalinks_table": "qwc_config.permalinks",
"user_bookmark_table": "qwc_config.user_bookmarks",
"bookmarks_sort_order": "date DESC, description"
}
}
See the schema definition for the full set of supported config variables.
Environment variables¶
Config options in the config file can be overridden by equivalent uppercase environment variables.
Tables¶
If you don't use the qwc-base-db, you have to create the tables first:
CREATE TABLE permalinks
(
key character(10) NOT NULL PRIMARY KEY,
data text,
date date,
expires date
);
CREATE TABLE user_bookmarks (
username character varying NOT NULL PRIMARY KEY,
data text,
key varchar(10),
date date,
description text
);
CREATE TABLE user_visibility_presets (
username character varying NOT NULL PRIMARY KEY,
data text,
key varchar(10),
date date,
description text,
)
Usage¶
Base URL:
http://localhost:5018/
API documentation:
http://localhost:5018/api/
Docker usage¶
See sample docker-compose.yml of qwc-docker.
Development¶
Set the CONFIG_PATH environment variable to the path containing the service config and permission files when starting this service (default: config).
export CONFIG_PATH=../qwc-docker/volumes/config
Configure environment:
echo FLASK_ENV=development >.flaskenv
Install dependencies and run service:
uv run src/server.py