c2cgeoportal-geoportal 2.3.5.79__py3-none-any.whl → 2.9rc1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- c2cgeoportal_geoportal/__init__.py +960 -0
- c2cgeoportal_geoportal/lib/__init__.py +256 -0
- c2cgeoportal_geoportal/lib/authentication.py +250 -0
- c2cgeoportal_geoportal/lib/bashcolor.py +46 -0
- c2cgeoportal_geoportal/lib/cacheversion.py +75 -0
- c2cgeoportal_geoportal/lib/caching.py +176 -0
- c2cgeoportal_geoportal/lib/check_collector.py +80 -0
- c2cgeoportal_geoportal/lib/checker.py +295 -0
- c2cgeoportal_geoportal/lib/common_headers.py +170 -0
- c2cgeoportal_geoportal/lib/dbreflection.py +266 -0
- c2cgeoportal_geoportal/lib/filter_capabilities.py +360 -0
- c2cgeoportal_geoportal/lib/fulltextsearch.py +50 -0
- c2cgeoportal_geoportal/lib/functionality.py +166 -0
- c2cgeoportal_geoportal/lib/headers.py +62 -0
- c2cgeoportal_geoportal/lib/i18n.py +38 -0
- c2cgeoportal_geoportal/lib/layers.py +132 -0
- c2cgeoportal_geoportal/lib/lingva_extractor.py +937 -0
- c2cgeoportal_geoportal/lib/loader.py +57 -0
- c2cgeoportal_geoportal/lib/metrics.py +117 -0
- c2cgeoportal_geoportal/lib/oauth2.py +1186 -0
- c2cgeoportal_geoportal/lib/oidc.py +302 -0
- c2cgeoportal_geoportal/lib/wmstparsing.py +353 -0
- c2cgeoportal_geoportal/lib/xsd.py +166 -0
- c2cgeoportal_geoportal/py.typed +0 -0
- c2cgeoportal_geoportal/resources.py +49 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/ci/config.yaml +26 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.dockerignore +6 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.eslintrc.yaml +19 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/.prospector.yaml +30 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Dockerfile +75 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/Makefile +6 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.ini +58 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/alembic.yaml +19 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/development.ini +121 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/gunicorn.conf.py +139 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/language_mapping +3 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-client.cfg +5 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/lingva-server.cfg +6 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/production.ini +38 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/requirements.txt +2 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/setup.py +25 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.api.js +41 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.apps.js +64 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.commons.js +11 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/webpack.config.js +22 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/__init__.py +42 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/authentication.py +10 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/dev.py +14 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/models.py +8 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/multi_organization.py +7 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/resources.py +11 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/api/index.js +12 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static-ngeo/js/{{cookiecutter.package}}module.js +25 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/subscribers.py +39 -0
- c2cgeoportal_geoportal/scaffolds/advance_create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/views/__init__.py +0 -0
- c2cgeoportal_geoportal/scaffolds/advance_update/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/advance_update/{{cookiecutter.project}}/geoportal/CONST_Makefile +121 -0
- c2cgeoportal_geoportal/scaffolds/create/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.dockerignore +14 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.editorconfig +17 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/main.yaml +73 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/rebuild.yaml +50 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.github/workflows/update_l10n.yaml +66 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.gitignore +16 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.pre-commit-config.yaml +35 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierignore +1 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/.prettierrc.yaml +2 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Dockerfile +75 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/Makefile +70 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/README.rst +29 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/build +179 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/config.yaml +22 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/docker-compose-check +25 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/ci/requirements.txt +2 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-db.yaml +24 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-lib.yaml +511 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose-qgis.yaml +21 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.override.sample.yaml +59 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/docker-compose.yaml +121 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.default +102 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/env.project +69 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/vars.yaml +430 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/locale/en/LC_MESSAGES/{{cookiecutter.package}}_geoportal-client.po +6 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/desktop.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/iframe_api.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/css/mobile.css +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_left.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/banner_right.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/blank.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-blue.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-gold.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker-green.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/images/markers/marker.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/geoportal/{{cookiecutter.package}}_geoportal/static/robot.txt.tmpl +3 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/Readme.txt +69 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/data/TM_EUROPE_BORDERS-0.3.sql +70 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/demo.map.tmpl +224 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arial.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbd.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Arialbi.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Ariali.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Bold.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-BoldItalic.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Italic.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/NotoSans-Regular.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdana.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanab.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanai.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts/Verdanaz.ttf +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/fonts.conf +12 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.conf +15 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/mapserver.map.tmpl +87 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/mapserver/tinyows.xml.tmpl +36 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Landscape.jrxml +207 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A3_Portrait.jrxml +185 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Landscape.jrxml +200 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/A4_Portrait.jrxml +170 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/config.yaml.tmpl +175 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/legend.jrxml +109 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation.properties +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/localisation_fr.properties +4 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/logo.png +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/north.svg +93 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/print/print-apps/{{cookiecutter.package}}/results.jrxml +25 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/project.yaml +18 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/pyproject.toml +7 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/qgisserver/pg_service.conf.tmpl +15 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/run_alembic.sh +11 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-backup +126 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +132 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/setup.cfg +7 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/spell-ignore-words.txt +5 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/__init__.py +0 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tests/test_app.py +43 -0
- c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/tilegeneration/config.yaml.tmpl +195 -0
- c2cgeoportal_geoportal/scaffolds/update/cookiecutter.json +18 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/.upgrade.yaml +67 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_CHANGELOG.txt +295 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/CONST_create_template/tests/test_testapp.py +48 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_config-schema.yaml +922 -0
- c2cgeoportal_geoportal/scaffolds/update/{{cookiecutter.project}}/geoportal/CONST_vars.yaml +1503 -0
- c2cgeoportal_geoportal/scripts/__init__.py +64 -0
- c2cgeoportal_geoportal/scripts/c2cupgrade.py +879 -0
- c2cgeoportal_geoportal/scripts/create_demo_theme.py +80 -0
- c2cgeoportal_geoportal/scripts/manage_users.py +140 -0
- c2cgeoportal_geoportal/scripts/pcreate.py +314 -0
- c2cgeoportal_geoportal/scripts/theme2fts.py +347 -0
- c2cgeoportal_geoportal/scripts/urllogin.py +81 -0
- c2cgeoportal_geoportal/templates/login.html +90 -0
- c2cgeoportal_geoportal/templates/notlogin.html +62 -0
- c2cgeoportal_geoportal/templates/testi18n.html +12 -0
- c2cgeoportal_geoportal/views/__init__.py +59 -0
- c2cgeoportal_geoportal/views/dev.py +57 -0
- c2cgeoportal_geoportal/views/dynamic.py +208 -0
- c2cgeoportal_geoportal/views/entry.py +174 -0
- c2cgeoportal_geoportal/views/fulltextsearch.py +189 -0
- c2cgeoportal_geoportal/views/geometry_processing.py +75 -0
- c2cgeoportal_geoportal/views/i18n.py +129 -0
- c2cgeoportal_geoportal/views/layers.py +713 -0
- c2cgeoportal_geoportal/views/login.py +679 -0
- c2cgeoportal_geoportal/views/mapserverproxy.py +191 -0
- c2cgeoportal_geoportal/views/memory.py +90 -0
- c2cgeoportal_geoportal/views/ogcproxy.py +120 -0
- c2cgeoportal_geoportal/views/pdfreport.py +245 -0
- c2cgeoportal_geoportal/views/printproxy.py +143 -0
- c2cgeoportal_geoportal/views/profile.py +127 -0
- c2cgeoportal_geoportal/views/proxy.py +259 -0
- c2cgeoportal_geoportal/views/raster.py +193 -0
- c2cgeoportal_geoportal/views/resourceproxy.py +73 -0
- c2cgeoportal_geoportal/views/shortener.py +152 -0
- c2cgeoportal_geoportal/views/theme.py +1322 -0
- c2cgeoportal_geoportal/views/tinyowsproxy.py +189 -0
- c2cgeoportal_geoportal/views/vector_tiles.py +83 -0
- {c2cgeoportal_geoportal-2.3.5.79.dist-info → c2cgeoportal_geoportal-2.9rc1.dist-info}/METADATA +21 -24
- c2cgeoportal_geoportal-2.9rc1.dist-info/RECORD +192 -0
- {c2cgeoportal_geoportal-2.3.5.79.dist-info → c2cgeoportal_geoportal-2.9rc1.dist-info}/WHEEL +1 -1
- c2cgeoportal_geoportal-2.9rc1.dist-info/entry_points.txt +28 -0
- c2cgeoportal_geoportal-2.9rc1.dist-info/top_level.txt +2 -0
- tests/__init__.py +100 -0
- tests/test_cachebuster.py +71 -0
- tests/test_caching.py +275 -0
- tests/test_checker.py +85 -0
- tests/test_decimaljson.py +47 -0
- tests/test_headerstween.py +64 -0
- tests/test_i18n.py +31 -0
- tests/test_init.py +193 -0
- tests/test_locale_negociator.py +69 -0
- tests/test_mapserverproxy_route_predicate.py +64 -0
- tests/test_raster.py +267 -0
- tests/test_wmstparsing.py +238 -0
- tests/xmlstr.py +103 -0
- c2cgeoportal_geoportal-2.3.5.79.dist-info/DESCRIPTION.rst +0 -8
- c2cgeoportal_geoportal-2.3.5.79.dist-info/RECORD +0 -7
- c2cgeoportal_geoportal-2.3.5.79.dist-info/entry_points.txt +0 -22
- c2cgeoportal_geoportal-2.3.5.79.dist-info/metadata.json +0 -1
- c2cgeoportal_geoportal-2.3.5.79.dist-info/top_level.txt +0 -1
@@ -0,0 +1,1503 @@
|
|
1
|
+
---
|
2
|
+
vars:
|
3
|
+
# The package name
|
4
|
+
package: '{{cookiecutter.package}}'
|
5
|
+
main_ogc_server: source for image/png
|
6
|
+
|
7
|
+
srid: EPSG:-1
|
8
|
+
|
9
|
+
# Sqlalchemy schema
|
10
|
+
schema: '{PGSCHEMA}'
|
11
|
+
# Sqlalchemy static schema
|
12
|
+
schema_static: '{PGSCHEMA_STATIC}'
|
13
|
+
|
14
|
+
dbsessions: {}
|
15
|
+
|
16
|
+
enable_admin_interface: True
|
17
|
+
|
18
|
+
# Database information
|
19
|
+
sqlalchemy:
|
20
|
+
url: postgresql://{PGUSER}:{PGPASSWORD}@{PGHOST}:{PGPORT}/{PGDATABASE}?sslmode={PGSSLMODE}
|
21
|
+
pool_recycle: '{SQLALCHEMY_POOL_RECYCLE}'
|
22
|
+
pool_size: '{SQLALCHEMY_POOL_SIZE}'
|
23
|
+
max_overflow: '{SQLALCHEMY_MAX_OVERFLOW}'
|
24
|
+
executemany_mode: values_plus_batch
|
25
|
+
sqlalchemy_slave:
|
26
|
+
url: postgresql://{PGUSER}:{PGPASSWORD}@{PGHOST_SLAVE}:{PGPORT_SLAVE}/{PGDATABASE}?sslmode={PGSSLMODE}
|
27
|
+
pool_recycle: '{SQLALCHEMY_SLAVE_POOL_RECYCLE}'
|
28
|
+
pool_size: '{SQLALCHEMY_SLAVE_POOL_SIZE}'
|
29
|
+
max_overflow: '{SQLALCHEMY_SLAVE_MAX_OVERFLOW}'
|
30
|
+
executemany_mode: values_plus_batch
|
31
|
+
|
32
|
+
# Session backend
|
33
|
+
session:
|
34
|
+
type: 'ext:redis'
|
35
|
+
url: 'redis://{REDIS_HOST}:{REDIS_PORT}/{REDIS_DB}'
|
36
|
+
|
37
|
+
# 10 days of default cache
|
38
|
+
default_max_age: 864000
|
39
|
+
|
40
|
+
authentication:
|
41
|
+
two_factor: false
|
42
|
+
two_factor_issuer_name: '{{cookiecutter.project}}'
|
43
|
+
oauth2_token_expire_minutes: 60
|
44
|
+
oauth2_authorization_expire_minutes: 10
|
45
|
+
max_consecutive_failures: 10
|
46
|
+
openid_connect:
|
47
|
+
enabled: '{OPENID_CONNECT_ENABLED}'
|
48
|
+
|
49
|
+
intranet:
|
50
|
+
networks: []
|
51
|
+
|
52
|
+
i18next:
|
53
|
+
ns:
|
54
|
+
- geomapfish
|
55
|
+
defaultNS: geomapfish
|
56
|
+
debug: false
|
57
|
+
detection:
|
58
|
+
order:
|
59
|
+
- querystring
|
60
|
+
- cookie
|
61
|
+
- localStorage
|
62
|
+
- sessionStorage
|
63
|
+
- navigator
|
64
|
+
- htmlTag
|
65
|
+
lookupQuerystring: lang
|
66
|
+
lookupCookie: i18next
|
67
|
+
lookupLocalStorage: i18nextLng
|
68
|
+
lookupSessionStorage: i18nextLng
|
69
|
+
caches:
|
70
|
+
- localStorage
|
71
|
+
excludeCacheFor:
|
72
|
+
- cimode
|
73
|
+
fallbackLng: false
|
74
|
+
interpolation:
|
75
|
+
escapeValue: false
|
76
|
+
backend: {}
|
77
|
+
|
78
|
+
static_files:
|
79
|
+
favicon.ico: /etc/geomapfish/static/images/favicon.ico
|
80
|
+
robot.txt: /etc/geomapfish/static/robot.txt
|
81
|
+
api.js: /etc/static-ngeo/api.js
|
82
|
+
api.js.map: /etc/static-ngeo/api.js.map
|
83
|
+
api.css: /etc/static-ngeo/api.css
|
84
|
+
apihelp.html: /etc/geomapfish/static/apihelp/index.html
|
85
|
+
|
86
|
+
interfaces_config:
|
87
|
+
default:
|
88
|
+
constants:
|
89
|
+
gmfProjectionsOptions: &projections
|
90
|
+
'EPSG:21781':
|
91
|
+
definition:
|
92
|
+
- +proj=somerc
|
93
|
+
- +lat_0=46.95240555555556
|
94
|
+
- +lon_0=7.439583333333333
|
95
|
+
- +k_0=1
|
96
|
+
- +x_0=600000
|
97
|
+
- +y_0=200000
|
98
|
+
- +ellps=bessel
|
99
|
+
- +towgs84=674.374,15.056,405.346,0,0,0,0
|
100
|
+
- +units=m
|
101
|
+
- +no_defs
|
102
|
+
extent: [420000, 30000, 900000, 350000]
|
103
|
+
'EPSG:2056':
|
104
|
+
definition:
|
105
|
+
- +proj=somerc
|
106
|
+
- +lat_0=46.95240555555556
|
107
|
+
- +lon_0=7.439583333333333
|
108
|
+
- +k_0=1
|
109
|
+
- +x_0=2600000
|
110
|
+
- +y_0=1200000
|
111
|
+
- +ellps=bessel
|
112
|
+
- +towgs84=674.374,15.056,405.346,0,0,0,0
|
113
|
+
- +units=m
|
114
|
+
- +no_defs
|
115
|
+
extent: [2420000, 1030000, 2900000, 1350000]
|
116
|
+
sentryOptions:
|
117
|
+
dsn: '{SENTRY_URL}'
|
118
|
+
release: '{SENTRY_CLIENT_RELEASE}'
|
119
|
+
environment: '{SENTRY_CLIENT_ENVIRONMENT}'
|
120
|
+
attachStacktrace: True
|
121
|
+
tags:
|
122
|
+
service: js
|
123
|
+
gmfAuthenticationConfig:
|
124
|
+
allowPasswordChange: true
|
125
|
+
allowPasswordReset: true
|
126
|
+
ngeoWfsPermalinkOptions:
|
127
|
+
wfsTypes: []
|
128
|
+
defaultFeatureNS: http://mapserver.gis.umn.edu/mapserver
|
129
|
+
defaultFeaturePrefix: feature
|
130
|
+
crosshairStyle:
|
131
|
+
- regularShape:
|
132
|
+
stroke:
|
133
|
+
color: white
|
134
|
+
width: 5
|
135
|
+
points: 4
|
136
|
+
radius: 10
|
137
|
+
radius2: 0
|
138
|
+
angle: 0
|
139
|
+
- regularShape:
|
140
|
+
stroke:
|
141
|
+
color: red
|
142
|
+
width: 2
|
143
|
+
points: 4
|
144
|
+
radius: 10
|
145
|
+
radius2: 0
|
146
|
+
angle: 0
|
147
|
+
ngeoScaleSelectorOptions:
|
148
|
+
values: [1000000, 500000, 200000, 100000, 50000, 20000, 10000, 5000, 2000, 1000, 500, 200]
|
149
|
+
dropup: True
|
150
|
+
ngeoStringToHtmlReplacements:
|
151
|
+
# Hyperlink
|
152
|
+
- expression: ^(https?:\/\/.+)$
|
153
|
+
tags: gm
|
154
|
+
template: <a target="_blank" href="$1">$1</a>
|
155
|
+
# Mailto
|
156
|
+
- expression: ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\\\.[A-Z]{2,}$
|
157
|
+
tags: gim
|
158
|
+
template: <a href="mailto:$1">$1</a>
|
159
|
+
ngeoTilesPreloadingLimit:
|
160
|
+
ngeoUsedKeyRegexp:
|
161
|
+
- .*
|
162
|
+
ngeoQueryOptions:
|
163
|
+
limit: 20
|
164
|
+
ngeoMeasurePrecision: 3
|
165
|
+
ngeoMeasureDecimals: 0
|
166
|
+
ngeoMeasureSpherical: False
|
167
|
+
gmfSnappingConfig: {}
|
168
|
+
gmfSnappingOptions:
|
169
|
+
maxFeatures: 50
|
170
|
+
ngeoSnappingTolerance: 20
|
171
|
+
gmfObjectEditingToolsOptions: {}
|
172
|
+
gmfTreeManagerModeFlush: True
|
173
|
+
gmfThemesOptions: {}
|
174
|
+
ngeoPointfilter:
|
175
|
+
gmfAuthenticationNoReloadRole:
|
176
|
+
ngeoNominatimSearchDefaultParams: {}
|
177
|
+
ngeoNominatimUrl: https://nominatim.openstreetmap.org/
|
178
|
+
ngeoCsvEncoding: utf-8
|
179
|
+
ngeoCsvExtension: .csv
|
180
|
+
ngeoCsvIncludeHeader: True
|
181
|
+
ngeoCsvQuote: '"'
|
182
|
+
ngeoCsvSeparator: ','
|
183
|
+
gmfCsvFilename: query-results.csv
|
184
|
+
gmfDisplayQueryWindowOptions:
|
185
|
+
featuresStyle: &featureStyle
|
186
|
+
fill:
|
187
|
+
color: [255, 170, 0, 0.6]
|
188
|
+
stroke:
|
189
|
+
color: [255, 170, 0, 1]
|
190
|
+
width: 2
|
191
|
+
zIndex: 10
|
192
|
+
circle:
|
193
|
+
fill:
|
194
|
+
color: [255, 170, 0, 0.6]
|
195
|
+
stroke:
|
196
|
+
color: [255, 170, 0, 1]
|
197
|
+
width: 2
|
198
|
+
radius: 5
|
199
|
+
selectedFeatureStyle: &selectedFeatureStyle
|
200
|
+
fill:
|
201
|
+
color: [255, 0, 0, 0.6]
|
202
|
+
stroke:
|
203
|
+
color: [255, 0, 0, 1]
|
204
|
+
width: 2
|
205
|
+
zIndex: 10
|
206
|
+
circle:
|
207
|
+
fill:
|
208
|
+
color: [255, 0, 0, 0.6]
|
209
|
+
stroke:
|
210
|
+
color: [255, 0, 0, 1]
|
211
|
+
width: 2
|
212
|
+
radius: 5
|
213
|
+
gmfLayerTreeOptions:
|
214
|
+
openLinksInNewWindow: False
|
215
|
+
isExpanded: False
|
216
|
+
layerIcon:
|
217
|
+
width: 20
|
218
|
+
height: 20
|
219
|
+
gmfDisclaimerOptions: {}
|
220
|
+
gmfBackgroundLayerSelectorOptions: {}
|
221
|
+
defaultTheme: Demo
|
222
|
+
defaultLang: en
|
223
|
+
gmfOptions: &gmfOptions
|
224
|
+
map: {}
|
225
|
+
view:
|
226
|
+
srid: '{srid}'
|
227
|
+
center: [2600000, 1200000]
|
228
|
+
zoom: 3
|
229
|
+
resolutions: [250, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.25, 0.1, 0.05]
|
230
|
+
extent: [2420000, 1030000, 2900000, 1350000]
|
231
|
+
constrainRotation: false
|
232
|
+
constrainResolution: true
|
233
|
+
gmfSearchOptions:
|
234
|
+
styles:
|
235
|
+
default:
|
236
|
+
fill:
|
237
|
+
color: [65, 134, 240, 0.5]
|
238
|
+
stroke:
|
239
|
+
color: [65, 134, 240, 1]
|
240
|
+
width: 2
|
241
|
+
circle:
|
242
|
+
fill:
|
243
|
+
color: [65, 134, 240, 0.5]
|
244
|
+
stroke:
|
245
|
+
color: [65, 134, 240, 1]
|
246
|
+
width: 2
|
247
|
+
radius: 5
|
248
|
+
gmfCoordinatesLayerName:
|
249
|
+
regularShape:
|
250
|
+
stroke:
|
251
|
+
color: [0, 0, 0, 0.7]
|
252
|
+
width: 2
|
253
|
+
points: 4
|
254
|
+
radius: 8
|
255
|
+
radius2: 0
|
256
|
+
angle: 0
|
257
|
+
datasources:
|
258
|
+
- labelKey: label
|
259
|
+
groupActions:
|
260
|
+
- action: add_theme
|
261
|
+
title: Add a theme
|
262
|
+
- action: add_group
|
263
|
+
title: Add a sub theme
|
264
|
+
- action: add_layer
|
265
|
+
title: Add a layer
|
266
|
+
projection: EPSG:{srid}
|
267
|
+
gmfPermalinkOptions:
|
268
|
+
crosshairStyle:
|
269
|
+
- regularShape:
|
270
|
+
stroke:
|
271
|
+
color: white
|
272
|
+
width: 5
|
273
|
+
points: 4
|
274
|
+
radius: 10
|
275
|
+
radius2: 0
|
276
|
+
angle: 0
|
277
|
+
- regularShape:
|
278
|
+
stroke:
|
279
|
+
color: red
|
280
|
+
width: 2
|
281
|
+
points: 4
|
282
|
+
radius: 10
|
283
|
+
radius2: 0
|
284
|
+
angle: 0
|
285
|
+
crosshairEnabledByDefault: False
|
286
|
+
useLocalStorage: False
|
287
|
+
pointRecenterZoom:
|
288
|
+
gmfElevationOptions:
|
289
|
+
layers: []
|
290
|
+
layersConfig: {}
|
291
|
+
gmfVectorTilesOptions:
|
292
|
+
projection: EPSG:{srid}
|
293
|
+
tileGrid: {}
|
294
|
+
ngeoGeolocationOptions:
|
295
|
+
positionFeatureStyle:
|
296
|
+
circle:
|
297
|
+
radius: 6
|
298
|
+
fill:
|
299
|
+
color: rgba(230, 100, 100, 1)
|
300
|
+
stroke:
|
301
|
+
color: rgba(230, 40, 40, 1)
|
302
|
+
width: 2
|
303
|
+
accuracyFeatureStyle:
|
304
|
+
fill:
|
305
|
+
color: rgba(100, 100, 230, 0.3)
|
306
|
+
stroke:
|
307
|
+
color: rgba(40, 40, 230, 1)
|
308
|
+
width: 2
|
309
|
+
zoom:
|
310
|
+
autoRotate: False
|
311
|
+
gmfWMSSourceOptions:
|
312
|
+
# The default value is 1.5 but it add a slight blur on the layer,
|
313
|
+
# 1 is also possible but the application will do a getMap on all the pan.
|
314
|
+
ratio: 2
|
315
|
+
|
316
|
+
dynamic_constants:
|
317
|
+
interface: interface
|
318
|
+
cacheVersion: cache_version
|
319
|
+
langUrls: lang_urls
|
320
|
+
gmfI18nextConfiguration: i18next_configuration
|
321
|
+
gmfTwoFactorAuth: two_factor
|
322
|
+
gmfSearchGroups: fulltextsearch_groups
|
323
|
+
static:
|
324
|
+
angularLocaleScript:
|
325
|
+
name: '/etc/static-ngeo/'
|
326
|
+
append: angular-locale_{{'{{'}}locale{{'}}'}}.js
|
327
|
+
routes:
|
328
|
+
currentInterfaceUrl:
|
329
|
+
currentInterface: True
|
330
|
+
authenticationBaseUrl:
|
331
|
+
name: base
|
332
|
+
gmfOidcLoginUrl:
|
333
|
+
name: oidc_login
|
334
|
+
gmfLayersUrl:
|
335
|
+
name: layers_root
|
336
|
+
gmfRasterUrl:
|
337
|
+
name: raster
|
338
|
+
gmfShortenerCreateUrl:
|
339
|
+
name: shortener_create
|
340
|
+
ngeoPermalinkOgcserverUrl:
|
341
|
+
name: mapserverproxy
|
342
|
+
params:
|
343
|
+
ogcserver: '{main_ogc_server}'
|
344
|
+
fulltextsearchUrl:
|
345
|
+
name: fulltextsearch
|
346
|
+
params:
|
347
|
+
limit: 30
|
348
|
+
partitionlimit: 5
|
349
|
+
dynamic_params:
|
350
|
+
interface: interface
|
351
|
+
gmfTreeUrl:
|
352
|
+
name: themes
|
353
|
+
params:
|
354
|
+
background: background
|
355
|
+
dynamic_params:
|
356
|
+
interface: interface
|
357
|
+
gmfVectorTilesUrl:
|
358
|
+
name: vector_tiles_root
|
359
|
+
desktop:
|
360
|
+
extends: default
|
361
|
+
redirect_interface: mobile
|
362
|
+
do_redirect: True
|
363
|
+
constants:
|
364
|
+
gmfOptions: *gmfOptions
|
365
|
+
ngeoProfileOptions: {}
|
366
|
+
ngeoStreetviewOptions:
|
367
|
+
viewer: 'mapillary'
|
368
|
+
gmfPrintOptions:
|
369
|
+
legend:
|
370
|
+
# See:
|
371
|
+
# https://www.mapserver.org/development/rfc/ms-rfc-101.html
|
372
|
+
# https://docs.qgis.org/testing/en/docs/user_manual/working_with_ogc/server/services.html#getlegendgraphics
|
373
|
+
useBbox: true
|
374
|
+
label:
|
375
|
+
qgis: false
|
376
|
+
params:
|
377
|
+
# See:
|
378
|
+
# https://docs.qgis.org/testing/en/docs/user_manual/working_with_ogc/server/services.html#getlegendgraphics
|
379
|
+
qgis:
|
380
|
+
LAYERFONTFAMILY: DejaVu Sans
|
381
|
+
ITEMFONTFAMILY: DejaVu Sans
|
382
|
+
LAYERFONTSIZE: '10'
|
383
|
+
ITEMFONTSIZE: '8'
|
384
|
+
hiddenAttributes:
|
385
|
+
- debug
|
386
|
+
- timezone
|
387
|
+
- username
|
388
|
+
gmfDisplayQueryGridOptions:
|
389
|
+
featuresStyle: *featureStyle
|
390
|
+
selectedFeatureStyle: *selectedFeatureStyle
|
391
|
+
gmfEditFeatureOptions:
|
392
|
+
tolerance: 10
|
393
|
+
closeAfterSave: false
|
394
|
+
highlightStyle:
|
395
|
+
circle:
|
396
|
+
radius: 7
|
397
|
+
fill:
|
398
|
+
color: [255, 139, 139, 0.6]
|
399
|
+
stroke:
|
400
|
+
color: [255, 0, 0, 1]
|
401
|
+
width: 3
|
402
|
+
fill:
|
403
|
+
color: [255, 139, 139, 0.6]
|
404
|
+
stroke:
|
405
|
+
color: [255, 0, 0, 1]
|
406
|
+
width: 3
|
407
|
+
gmfProfileOptions:
|
408
|
+
linesConfiguration: {}
|
409
|
+
hoverPointStyle:
|
410
|
+
circle:
|
411
|
+
fill:
|
412
|
+
color: '#ffffff'
|
413
|
+
radius: 3
|
414
|
+
gmfShareOptions:
|
415
|
+
enableEmail: True
|
416
|
+
gmfFitOptions:
|
417
|
+
# Padding (in pixels) to be correctly fitted inside the view. Values in the array are top, right, bottom and left padding.
|
418
|
+
padding: [50, 10, 50, 50]
|
419
|
+
routes:
|
420
|
+
gmfProfileJsonUrl:
|
421
|
+
name: profile.json
|
422
|
+
gmfPrintUrl:
|
423
|
+
name: printproxy
|
424
|
+
|
425
|
+
mobile:
|
426
|
+
extends: default
|
427
|
+
redirect_interface: desktop
|
428
|
+
constants:
|
429
|
+
gmfOptions: *gmfOptions
|
430
|
+
gmfMobileMeasureAreaOptions:
|
431
|
+
precision: 2
|
432
|
+
sketchStyle: &mobileMeasureStyle
|
433
|
+
fill:
|
434
|
+
color: rgba(255, 128, 128, 0.2)
|
435
|
+
stroke:
|
436
|
+
color: rgba(255, 0, 0, 0.5)
|
437
|
+
lineDash: [10, 10]
|
438
|
+
width: 2
|
439
|
+
regularShape:
|
440
|
+
stroke:
|
441
|
+
color: rgba(0, 0, 0, 0.7)
|
442
|
+
width: 2
|
443
|
+
points: 4
|
444
|
+
radius: 8
|
445
|
+
radius2: 0
|
446
|
+
angle: 0
|
447
|
+
gmfMobileMeasureLengthOptions:
|
448
|
+
precision: 2
|
449
|
+
sketchStyle: *mobileMeasureStyle
|
450
|
+
gmfMobileMeasurePointOptions:
|
451
|
+
decimals: 0
|
452
|
+
rasterLayers: []
|
453
|
+
format: '{x}, {y}'
|
454
|
+
sketchStyle:
|
455
|
+
fill:
|
456
|
+
color: rgba(255, 255, 255, 0.2)
|
457
|
+
stroke:
|
458
|
+
color: rgba(0, 0, 0, 0.5)
|
459
|
+
lineDash: [10, 10]
|
460
|
+
width: 2
|
461
|
+
regularShape:
|
462
|
+
stroke:
|
463
|
+
color: rgba(0, 0, 0, 0.7)
|
464
|
+
width: 2
|
465
|
+
points: 4
|
466
|
+
radius: 8
|
467
|
+
radius2: 0
|
468
|
+
angle: 0
|
469
|
+
gmfFitOptions:
|
470
|
+
# Padding (in pixels) to be correctly fitted inside the view. Values in the array are top, right, bottom and left padding.
|
471
|
+
padding: [60, 60, 42, 10]
|
472
|
+
|
473
|
+
iframe_api:
|
474
|
+
extends: default
|
475
|
+
constants:
|
476
|
+
gmfOptions: *gmfOptions
|
477
|
+
gmfSearchGroups: []
|
478
|
+
gmfFitOptions:
|
479
|
+
# Padding (in pixels) to be correctly fitted inside the view. Values in the array are top, right, bottom and left padding.
|
480
|
+
padding: [20, 20, 20, 20]
|
481
|
+
|
482
|
+
api:
|
483
|
+
constants:
|
484
|
+
projections: *projections
|
485
|
+
# The projection of the map
|
486
|
+
projection: EPSG:{srid}
|
487
|
+
routes:
|
488
|
+
themesUrl:
|
489
|
+
name: themes
|
490
|
+
params:
|
491
|
+
background: background
|
492
|
+
dynamic_params:
|
493
|
+
interface: interface
|
494
|
+
localeUrl:
|
495
|
+
name: localejson
|
496
|
+
searchUrl:
|
497
|
+
name: fulltextsearch
|
498
|
+
params:
|
499
|
+
limit: 30
|
500
|
+
partitionlimit: 5
|
501
|
+
dynamic_params:
|
502
|
+
interface: interface
|
503
|
+
|
504
|
+
cache:
|
505
|
+
std:
|
506
|
+
backend: c2cgeoportal.hybridsentinel
|
507
|
+
arguments: &redis-cache-arguments
|
508
|
+
lock_timeout: '{REDIS_LOCK_TIMEOUT}' # seconds
|
509
|
+
redis_expiration_time: '{REDIS_EXPIRATION_TIME}' # seconds
|
510
|
+
distributed_lock: True
|
511
|
+
thread_local_lock: False
|
512
|
+
service_name: '{REDIS_SERVICENAME}'
|
513
|
+
socket_timeout: '{REDIS_TIMEOUT}' # seconds
|
514
|
+
db: 0
|
515
|
+
obj:
|
516
|
+
backend: dogpile.cache.memory
|
517
|
+
ogc-server:
|
518
|
+
backend: c2cgeoportal.hybridsentinel
|
519
|
+
arguments: *redis-cache-arguments
|
520
|
+
|
521
|
+
admin_interface:
|
522
|
+
layer_tree_max_nodes: 1000
|
523
|
+
|
524
|
+
exclude_pages:
|
525
|
+
- layers-cog
|
526
|
+
|
527
|
+
# The list of available variable names for the `Metadatas` form.
|
528
|
+
available_metadata:
|
529
|
+
# TreeItem
|
530
|
+
- name: searchAlias
|
531
|
+
type: list
|
532
|
+
description: >
|
533
|
+
Comma separated list of search aliases (keywords) to be added to the tsearch.ts field for
|
534
|
+
the considered tree item (theme, layer group or layer), that is to say that considered
|
535
|
+
tree item will match when searching for the search aliases.
|
536
|
+
relevant_for:
|
537
|
+
- treeitem
|
538
|
+
- name: searchLabelPattern
|
539
|
+
description: >
|
540
|
+
Template string for the label of tree items in the search results, for example: "{name} ({theme})"
|
541
|
+
Supported parameters:
|
542
|
+
<ul>
|
543
|
+
<li>name (name of the tree item)</li>
|
544
|
+
<li>parent (parent of the item, may be a group, a block or a theme)</li>
|
545
|
+
<li>block (name of the block to which the item belongs)</li>
|
546
|
+
<li>theme (name of the theme to which the item belongs)</li>
|
547
|
+
</ul>
|
548
|
+
relevant_for:
|
549
|
+
- treeitem
|
550
|
+
# Layers group
|
551
|
+
- name: exclusiveGroup
|
552
|
+
type: boolean
|
553
|
+
description: >
|
554
|
+
Whether the group contains children that have to be mutually exclusive, meaning that only
|
555
|
+
one child may be ON at any time.
|
556
|
+
relevant_for:
|
557
|
+
- layergroup
|
558
|
+
- name: isExpanded
|
559
|
+
type: boolean
|
560
|
+
description: >
|
561
|
+
Whether the layer group is expanded by default.
|
562
|
+
relevant_for:
|
563
|
+
- layergroup
|
564
|
+
- name: printNativeAngle
|
565
|
+
type: boolean
|
566
|
+
description: >
|
567
|
+
Whether the print should rotate the symbols.
|
568
|
+
relevant_for:
|
569
|
+
- layergroup
|
570
|
+
# Layer
|
571
|
+
- name: copyable
|
572
|
+
type: boolean
|
573
|
+
description: >
|
574
|
+
Whether the geometry from this data source can be copied to other data sources or not.
|
575
|
+
relevant_for:
|
576
|
+
- layer_wms
|
577
|
+
- name: legend
|
578
|
+
type: boolean
|
579
|
+
description: >
|
580
|
+
Display the legend of this layer.
|
581
|
+
relevant_for:
|
582
|
+
- layer_wms
|
583
|
+
- layer_wmts
|
584
|
+
- layer_cog
|
585
|
+
- name: isLegendExpanded
|
586
|
+
type: boolean
|
587
|
+
description: >
|
588
|
+
Whether the legend is expanded by default.
|
589
|
+
relevant_for:
|
590
|
+
- layer_wms
|
591
|
+
- layer_wmts
|
592
|
+
- layer_cog
|
593
|
+
- name: legendRule
|
594
|
+
description: >
|
595
|
+
The WMS "RULE" parameter used to display the icon in the layer tree. "Short version" of
|
596
|
+
the "iconURL" metadata.
|
597
|
+
relevant_for:
|
598
|
+
- layer_wms
|
599
|
+
- name: legendImage
|
600
|
+
type: url
|
601
|
+
description: >
|
602
|
+
The URL to the image used as a legend in the layer tree.
|
603
|
+
relevant_for:
|
604
|
+
- layer_wms
|
605
|
+
- layer_wmts
|
606
|
+
- layer_cog
|
607
|
+
- name: hiDPILegendImages
|
608
|
+
type: json
|
609
|
+
description: >
|
610
|
+
The URLs to the hi DPI images used to print the legend of this layer.
|
611
|
+
It will contain a JSON mapping object with the DPI as key and the URL as value.
|
612
|
+
Note that the URL can't use the config scheme.
|
613
|
+
relevant_for:
|
614
|
+
- layer_wms
|
615
|
+
- layer_wmts
|
616
|
+
- layer_cog
|
617
|
+
- name: iconUrl
|
618
|
+
type: url
|
619
|
+
description: >
|
620
|
+
The URL of the icon to display in the layer tree.
|
621
|
+
relevant_for:
|
622
|
+
- layer_wms
|
623
|
+
- layer_wmts
|
624
|
+
- layer_cog
|
625
|
+
- name: metadataUrl
|
626
|
+
type: url
|
627
|
+
description: >
|
628
|
+
The URL to the information on this layer.
|
629
|
+
relevant_for:
|
630
|
+
- layer_wms
|
631
|
+
- layer_wmts
|
632
|
+
- layer_cog
|
633
|
+
- layergroup
|
634
|
+
- name: disclaimer
|
635
|
+
translate: True
|
636
|
+
description: >
|
637
|
+
The disclaimer text for this element.
|
638
|
+
relevant_for:
|
639
|
+
- treeitem
|
640
|
+
- name: isChecked
|
641
|
+
type: boolean
|
642
|
+
description: >
|
643
|
+
Is the layer checked by default.
|
644
|
+
relevant_for:
|
645
|
+
- layer_wms
|
646
|
+
- layer_wmts
|
647
|
+
- layer_cog
|
648
|
+
- name: identifierAttributeField
|
649
|
+
description: >
|
650
|
+
The field used in the "display query window" as feature title.
|
651
|
+
relevant_for:
|
652
|
+
- layer_wms
|
653
|
+
- name: maxResolution
|
654
|
+
type: float
|
655
|
+
description: >
|
656
|
+
The max resolution where the layer is visible. On WMTS layers it will
|
657
|
+
have an effect on the node in the layertree but not on the layertree directly.
|
658
|
+
relevant_for:
|
659
|
+
- layer_wms
|
660
|
+
- layer_wmts
|
661
|
+
- layer_cog
|
662
|
+
- name: minResolution
|
663
|
+
type: float
|
664
|
+
description: >
|
665
|
+
The min resolution where the layer is visible. On WMTS layers it will
|
666
|
+
have an effect on the node in the layertree but not on the layer directly.
|
667
|
+
relevant_for:
|
668
|
+
- layer_wms
|
669
|
+
- layer_wmts
|
670
|
+
- layer_cog
|
671
|
+
- name: opacity
|
672
|
+
type: float
|
673
|
+
description: >
|
674
|
+
Layer opacity. 1.0 means fully visible, 0 means invisible.
|
675
|
+
relevant_for:
|
676
|
+
- layer_wms
|
677
|
+
- layer_wmts
|
678
|
+
- layer_cog
|
679
|
+
- name: thumbnail
|
680
|
+
type: url
|
681
|
+
description: >
|
682
|
+
The icon visible in the background selector.
|
683
|
+
relevant_for:
|
684
|
+
- layer_wms
|
685
|
+
- layer_wmts
|
686
|
+
- layer_cog
|
687
|
+
- name: timeAttribute
|
688
|
+
description: >
|
689
|
+
The name of the time attribute. For WMS(-T) layers.
|
690
|
+
relevant_for:
|
691
|
+
- layer_wms
|
692
|
+
- name: geotablePrimaryKey
|
693
|
+
description: >
|
694
|
+
The name of the primary key field for edition.
|
695
|
+
relevant_for:
|
696
|
+
- layer_wms
|
697
|
+
- name: lastUpdateDateColumn
|
698
|
+
description: >
|
699
|
+
Define a column which will be automatically filled with the date of the last edit.
|
700
|
+
relevant_for:
|
701
|
+
- layer_wms
|
702
|
+
- name: lastUpdateUserColumn
|
703
|
+
description: >
|
704
|
+
Define a column which will be automatically filled with the user of the last edit.
|
705
|
+
relevant_for:
|
706
|
+
- layer_wms
|
707
|
+
- name: snappingConfig
|
708
|
+
type: json
|
709
|
+
description: >
|
710
|
+
The snapping configuration for the layer. If set, even if empty, the layer is considered to be
|
711
|
+
"snappable" and snapping is activated by default. To disable snapping by default, set "activated"
|
712
|
+
to false. Example value: {"tolerance": 50, "edge": false}.
|
713
|
+
relevant_for:
|
714
|
+
- layer_wms
|
715
|
+
- name: geometryValidation
|
716
|
+
type: boolean
|
717
|
+
description: >
|
718
|
+
Force validation of the geometries according to the layer type (point, line, polygon),
|
719
|
+
for example, to prevent creation of a 2-point polygon.
|
720
|
+
relevant_for:
|
721
|
+
- layer_wms
|
722
|
+
- name: customOpenLayersOptions
|
723
|
+
type: json
|
724
|
+
description: >
|
725
|
+
The custom OpenLayers WMS layer options.
|
726
|
+
relevant_for:
|
727
|
+
- layer_wms
|
728
|
+
- layer_wmts
|
729
|
+
- layer_cog
|
730
|
+
- name: editingAttributesOrder
|
731
|
+
type: list
|
732
|
+
description: >
|
733
|
+
Specify the order of the editable attributes in the edit interface.
|
734
|
+
relevant_for:
|
735
|
+
- layer_wms
|
736
|
+
- name: editingEnumerations
|
737
|
+
type: json
|
738
|
+
description: >
|
739
|
+
Specify the value column and the order column on the relationship's target table of the
|
740
|
+
enumeration.
|
741
|
+
relevant_for:
|
742
|
+
- layer_wms
|
743
|
+
- name: readonlyAttributes
|
744
|
+
type: list
|
745
|
+
description: >
|
746
|
+
Set attributes as read only in the Editing form.
|
747
|
+
relevant_for:
|
748
|
+
- layer_wms
|
749
|
+
- name: queryIconPosition
|
750
|
+
type: list
|
751
|
+
description: >
|
752
|
+
Values to define the shape (bbox) to use to query the layer. The values are used like a
|
753
|
+
padding in css with 1, 2, 3 or 4 comma separated values: all / top-bottom, left-right /
|
754
|
+
top, right-left, bottom / top, right, bottom, left.
|
755
|
+
relevant_for:
|
756
|
+
- layer_wms
|
757
|
+
- layer_wmts
|
758
|
+
- layer_cog
|
759
|
+
- name: editingSelectionAttribute
|
760
|
+
description: >
|
761
|
+
The field used in the selector tooltip to name the layer when multiple ones are selected on the map.
|
762
|
+
relevant_for:
|
763
|
+
- layer_wms
|
764
|
+
# WMS
|
765
|
+
- name: directedFilterAttributes
|
766
|
+
type: list
|
767
|
+
description: >
|
768
|
+
List of attribute names which should have rules already ready when using the filter
|
769
|
+
tools.
|
770
|
+
relevant_for:
|
771
|
+
- layer_wms
|
772
|
+
- name: enumeratedAttributes
|
773
|
+
type: list
|
774
|
+
description: >
|
775
|
+
List of attribute names which have enumerated attribute values (for filters purpose).
|
776
|
+
relevant_for:
|
777
|
+
- layer_wms
|
778
|
+
- name: protectedAttributes
|
779
|
+
type: list
|
780
|
+
description: >
|
781
|
+
For QGIS server: List of attribute names that's protected, to be used with the `allowed_attributes` functionality.
|
782
|
+
relevant_for:
|
783
|
+
- layer_wms
|
784
|
+
# WMTS layers
|
785
|
+
- name: ogcServer
|
786
|
+
description: >
|
787
|
+
The corresponding OGC server for a WMTS layer.
|
788
|
+
relevant_for:
|
789
|
+
- layer_wmts
|
790
|
+
- layer_cog
|
791
|
+
- name: wmsLayers
|
792
|
+
description: >
|
793
|
+
Corresponding WMS/WFS layers (comma separated) that will be used instead of the WMTS layer
|
794
|
+
to do the query and for the print.
|
795
|
+
An OGCServer metadata must be set with the name of the OGC server.
|
796
|
+
See also printLayers and queryLayers metadata for more granularity.
|
797
|
+
relevant_for:
|
798
|
+
- layer_wmts
|
799
|
+
- layer_cog
|
800
|
+
- name: queryLayers
|
801
|
+
description: >
|
802
|
+
Corresponding WFS layers (comma separated) that will be used instead of the WMTS layer
|
803
|
+
to do the query.
|
804
|
+
An OGCServer metadata must be set with the name of the OGC server.
|
805
|
+
relevant_for:
|
806
|
+
- layer_wmts
|
807
|
+
- layer_cog
|
808
|
+
- name: printLayers
|
809
|
+
description: >
|
810
|
+
Corresponding WMS layers (comma separated) that will be used instead of the WMTS layer
|
811
|
+
for the print.
|
812
|
+
Used to increase the quality of the printed layer, by using native rotation and
|
813
|
+
generating an image in hi-DPI.
|
814
|
+
An OGCServer metadata must be set with the name of the OGC server.
|
815
|
+
relevant_for:
|
816
|
+
- layer_wmts
|
817
|
+
- layer_cog
|
818
|
+
- name: maxQueryResolution
|
819
|
+
type: float
|
820
|
+
description: >
|
821
|
+
The max resolution where the layer is queryable.
|
822
|
+
relevant_for:
|
823
|
+
- layer_wmts
|
824
|
+
- layer_cog
|
825
|
+
- name: minQueryResolution
|
826
|
+
type: float
|
827
|
+
description: >
|
828
|
+
The min resolution where the layer is queryable.
|
829
|
+
relevant_for:
|
830
|
+
- layer_wmts
|
831
|
+
- layer_cog
|
832
|
+
- name: timeout
|
833
|
+
type: float
|
834
|
+
description: The fetch capabilities timeout in seconds. Use `300` by default.
|
835
|
+
relevant_for:
|
836
|
+
- layer_wmts
|
837
|
+
|
838
|
+
# The list of functionalities that can be configured
|
839
|
+
# through the admin interface.
|
840
|
+
available_functionalities:
|
841
|
+
- name: default_basemap
|
842
|
+
single: true
|
843
|
+
description: >
|
844
|
+
The background layer to load when the user select this theme.
|
845
|
+
relevant_for:
|
846
|
+
- theme
|
847
|
+
- name: default_theme
|
848
|
+
single: true
|
849
|
+
description: >
|
850
|
+
The theme to load when the user log in.
|
851
|
+
relevant_for:
|
852
|
+
- role
|
853
|
+
- name: print_template
|
854
|
+
description: >
|
855
|
+
Grant access to considered print template.
|
856
|
+
relevant_for:
|
857
|
+
- role
|
858
|
+
- name: mapserver_substitution
|
859
|
+
relevant_for:
|
860
|
+
- role
|
861
|
+
description: >
|
862
|
+
MapServer substitution of a variable in the mapfile.
|
863
|
+
See the documentation here:
|
864
|
+
https://camptocamp.github.io/c2cgeoportal/{{cookiecutter.geomapfish_main_version}}/administrator/mapfile.html?highlight=mapserver_substitution#variable-substitution
|
865
|
+
- name: filterable_layers
|
866
|
+
description: >
|
867
|
+
Grant access for filtering considered layer.
|
868
|
+
relevant_for:
|
869
|
+
- role
|
870
|
+
- name: preset_layer_filter
|
871
|
+
single: true
|
872
|
+
description: >
|
873
|
+
Name of the layer (data source) to select in the filter tool upon loading an application.
|
874
|
+
relevant_for:
|
875
|
+
- role
|
876
|
+
- name: open_panel
|
877
|
+
single: true
|
878
|
+
description: >
|
879
|
+
Name of a panel to open upon loading an application.
|
880
|
+
relevant_for:
|
881
|
+
- role
|
882
|
+
- name: allowed_attributes
|
883
|
+
description: >
|
884
|
+
For QGIS server: List of protected attribute names that we can access, to be used with the `protectedAttributes` metadata.
|
885
|
+
|
886
|
+
Syntax: <WMS layer name>:<attribute name>,<attribute name>,...
|
887
|
+
relevant_for:
|
888
|
+
- role
|
889
|
+
|
890
|
+
getitfixed:
|
891
|
+
enabled: false
|
892
|
+
|
893
|
+
functionalities:
|
894
|
+
# Functionalities that are made available to Mako templates and loginuser.
|
895
|
+
available_in_templates:
|
896
|
+
- default_basemap
|
897
|
+
- default_theme
|
898
|
+
- filterable_layers
|
899
|
+
- print_template
|
900
|
+
- preset_layer_filter
|
901
|
+
- open_panel
|
902
|
+
|
903
|
+
urllogin: {}
|
904
|
+
|
905
|
+
http_options:
|
906
|
+
timeout: 300
|
907
|
+
|
908
|
+
tinyowsproxy:
|
909
|
+
# URL to internal TinyOWS instance
|
910
|
+
tinyows_url: '{TINYOWS_URL}'
|
911
|
+
ogc_server: '{main_ogc_server}'
|
912
|
+
|
913
|
+
# If the `online_resource` url in the TinyOWS configuration is not set
|
914
|
+
# to the TinyOWS proxy url (e.g. when the service is also used without
|
915
|
+
# the proxy), the proxy can replace the original `online_resource`
|
916
|
+
# url with the proxy url.
|
917
|
+
# proxy_online_resource: {VISIBLE_WEB_PROTOCOL}://{VISIBLE_WEB_HOST}{VISIBLE_ENTRY_POINT}tinyows_proxy
|
918
|
+
# online_resource: http://localhost{VISIBLE_ENTRY_POINT}tinyows
|
919
|
+
#
|
920
|
+
# When running a c2cgeoportal appl. in debug mode (with `make serve`)
|
921
|
+
# the host has to be set explicitly in a vhost environment.
|
922
|
+
# tinyows_host: {VISIBLE_WEB_HOST}
|
923
|
+
|
924
|
+
api:
|
925
|
+
ogc_server: '{main_ogc_server}'
|
926
|
+
|
927
|
+
resourceproxy:
|
928
|
+
# List of urls from which it is safe to load content
|
929
|
+
targets: {}
|
930
|
+
# exempletargetname: https://www.camptocamp.com/?param1=%s¶m2=%s
|
931
|
+
|
932
|
+
# List of allowed headers
|
933
|
+
allowed_headers:
|
934
|
+
- Cache-Control
|
935
|
+
- Content-Encoding
|
936
|
+
- Content-Language
|
937
|
+
- Content-Type
|
938
|
+
- Date
|
939
|
+
- ETag
|
940
|
+
- Vary
|
941
|
+
|
942
|
+
fulltextsearch:
|
943
|
+
defaultlimit: 30
|
944
|
+
maxlimit: 200
|
945
|
+
languages:
|
946
|
+
fr: french
|
947
|
+
en: english
|
948
|
+
de: german
|
949
|
+
|
950
|
+
servers:
|
951
|
+
internal: http://localhost/
|
952
|
+
local: '{VISIBLE_WEB_PROTOCOL}://{VISIBLE_WEB_HOST}{VISIBLE_ENTRY_POINT}'
|
953
|
+
mapserver: '{MAPSERVER_URL}'
|
954
|
+
qgisserver: '{QGISSERVER_URL}'
|
955
|
+
|
956
|
+
host_forward_host: []
|
957
|
+
headers_whitelist: []
|
958
|
+
headers_blacklist: []
|
959
|
+
|
960
|
+
# The "raster web services" configuration. See the "raster"
|
961
|
+
# chapter in the integrator documentation.
|
962
|
+
raster: {}
|
963
|
+
|
964
|
+
# the "vector tiles service" configuration. See the "vector tiles"
|
965
|
+
# chapter in the integrator documentation.
|
966
|
+
vector_tiles: {}
|
967
|
+
|
968
|
+
# Used by enumeration in the query builder
|
969
|
+
layers:
|
970
|
+
geometry_validation: True
|
971
|
+
|
972
|
+
# Used by reset_password and shortener to send emails
|
973
|
+
smtp:
|
974
|
+
ssl: false
|
975
|
+
starttls: false
|
976
|
+
|
977
|
+
# Used to send an email on password reset
|
978
|
+
reset_password: {}
|
979
|
+
|
980
|
+
# The shortener base configuration
|
981
|
+
shortener:
|
982
|
+
# The base of created URL
|
983
|
+
base_url: '{VISIBLE_WEB_PROTOCOL}://{VISIBLE_WEB_HOST}{VISIBLE_ENTRY_POINT}s/'
|
984
|
+
length: 4
|
985
|
+
|
986
|
+
# Define whether the MapServer proxy should hide the OGC capabilities.
|
987
|
+
hide_capabilities: false
|
988
|
+
|
989
|
+
# For print proxy
|
990
|
+
print_url: '{PRINT_URL}'
|
991
|
+
print_get_redirect: false # if true, redirects (302) directly to the print to fetch the report
|
992
|
+
|
993
|
+
devserver_url: http://{DEVSERVER_HOST}{VISIBLE_ENTRY_POINT}
|
994
|
+
|
995
|
+
pdfreport:
|
996
|
+
print_url: '{PRINT_URL}'
|
997
|
+
|
998
|
+
lingva_extractor: {}
|
999
|
+
|
1000
|
+
content_security_policy_main_default_src_extra: ''
|
1001
|
+
# Google Maps uses map.google.com and map.googleapis.com
|
1002
|
+
# More info: https://developers.google.com/maps/documentation/javascript/content-security-policy?hl=fr#allowlist_csp
|
1003
|
+
# Google Analytics 4 uses googletagmanager.com
|
1004
|
+
# More info: https://developers.google.com/tag-platform/tag-manager/csp?hl=fr#google_analytics_4_google_analytics
|
1005
|
+
content_security_policy_main_script_src_extra: '
|
1006
|
+
https://*.google.com/
|
1007
|
+
https://*.googleapis.com/
|
1008
|
+
https://*.googletagmanager.com/'
|
1009
|
+
content_security_policy_main_style_src_extra: '
|
1010
|
+
https://fonts.googleapis.com/'
|
1011
|
+
content_security_policy_main_img_src_extra: '
|
1012
|
+
https://*.google-analytics.com/
|
1013
|
+
https://*.googletagmanager.com/'
|
1014
|
+
content_security_policy_main_connect_src_extra: '
|
1015
|
+
https://*.google-analytics.com/
|
1016
|
+
https://*.analytics.google.com/
|
1017
|
+
https://*.googletagmanager.com/'
|
1018
|
+
content_security_policy_main_default_src: "
|
1019
|
+
'self'
|
1020
|
+
https://*
|
1021
|
+
{content_security_policy_main_default_src_extra}"
|
1022
|
+
content_security_policy_main_script_src: "
|
1023
|
+
'self'
|
1024
|
+
'unsafe-inline'
|
1025
|
+
{content_security_policy_main_script_src_extra}"
|
1026
|
+
content_security_policy_main_style_src: "
|
1027
|
+
'self'
|
1028
|
+
'unsafe-inline'
|
1029
|
+
{content_security_policy_main_style_src_extra}"
|
1030
|
+
content_security_policy_main_img_src: '
|
1031
|
+
*
|
1032
|
+
data:
|
1033
|
+
{content_security_policy_main_img_src_extra}'
|
1034
|
+
content_security_policy_main_connect_src: '
|
1035
|
+
*
|
1036
|
+
{content_security_policy_main_connect_src_extra}'
|
1037
|
+
|
1038
|
+
content_security_policy_admin_default_src_extra: ''
|
1039
|
+
content_security_policy_admin_script_src_extra: ''
|
1040
|
+
content_security_policy_admin_style_src_extra: ''
|
1041
|
+
content_security_policy_admin_img_src_extra: ''
|
1042
|
+
content_security_policy_admin_worker_src_extra: ''
|
1043
|
+
content_security_policy_admin_default_src: "
|
1044
|
+
'self'
|
1045
|
+
{content_security_policy_admin_default_src_extra}"
|
1046
|
+
content_security_policy_admin_script_src: "
|
1047
|
+
'self'
|
1048
|
+
'unsafe-inline'
|
1049
|
+
{content_security_policy_admin_script_src_extra}"
|
1050
|
+
content_security_policy_admin_style_src: "
|
1051
|
+
'self'
|
1052
|
+
'unsafe-inline'
|
1053
|
+
https://cdnjs.cloudflare.com/
|
1054
|
+
{content_security_policy_admin_style_src_extra}"
|
1055
|
+
content_security_policy_admin_img_src: '
|
1056
|
+
*
|
1057
|
+
data:
|
1058
|
+
{content_security_policy_admin_img_src_extra}'
|
1059
|
+
content_security_policy_admin_worker_src: "
|
1060
|
+
'self'
|
1061
|
+
blob:
|
1062
|
+
{content_security_policy_admin_worker_src_extra}"
|
1063
|
+
|
1064
|
+
content_security_policy_apihelp_default_src_extra: ''
|
1065
|
+
content_security_policy_apihelp_script_src_extra: ''
|
1066
|
+
content_security_policy_apihelp_style_src_extra: ''
|
1067
|
+
content_security_policy_apihelp_img_src_extra: ''
|
1068
|
+
content_security_policy_apihelp_connect_src_extra: ''
|
1069
|
+
content_security_policy_apihelp_default_src: "
|
1070
|
+
'self'
|
1071
|
+
https://*
|
1072
|
+
{content_security_policy_apihelp_default_src_extra}"
|
1073
|
+
content_security_policy_apihelp_script_src: "
|
1074
|
+
'self'
|
1075
|
+
'unsafe-inline'
|
1076
|
+
'unsafe-eval'
|
1077
|
+
{content_security_policy_apihelp_script_src_extra}"
|
1078
|
+
content_security_policy_apihelp_style_src: "
|
1079
|
+
'self'
|
1080
|
+
'unsafe-inline'
|
1081
|
+
https://cdnjs.cloudflare.com/
|
1082
|
+
{content_security_policy_apihelp_style_src_extra}"
|
1083
|
+
content_security_policy_apihelp_img_src: '
|
1084
|
+
*
|
1085
|
+
data:
|
1086
|
+
{content_security_policy_apihelp_img_src_extra}'
|
1087
|
+
content_security_policy_apihelp_connect_src: '
|
1088
|
+
*
|
1089
|
+
{content_security_policy_apihelp_connect_src_extra}'
|
1090
|
+
|
1091
|
+
content_security_policy_c2c_default_src_extra: ''
|
1092
|
+
content_security_policy_c2c_script_src_extra: ''
|
1093
|
+
content_security_policy_c2c_style_src_extra: ''
|
1094
|
+
content_security_policy_c2c_default_src: "
|
1095
|
+
'self'
|
1096
|
+
{content_security_policy_c2c_default_src_extra}"
|
1097
|
+
content_security_policy_c2c_script_src: "
|
1098
|
+
'unsafe-inline'
|
1099
|
+
{content_security_policy_c2c_script_src_extra}"
|
1100
|
+
content_security_policy_c2c_style_src: "
|
1101
|
+
'unsafe-inline'
|
1102
|
+
https://cdnjs.cloudflare.com/
|
1103
|
+
{content_security_policy_c2c_style_src_extra}"
|
1104
|
+
|
1105
|
+
content_security_policy_iframe_api_frame_ancestors: "'self'"
|
1106
|
+
|
1107
|
+
global_headers:
|
1108
|
+
- pattern: '^/admin/.*'
|
1109
|
+
headers: &c2cgeoform_headers
|
1110
|
+
X-Frame-Options: SAMEORIGIN
|
1111
|
+
X-Xss-Protection: 1; mode=block
|
1112
|
+
X-Content-Type-Options: nosniff
|
1113
|
+
Referrer-Policy: same-origin
|
1114
|
+
Strict-Transport-Security: max-age=31536000; includeSubDomains
|
1115
|
+
Content-Security-Policy: 'default-src {content_security_policy_admin_default_src};
|
1116
|
+
script-src {content_security_policy_admin_script_src};
|
1117
|
+
style-src {content_security_policy_admin_style_src};
|
1118
|
+
img-src {content_security_policy_admin_img_src};
|
1119
|
+
worker-src {content_security_policy_admin_worker_src}'
|
1120
|
+
- pattern: '^/getitfixed.*'
|
1121
|
+
headers: *c2cgeoform_headers
|
1122
|
+
- pattern: '^/static/.*'
|
1123
|
+
headers:
|
1124
|
+
Access-Control-Allow-Origin: '*'
|
1125
|
+
Access-Control-Allow-Headers: X-Requested-With, Content-Type
|
1126
|
+
- pattern: '^/static-ngeo/.*'
|
1127
|
+
headers:
|
1128
|
+
Access-Control-Allow-Origin: '*'
|
1129
|
+
Access-Control-Allow-Headers: X-Requested-With, Content-Type
|
1130
|
+
- pattern: '^/static-geomapfish/.*'
|
1131
|
+
headers:
|
1132
|
+
Access-Control-Allow-Origin: '*'
|
1133
|
+
Access-Control-Allow-Headers: X-Requested-With, Content-Type
|
1134
|
+
- pattern: '^/c2c$'
|
1135
|
+
headers: &c2c_headers
|
1136
|
+
Content-Security-Policy: 'default-src {content_security_policy_c2c_default_src};
|
1137
|
+
script-src {content_security_policy_c2c_script_src};
|
1138
|
+
style-src {content_security_policy_c2c_style_src};'
|
1139
|
+
- pattern: '^/c2c/.*'
|
1140
|
+
headers: *c2c_headers
|
1141
|
+
- pattern: '^/iframe_api(/theme/.*)?$'
|
1142
|
+
headers:
|
1143
|
+
Content-Security-Policy: 'default-src {content_security_policy_main_default_src};
|
1144
|
+
script-src {content_security_policy_main_script_src};
|
1145
|
+
style-src {content_security_policy_main_style_src};
|
1146
|
+
img-src {content_security_policy_main_img_src};
|
1147
|
+
connect-src {content_security_policy_main_connect_src};
|
1148
|
+
frame-ancestors {content_security_policy_iframe_api_frame_ancestors};'
|
1149
|
+
|
1150
|
+
# Control the HTTP headers
|
1151
|
+
headers:
|
1152
|
+
dynamic: &header
|
1153
|
+
cache_control_max_age: 600 # 10 minutes
|
1154
|
+
cache_control_max_age_nocache: 10 # 10 seconds, to avoid too many call
|
1155
|
+
access_control_max_age: 600 # 10 minutes
|
1156
|
+
access_control_allow_origin:
|
1157
|
+
- '*'
|
1158
|
+
index:
|
1159
|
+
<<: *header
|
1160
|
+
headers: &sec_headers
|
1161
|
+
X-Frame-Options: SAMEORIGIN
|
1162
|
+
X-Xss-Protection: 1; mode=block
|
1163
|
+
X-Content-Type-Options: nosniff
|
1164
|
+
Referrer-Policy: origin
|
1165
|
+
Strict-Transport-Security: max-age=31536000; includeSubDomains
|
1166
|
+
Content-Security-Policy: 'default-src {content_security_policy_main_default_src};
|
1167
|
+
script-src {content_security_policy_main_script_src};
|
1168
|
+
style-src {content_security_policy_main_style_src};
|
1169
|
+
img-src {content_security_policy_main_img_src};
|
1170
|
+
connect-src {content_security_policy_main_connect_src}'
|
1171
|
+
api: *header
|
1172
|
+
apihelp:
|
1173
|
+
<<: *header
|
1174
|
+
headers:
|
1175
|
+
<<: *sec_headers
|
1176
|
+
Content-Security-Policy: 'default-src {content_security_policy_apihelp_default_src};
|
1177
|
+
script-src {content_security_policy_apihelp_script_src};
|
1178
|
+
style-src {content_security_policy_apihelp_style_src};
|
1179
|
+
img-src {content_security_policy_apihelp_img_src};
|
1180
|
+
connect-src {content_security_policy_apihelp_connect_src}'
|
1181
|
+
profile: *header
|
1182
|
+
raster: *header
|
1183
|
+
vector_tiles: *header
|
1184
|
+
error: *header
|
1185
|
+
themes: &auth_header
|
1186
|
+
cache_control_max_age: 600 # 10 minutes
|
1187
|
+
cache_control_max_age_nocache: 10 # 10 seconds, to avoid too many call
|
1188
|
+
access_control_max_age: 600 # 10 minutes
|
1189
|
+
access_control_allow_origin:
|
1190
|
+
- '{VISIBLE_WEB_PROTOCOL}://{VISIBLE_WEB_HOST}'
|
1191
|
+
- '*'
|
1192
|
+
headers:
|
1193
|
+
Strict-Transport-Security: max-age=31536000; includeSubDomains
|
1194
|
+
config: *auth_header
|
1195
|
+
print: *auth_header
|
1196
|
+
fulltextsearch: *auth_header
|
1197
|
+
mapserver: *auth_header
|
1198
|
+
tinyows: *auth_header
|
1199
|
+
layers:
|
1200
|
+
<<: *auth_header
|
1201
|
+
cache_control_max_age_nocache: 0 # to refresh issue in editing
|
1202
|
+
shortener: *auth_header
|
1203
|
+
login:
|
1204
|
+
<<: *auth_header
|
1205
|
+
access_control_allow_origin:
|
1206
|
+
- '{VISIBLE_WEB_PROTOCOL}://{VISIBLE_WEB_HOST}'
|
1207
|
+
|
1208
|
+
# Checker configuration
|
1209
|
+
checker_ogc_server: source for image/png
|
1210
|
+
checker:
|
1211
|
+
forward_host: False
|
1212
|
+
base_internal_url: http://localhost:8080
|
1213
|
+
fulltextsearch:
|
1214
|
+
disable: False
|
1215
|
+
level: 3
|
1216
|
+
search: text to search
|
1217
|
+
lang:
|
1218
|
+
level: 3
|
1219
|
+
files: [ngeo]
|
1220
|
+
phantomjs:
|
1221
|
+
disable: []
|
1222
|
+
routes:
|
1223
|
+
- name: desktop
|
1224
|
+
params:
|
1225
|
+
no_redirect: 'true'
|
1226
|
+
environment: &phantomjs-env
|
1227
|
+
HTTP_MAP:
|
1228
|
+
https://localhost:8484/tiles/: http://localhost:8080/tiles/
|
1229
|
+
level: 6
|
1230
|
+
- name: mobile
|
1231
|
+
params:
|
1232
|
+
no_redirect: 'true'
|
1233
|
+
environment: *phantomjs-env
|
1234
|
+
level: 6
|
1235
|
+
- name: iframe_api
|
1236
|
+
params:
|
1237
|
+
no_redirect: 'true'
|
1238
|
+
environment: *phantomjs-env
|
1239
|
+
level: 6
|
1240
|
+
- name: apihelp
|
1241
|
+
environment: *phantomjs-env
|
1242
|
+
level: 6
|
1243
|
+
routes:
|
1244
|
+
disable: []
|
1245
|
+
routes:
|
1246
|
+
- name: apijs
|
1247
|
+
level: 3
|
1248
|
+
params:
|
1249
|
+
version: '2'
|
1250
|
+
- name: printproxy_capabilities
|
1251
|
+
level: 3
|
1252
|
+
- name: mapserverproxy
|
1253
|
+
checker_name: mapserverproxy_wms
|
1254
|
+
params:
|
1255
|
+
SERVICE: WMS
|
1256
|
+
VERSION: 1.1.1
|
1257
|
+
REQUEST: GetCapabilities
|
1258
|
+
ogcserver: '{checker_ogc_server}'
|
1259
|
+
level: 3
|
1260
|
+
- name: mapserverproxy
|
1261
|
+
checker_name: mapserverproxy_wfs
|
1262
|
+
params:
|
1263
|
+
SERVICE: WFS
|
1264
|
+
VERSION: 1.1.0
|
1265
|
+
REQUEST: GetCapabilities
|
1266
|
+
ogcserver: '{checker_ogc_server}'
|
1267
|
+
level: 3
|
1268
|
+
themes:
|
1269
|
+
params:
|
1270
|
+
version: '2'
|
1271
|
+
level: 4
|
1272
|
+
interfaces: {}
|
1273
|
+
print:
|
1274
|
+
level: 5
|
1275
|
+
|
1276
|
+
# Check collector configuration
|
1277
|
+
check_collector:
|
1278
|
+
hosts:
|
1279
|
+
- display: Main
|
1280
|
+
url: 'http://localhost:8080{VISIBLE_ENTRY_POINT}'
|
1281
|
+
max_level: 3
|
1282
|
+
level: 10
|
1283
|
+
|
1284
|
+
# What web page is authorized to use the API
|
1285
|
+
authorized_referers: []
|
1286
|
+
|
1287
|
+
metrics:
|
1288
|
+
memory_maps_rss: False
|
1289
|
+
memory_maps_size: False
|
1290
|
+
memory_cache: True
|
1291
|
+
memory_cache_all: False
|
1292
|
+
raster_data: False
|
1293
|
+
total_python_object_memory: True
|
1294
|
+
|
1295
|
+
# Hooks that can be called at different moments in the life of the
|
1296
|
+
# application. The value is the full python name
|
1297
|
+
# (full.module.path.function_name) of the function to call
|
1298
|
+
hooks: {}
|
1299
|
+
# after_settings: {{cookiecutter.package}}.after_settings_hook
|
1300
|
+
# Called just after the settings have been loaded. Allows to modify
|
1301
|
+
# the settings at runtime (they are constructed at build time).
|
1302
|
+
# The function receives one parameter: the settings object.
|
1303
|
+
|
1304
|
+
# Statistics are disabled by default
|
1305
|
+
stats: {}
|
1306
|
+
|
1307
|
+
# The c2cwsgiutils base path
|
1308
|
+
c2c:
|
1309
|
+
base_path: /c2c
|
1310
|
+
|
1311
|
+
db_chooser:
|
1312
|
+
# List of {method path} regexes to force the usage of the master, even for GET and OPTIONS
|
1313
|
+
# This supersedes the slave list.
|
1314
|
+
master:
|
1315
|
+
- GET {VISIBLE_ENTRY_POINT}s/.* # The shortener updates the last_hit column on GET
|
1316
|
+
- GET {VISIBLE_ENTRY_POINT}oauth/login # The oauth2 login when we are already logged
|
1317
|
+
# List of {method path} regexes to force the usage of the slave
|
1318
|
+
slave:
|
1319
|
+
- \w+ {VISIBLE_ENTRY_POINT}printproxy/.* # The print proxy is never writing to the DB
|
1320
|
+
|
1321
|
+
runtime_environment:
|
1322
|
+
- name: VISIBLE_WEB_HOST
|
1323
|
+
default: localhost
|
1324
|
+
- name: VISIBLE_WEB_PROTOCOL
|
1325
|
+
default: https
|
1326
|
+
- name: VISIBLE_ENTRY_POINT
|
1327
|
+
default: /
|
1328
|
+
- PGHOST
|
1329
|
+
- PGHOST_SLAVE
|
1330
|
+
- name: PGPORT
|
1331
|
+
default: '5432'
|
1332
|
+
- name: PGPORT_SLAVE
|
1333
|
+
default: '5432'
|
1334
|
+
- PGUSER
|
1335
|
+
- PGPASSWORD
|
1336
|
+
- name: PGDATABASE
|
1337
|
+
default: geomapfish
|
1338
|
+
- name: PGSSLMODE
|
1339
|
+
default: prefer
|
1340
|
+
- name: PGSCHEMA
|
1341
|
+
default: main
|
1342
|
+
- name: PGSCHEMA_STATIC
|
1343
|
+
default: main_static
|
1344
|
+
- name: SQLALCHEMY_POOL_RECYCLE
|
1345
|
+
default: '30'
|
1346
|
+
- name: SQLALCHEMY_POOL_SIZE
|
1347
|
+
default: '5'
|
1348
|
+
- name: SQLALCHEMY_MAX_OVERFLOW
|
1349
|
+
default: '25'
|
1350
|
+
- name: SQLALCHEMY_SLAVE_POOL_RECYCLE
|
1351
|
+
default: '30'
|
1352
|
+
- name: SQLALCHEMY_SLAVE_POOL_SIZE
|
1353
|
+
default: '5'
|
1354
|
+
- name: SQLALCHEMY_SLAVE_MAX_OVERFLOW
|
1355
|
+
default: '25'
|
1356
|
+
- name: TINYOWS_URL
|
1357
|
+
default: http://tinyows:8080/
|
1358
|
+
- name: MAPSERVER_URL
|
1359
|
+
default: http://mapserver:8080/
|
1360
|
+
- name: QGISSERVER_URL
|
1361
|
+
default: http://qgisserver:8080/
|
1362
|
+
- name: PRINT_URL
|
1363
|
+
default: http://print:8080/print/
|
1364
|
+
- name: DEVSERVER_HOST
|
1365
|
+
default: webpack-dev-server:8080
|
1366
|
+
- name: REDIS_HOST
|
1367
|
+
default: redis
|
1368
|
+
- name: REDIS_PORT
|
1369
|
+
default: '6372'
|
1370
|
+
- name: REDIS_DB
|
1371
|
+
default: '0'
|
1372
|
+
- name: REDIS_SERVICENAME
|
1373
|
+
default: 'mymaster'
|
1374
|
+
- name: REDIS_TIMEOUT
|
1375
|
+
default: '30'
|
1376
|
+
- name: REDIS_LOCK_TIMEOUT
|
1377
|
+
default: '120' # Two minutes
|
1378
|
+
- name: REDIS_PASSWORD
|
1379
|
+
default: ''
|
1380
|
+
- name: REDIS_SSL
|
1381
|
+
default: 'false'
|
1382
|
+
- name: REDIS_EXPIRATION_TIME
|
1383
|
+
default: '86400' # One day
|
1384
|
+
- name: TILEGENERATION_SQS_QUEUE
|
1385
|
+
default: queue_name
|
1386
|
+
- name: TILEGENERATION_S3_BUCKET
|
1387
|
+
default: bucket_name
|
1388
|
+
- name: SENTRY_URL
|
1389
|
+
default: ''
|
1390
|
+
- name: SENTRY_CLIENT_RELEASE
|
1391
|
+
default: ''
|
1392
|
+
- name: SENTRY_CLIENT_ENVIRONMENT
|
1393
|
+
default: ''
|
1394
|
+
- name: OPENID_CONNECT_ENABLED
|
1395
|
+
default: 'false'
|
1396
|
+
|
1397
|
+
runtime_postprocess:
|
1398
|
+
- expression: int({})
|
1399
|
+
vars:
|
1400
|
+
- cache.std.arguments.lock_timeout
|
1401
|
+
- cache.std.arguments.redis_expiration_time
|
1402
|
+
- cache.std.arguments.socket_timeout
|
1403
|
+
- cache.std.arguments.db
|
1404
|
+
- cache.ogc-server.arguments.lock_timeout
|
1405
|
+
- cache.ogc-server.arguments.redis_expiration_time
|
1406
|
+
- cache.ogc-server.arguments.socket_timeout
|
1407
|
+
- cache.ogc-server.arguments.db
|
1408
|
+
- sqlalchemy\.pool_recycle
|
1409
|
+
- sqlalchemy\.pool_size
|
1410
|
+
- sqlalchemy\.max_overflow
|
1411
|
+
- sqlalchemy_slave\.pool_recycle
|
1412
|
+
- sqlalchemy_slave\.pool_size
|
1413
|
+
- sqlalchemy_slave\.max_overflow
|
1414
|
+
- authentication.max_consecutive_failures
|
1415
|
+
- authentication.oauth2_authorization_expire_minutes
|
1416
|
+
- authentication.oauth2_token_expire_minutes
|
1417
|
+
- headers.login.access_control_max_age
|
1418
|
+
- headers.login.cache_control_max_age
|
1419
|
+
- headers.login.cache_control_max_age_nocache
|
1420
|
+
- headers.index.access_control_max_age
|
1421
|
+
- headers.index.cache_control_max_age
|
1422
|
+
- headers.index.cache_control_max_age_nocache
|
1423
|
+
- headers.dynamic.access_control_max_age
|
1424
|
+
- headers.dynamic.cache_control_max_age
|
1425
|
+
- headers.dynamic.cache_control_max_age_nocache
|
1426
|
+
- headers.config.access_control_max_age
|
1427
|
+
- headers.config.cache_control_max_age
|
1428
|
+
- headers.config.cache_control_max_age_nocache
|
1429
|
+
- headers.api.access_control_max_age
|
1430
|
+
- headers.api.cache_control_max_age
|
1431
|
+
- headers.api.cache_control_max_age_nocache
|
1432
|
+
- headers.apihelp.access_control_max_age
|
1433
|
+
- headers.apihelp.cache_control_max_age
|
1434
|
+
- headers.apihelp.cache_control_max_age_nocache
|
1435
|
+
- headers.themes.access_control_max_age
|
1436
|
+
- headers.themes.cache_control_max_age
|
1437
|
+
- headers.themes.cache_control_max_age_nocache
|
1438
|
+
- headers.fulltextsearch.access_control_max_age
|
1439
|
+
- headers.fulltextsearch.cache_control_max_age
|
1440
|
+
- headers.fulltextsearch.cache_control_max_age_nocache
|
1441
|
+
- headers.mapserver.access_control_max_age
|
1442
|
+
- headers.mapserver.cache_control_max_age
|
1443
|
+
- headers.mapserver.cache_control_max_age_nocache
|
1444
|
+
- headers.tinyows.access_control_max_age
|
1445
|
+
- headers.tinyows.cache_control_max_age
|
1446
|
+
- headers.tinyows.cache_control_max_age_nocache
|
1447
|
+
- headers.layers.access_control_max_age
|
1448
|
+
- headers.layers.cache_control_max_age
|
1449
|
+
- headers.layers.cache_control_max_age_nocache
|
1450
|
+
- headers.print.access_control_max_age
|
1451
|
+
- headers.print.cache_control_max_age
|
1452
|
+
- headers.print.cache_control_max_age_nocache
|
1453
|
+
- headers.profile.access_control_max_age
|
1454
|
+
- headers.profile.cache_control_max_age
|
1455
|
+
- headers.profile.cache_control_max_age_nocache
|
1456
|
+
- headers.raster.access_control_max_age
|
1457
|
+
- headers.raster.cache_control_max_age
|
1458
|
+
- headers.raster.cache_control_max_age_nocache
|
1459
|
+
- headers.shortener.access_control_max_age
|
1460
|
+
- headers.shortener.cache_control_max_age
|
1461
|
+
- headers.shortener.cache_control_max_age_nocache
|
1462
|
+
- headers.error.access_control_max_age
|
1463
|
+
- headers.error.cache_control_max_age
|
1464
|
+
- headers.error.cache_control_max_age_nocache
|
1465
|
+
- shortener.length
|
1466
|
+
- checker.fulltextsearch.level
|
1467
|
+
- checker.lang.level
|
1468
|
+
- checker.print.level
|
1469
|
+
- checker.themes.level
|
1470
|
+
- check_collector.max_level
|
1471
|
+
- check_collector.level
|
1472
|
+
|
1473
|
+
- expression: str({}).lower() in ("true", "yes", "1")
|
1474
|
+
vars:
|
1475
|
+
- authentication.two_factor
|
1476
|
+
- authentication.openid_connect.enabled
|
1477
|
+
- getitfixed.enabled
|
1478
|
+
- layers.geometry_validation
|
1479
|
+
- smtp.ssl
|
1480
|
+
- smtp.starttls
|
1481
|
+
- hide_capabilities
|
1482
|
+
- checker.forward_host
|
1483
|
+
- checker.fulltextsearch.disable
|
1484
|
+
- metrics.memory_maps_rss
|
1485
|
+
- metrics.memory_maps_size
|
1486
|
+
- metrics.memory_cache
|
1487
|
+
- metrics.memory_cache_all
|
1488
|
+
- metrics.raster_data
|
1489
|
+
- metrics.total_python_object_memory
|
1490
|
+
|
1491
|
+
no_interpreted:
|
1492
|
+
- admin_interface.available_functionalities[].description
|
1493
|
+
- admin_interface.available_metadata[].description
|
1494
|
+
- interfaces_config.default.static.angularLocaleScript.append
|
1495
|
+
- interfaces_config.default.constants.gmfMousePositionOptions.projections[].filter
|
1496
|
+
- interfaces_config.default.constants.gmfMobileMeasurePointOptions.format
|
1497
|
+
- interfaces_config.default.constants.ngeoStringToHtmlReplacements[].expression
|
1498
|
+
- interfaces_config.mobile.constants.gmfMousePositionOptions.projections[].filter
|
1499
|
+
- interfaces_config.mobile.constants.gmfMobileMeasurePointOptions.format
|
1500
|
+
- interfaces_config.mobile.constants.ngeoStringToHtmlReplacements[].expression
|
1501
|
+
- interfaces_config.desktop.constants.gmfMousePositionOptions.projections[].filter
|
1502
|
+
- interfaces_config.desktop.constants.gmfMobileMeasurePointOptions.format
|
1503
|
+
- interfaces_config.desktop.constants.ngeoStringToHtmlReplacements[].expression
|