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