QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
qgsserversettings.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsserversettings.h
3 -------------------
4 begin : December 19, 2016
5 copyright : (C) 2016 by Paul Blottiere
6 email : paul dot blottiere at oslandia dot com
7
8***************************************************************************/
9
10/***************************************************************************
11 * *
12 * This program is free software; you can redistribute it and/or modify *
13 * it under the terms of the GNU General Public License as published by *
14 * the Free Software Foundation; either version 2 of the License, or *
15 * (at your option) any later version. *
16 * *
17 ***************************************************************************/
18
19
20#ifndef QGSSERVERSETTINGS_H
21#define QGSSERVERSETTINGS_H
22
23#include <QObject>
24#include <QMetaEnum>
25
26#include "qgsmessagelog.h"
27#include "qgis_server.h"
28#include "qgis_sip.h"
29
35class SERVER_EXPORT QgsServerSettingsEnv : public QObject
36{
37 Q_OBJECT
38
39 public:
41 enum Source
42 {
45 INI_FILE
46 };
47 Q_ENUM( Source )
48
49
50 enum EnvVar
51 {
85 };
86 Q_ENUM( EnvVar )
87};
88
94class SERVER_EXPORT QgsServerSettings
95{
96 public:
98 {
101 QString descr;
102 QString iniKey;
103 QVariant::Type type;
104 QVariant defaultVal;
105 QVariant val;
106 };
107
112
116 void load();
117
122 bool load( const QString &envVarName );
123
127 void logSummary() const;
128
133 QString iniFile() const;
134
139 bool parallelRendering() const;
140
145 int maxThreads() const;
146
151 Qgis::MessageLevel logLevel() const;
152
160 bool logProfile() const;
161
166 QString projectFile() const;
167
172 QString logFile() const;
173
179 bool logStderr() const;
180
185 qint64 cacheSize() const;
186
191 QString cacheDirectory() const;
192
198 QString overrideSystemLocale() const;
199
205 bool showGroupSeparator() const;
206
212 int wmsMaxHeight() const;
213
219 int wmsMaxWidth() const;
220
227 QString landingPageProjectsDirectories() const;
228
235 QString landingPageProjectsPgConnections() const;
236
241 QString landingPageBaseUrlPrefix() const;
242
251 QString apiResourcesDirectory() const;
252
261 qlonglong apiWfs3MaxLimit() const;
262
272 bool ignoreBadLayers() const;
273
282 bool trustLayerMetadata() const;
283
292 bool forceReadOnlyLayers() const;
293
303 bool getPrintDisabled() const;
304
309 QString serviceUrl( const QString &service ) const;
310
315 int projectCacheCheckInterval() const;
316
330 QString projectCacheStrategy() const;
331
340 QStringList allowedExtraSqlTokens() const;
341
350 QString applicationName() const;
351
356 static QString name( QgsServerSettingsEnv::EnvVar env );
357
365 int capabilitiesCacheSize() const;
366
367 private:
368 void initSettings();
369 QVariant value( QgsServerSettingsEnv::EnvVar envVar, bool actual = false ) const;
370 QMap<QgsServerSettingsEnv::EnvVar, QString> getEnv() const;
371 void loadQSettings( const QString &envOptPath ) const;
372 void prioritize( const QMap<QgsServerSettingsEnv::EnvVar, QString> &env );
373
374 QMap< QgsServerSettingsEnv::EnvVar, Setting > mSettings;
375};
376
377#endif
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition: qgis.h:99
Provides some enum describing the environment currently supported for configuration.
Source
Source of the parameter used in the configuration.
EnvVar
Environment variables to configure the server.
@ QGIS_SERVER_WCS_SERVICE_URL
To set the WCS service URL if it's not present in the project. (since QGIS 3.20).
@ QGIS_SERVER_WMTS_SERVICE_URL
To set the WMTS service URL if it's not present in the project. (since QGIS 3.20).
@ QGIS_SERVER_IGNORE_BAD_LAYERS
Do not consider the whole project unavailable if it contains bad layers.
@ QGIS_SERVER_ALLOWED_EXTRA_SQL_TOKENS
Set the project cache strategy. Possible values are 'filesystem', 'periodic' or 'off' (since QGIS 3....
@ QGIS_SERVER_CAPABILITIES_CACHE_SIZE
Define the QGIS Server application name (since QGIS 3.30).
@ QGIS_SERVER_TRUST_LAYER_METADATA
Trust layer metadata. Improves project read time. (since QGIS 3.16).
@ QGIS_SERVER_WFS_SERVICE_URL
To set the WFS service URL if it's not present in the project. (since QGIS 3.20).
@ QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE
Override system locale (since QGIS 3.8)
@ QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS
PostgreSQL connection strings used by the landing page service to find projects (since QGIS 3....
@ QGIS_SERVER_API_WFS3_MAX_LIMIT
Maximum value for "limit" in a features request, defaults to 10000 (since QGIS 3.10).
@ QGIS_SERVER_API_RESOURCES_DIRECTORY
Base directory where HTML templates and static assets (e.g. images, js and css files) are searched fo...
@ QGIS_SERVER_WMS_MAX_WIDTH
Maximum width for a WMS request. The most conservative between this and the project one is used (sinc...
@ QGIS_SERVER_FORCE_READONLY_LAYERS
Force to open layers in read-only mode. (since QGIS 3.28).
@ QGIS_SERVER_PROJECT_CACHE_STRATEGY
Set the interval in milliseconds for cache invalidation strategy 'interval', default to 0 which selec...
@ QGIS_SERVER_APPLICATION_NAME
Adds these tokens to the list of allowed tokens that the services accept when filtering features (sin...
@ QGIS_SERVER_WMS_MAX_HEIGHT
Maximum height for a WMS request. The most conservative between this and the project one is used (sin...
@ QGIS_SERVER_WMS_SERVICE_URL
To set the WMS service URL if it's not present in the project. (since QGIS 3.20).
@ QGIS_SERVER_DISABLE_GETPRINT
Disabled WMS GetPrint request and don't load layouts. Improves project read time. (since QGIS 3....
@ QGIS_SERVER_PROJECT_CACHE_CHECK_INTERVAL
Prefix of the path component of the landing page base URL, default is empty (since QGIS 3....
@ QGIS_SERVER_SHOW_GROUP_SEPARATOR
Show group (thousands) separator when formatting numeric values, defaults to false (since QGIS 3....
@ QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES
Directories used by the landing page service to find .qgs and .qgz projects (since QGIS 3....
@ QGIS_SERVER_LOG_PROFILE
When QGIS_SERVER_LOG_LEVEL is 0 this flag adds to the logs detailed information about the time taken ...
@ QGIS_SERVER_SERVICE_URL
To set the service URL if it's not present in the project. (since QGIS 3.20).
Provides a way to retrieve settings by prioritizing according to environment variables,...
SERVER_EXPORT QString serviceUrl(const QString &service, const QgsServerRequest &request, const QgsServerSettings &settings)
Returns the service url defined in the environment variable or with HTTP header.
SERVER_EXPORT int wmsMaxWidth(const QgsProject &project)
Returns the maximum width for WMS images defined in a QGIS project.
SERVER_EXPORT int wmsMaxHeight(const QgsProject &project)
Returns the maximum height for WMS images defined in a QGIS project.
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsServerSettingsEnv::EnvVar envVar
QgsServerSettingsEnv::Source src