c2cgeoportal-geoportal 2.5.0.100__py2.py3-none-any.whl → 2.7.1.156__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 +74 -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 +127 -97
  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 +102 -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 +162 -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 +67 -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 +110 -0
  96. c2cgeoportal_geoportal/scaffolds/create/{{cookiecutter.project}}/scripts/db-restore +114 -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 +1160 -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 +1410 -0
  105. c2cgeoportal_geoportal/scripts/__init__.py +18 -32
  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 +71 -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 +70 -54
  129. c2cgeoportal_geoportal/views/profile.py +25 -24
  130. c2cgeoportal_geoportal/views/proxy.py +100 -70
  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.156.dist-info}/METADATA +17 -11
  138. c2cgeoportal_geoportal-2.7.1.156.dist-info/RECORD +185 -0
  139. {c2cgeoportal_geoportal-2.5.0.100.dist-info → c2cgeoportal_geoportal-2.7.1.156.dist-info}/WHEEL +1 -1
  140. {c2cgeoportal_geoportal-2.5.0.100.dist-info → c2cgeoportal_geoportal-2.7.1.156.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.156.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,162 @@
1
+ #!/usr/bin/env python3
2
+
3
+ import argparse
4
+ import os
5
+ import os.path
6
+ import platform
7
+ import re
8
+ import shutil
9
+ import stat
10
+ import subprocess
11
+ import sys
12
+ import urllib.request
13
+ from typing import Any, Dict, List, Optional
14
+
15
+ import yaml
16
+
17
+
18
+ def run(args: argparse.Namespace, command: List[str], **kwargs: Any) -> None:
19
+ if args.verbose or args.dry_run:
20
+ print(" ".join(command))
21
+ if not args.dry_run:
22
+ subprocess.run(command, **kwargs) # nosec
23
+
24
+
25
+ def main() -> None:
26
+ parser = argparse.ArgumentParser(description="Build the project")
27
+ parser.add_argument("--verbose", action="store_true", help="Display the docker build commands")
28
+ parser.add_argument(
29
+ "--dry-run", action="store_true", help="Display the docker build commands without executing them"
30
+ )
31
+ parser.add_argument("--service", help="Build only the specified service")
32
+ parser.add_argument("--env", action="store_true", help="Build only the .env file")
33
+ parser.add_argument("--simple", action="store_true", help="Force simple application mode")
34
+ parser.add_argument("--not-simple", action="store_true", help="Force not simple application mode")
35
+ parser.add_argument("--upgrade", help="Start upgrading the project to version")
36
+ parser.add_argument(
37
+ "--fast-reload",
38
+ action="store_true",
39
+ help="Restart the composition without Redis to don't lost the cache",
40
+ )
41
+ parser.add_argument(
42
+ "--no-pull",
43
+ action="store_true",
44
+ default=os.environ.get("CI", "FALSE").upper() == "TRUE",
45
+ help="Do not pull external or base images for faster rebuild during development.",
46
+ )
47
+ parser.add_argument(
48
+ "--debug", help="Path to c2cgeoportal source folder to be able to debug the upgrade procedure"
49
+ )
50
+ parser.add_argument(
51
+ "--docker-compose-version-2", action="store_true", help="Use Docker Compose version 2"
52
+ )
53
+ parser.add_argument("env_files", nargs="*", help="The environment config")
54
+ args = parser.parse_args()
55
+
56
+ if args.upgrade:
57
+ major_version = args.upgrade
58
+ match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9]+$", args.upgrade)
59
+ if match is not None:
60
+ major_version = match.group(1)
61
+ match = re.match(r"^([0-9]+\.[0-9]+)\.[0-9a-z]+\.[0-9]+$", args.upgrade)
62
+ if match is not None:
63
+ major_version = match.group(1)
64
+ full_version = args.upgrade if args.upgrade != "master" else "latest"
65
+ with open("upgrade", "w", encoding="utf-8") as f:
66
+ with urllib.request.urlopen( # nosec
67
+ "https://raw.githubusercontent.com/camptocamp/c2cgeoportal/{major_version}/scripts/upgrade".format(
68
+ major_version=major_version
69
+ )
70
+ ) as result:
71
+ if result.code != 200:
72
+ print("ERROR:")
73
+ print(result.read())
74
+ sys.exit(1)
75
+ f.write(result.read().decode())
76
+ debug_args = []
77
+ if args.debug:
78
+ shutil.copyfile(os.path.join(args.debug, "scripts", "upgrade"), "upgrade")
79
+ debug_args = ["--debug", args.debug]
80
+ os.chmod("upgrade", os.stat("upgrade").st_mode | stat.S_IXUSR)
81
+ try:
82
+ if platform.system() == "Windows":
83
+ run(args, ["python", "upgrade", full_version] + debug_args, check=True)
84
+ else:
85
+ run(args, ["./upgrade", full_version] + debug_args, check=True)
86
+ except subprocess.CalledProcessError:
87
+ sys.exit(1)
88
+ sys.exit(0)
89
+
90
+ with open("project.yaml", encoding="utf-8") as project_file:
91
+ project_env = yaml.load(project_file, Loader=yaml.SafeLoader)["env"]
92
+ if len(args.env_files) != project_env["required_args"]:
93
+ print(project_env["help"])
94
+ sys.exit(1)
95
+ env_files = [e.format(*args.env_files) for e in project_env["files"]]
96
+ print("Use env files: {}".format(", ".join(env_files)))
97
+ for env_file in env_files:
98
+ if not os.path.exists(env_file):
99
+ print("Error: the env file '{env_file}' does not exist.".format(env_file=env_file))
100
+ sys.exit(1)
101
+
102
+ with open(".env", "w", encoding="utf-8") as dest:
103
+ for file_ in env_files:
104
+ with open(file_, encoding="utf-8") as src:
105
+ dest.write(src.read() + "\n")
106
+
107
+ simple = not os.path.exists("geoportal/Dockerfile")
108
+ if args.simple:
109
+ simple = True
110
+ if args.not_simple:
111
+ simple = False
112
+
113
+ git_hash = (
114
+ subprocess.run(["git", "rev-parse", "HEAD"], check=True, stdout=subprocess.PIPE)
115
+ .stdout.strip()
116
+ .decode()
117
+ )
118
+
119
+ dest.write("SIMPLE={}\n".format(str(simple).upper()))
120
+ dest.write("GIT_HASH={git_hash}\n".format(git_hash=git_hash))
121
+
122
+ dest.write("# Used env files: {}\n".format(", ".join(env_files)))
123
+
124
+ docker_compose = ["docker", "compose"] if args.docker_compose_version_2 else ["docker-compose"]
125
+ if not args.env:
126
+ docker_compose_build_cmd = [*docker_compose, "build"]
127
+
128
+ if not args.no_pull:
129
+ # Pull all the images
130
+ if not args.service:
131
+ run(args, [*docker_compose, "pull", "--ignore-pull-failures"], check=True) # nosec
132
+ docker_compose_build_cmd.append("--pull")
133
+
134
+ if args.service:
135
+ docker_compose_build_cmd.append(args.service)
136
+
137
+ print_args = [a.replace(" ", "\\ ") for a in docker_compose_build_cmd]
138
+ print_args = [a.replace('"', '\\"') for a in print_args]
139
+ print_args = [a.replace("'", "\\'") for a in print_args]
140
+ try:
141
+ run(args, docker_compose_build_cmd, check=True) # nosec
142
+ except subprocess.CalledProcessError as e:
143
+ print("Error with command: " + " ".join(print_args))
144
+ sys.exit(e.returncode)
145
+
146
+ if args.fast_reload:
147
+ services = [
148
+ service
149
+ for service in subprocess.run(
150
+ [*docker_compose, "ps", "--services", "--all"], stdout=subprocess.PIPE, check=True
151
+ )
152
+ .stdout.decode()
153
+ .splitlines()
154
+ if not service.startswith("redis")
155
+ ]
156
+
157
+ run(args, [*docker_compose, "rm", "--stop", "--force"] + services, check=True)
158
+ run(args, [*docker_compose, "up", "-d"], check=True)
159
+
160
+
161
+ if __name__ == "__main__":
162
+ main()
@@ -0,0 +1,25 @@
1
+ # yaml-language-server: $schema=https://raw.githubusercontent.com/camptocamp/c2cciutils/master/c2cciutils/schema.json
2
+
3
+ checks:
4
+ black: False
5
+ isort: False
6
+ prettier: False
7
+ codespell: False
8
+ eof: False
9
+ required_workflows: False
10
+ dependabot_config: False
11
+ prospector_config: False
12
+ setup: False
13
+
14
+ version:
15
+ branch_to_version_re:
16
+ - from: (prod-[0-9]+-[0-9]+)
17
+ to: \1
18
+ - from: (int-[0-9]+-[0-9]+)
19
+ to: \1
20
+
21
+ publish:
22
+ pypi: false
23
+ docker:
24
+ images:
25
+ - name: camptocamp/{{cookiecutter.package}}-config
@@ -0,0 +1,474 @@
1
+ ---
2
+ version: '2.3'
3
+
4
+ services:
5
+ config:
6
+ image: ${DOCKER_BASE}-config:${DOCKER_TAG}
7
+ build:
8
+ context: .
9
+ args:
10
+ SIMPLE: ${SIMPLE}
11
+ PGSCHEMA: ${PGSCHEMA}
12
+ GEOMAPFISH_VERSION: ${GEOMAPFISH_VERSION}
13
+ GEOMAPFISH_MAIN_VERSION: ${GEOMAPFISH_MAIN_VERSION}
14
+ GEOMAPFISH_MAIN_MINOR_VERSION: ${GEOMAPFISH_MAIN_MINOR_VERSION}
15
+ user: www-data
16
+ environment:
17
+ - VISIBLE_WEB_HOST
18
+ - VISIBLE_WEB_PROTOCOL
19
+ - VISIBLE_ENTRY_POINT
20
+ - PGHOST
21
+ - PGHOST_SLAVE
22
+ - PGPORT
23
+ - PGPORT_SLAVE
24
+ - PGUSER
25
+ - PGPASSWORD
26
+ - PGDATABASE
27
+ - PGSSLMODE
28
+ - PGSCHEMA_STATIC
29
+ - SRID
30
+ - SQLALCHEMY_POOL_RECYCLE
31
+ - SQLALCHEMY_POOL_SIZE
32
+ - SQLALCHEMY_MAX_OVERFLOW
33
+ - SQLALCHEMY_SLAVE_POOL_RECYCLE
34
+ - SQLALCHEMY_SLAVE_POOL_SIZE
35
+ - SQLALCHEMY_SLAVE_MAX_OVERFLOW
36
+ - GEOPORTAL_INTERNAL_URL
37
+ - GEOPORTAL_INTERNAL_HOST
38
+ - GEOPORTAL_INTERNAL_PORT
39
+ - TILECLOUDCHAIN_INTERNAL_URL
40
+ - TILECLOUDCHAIN_INTERNAL_HOST
41
+ - TILECLOUDCHAIN_INTERNAL_PORT
42
+ - MUTUALIZED_PRINT_URL
43
+ - DISABLE_MUTUALIZED_PRINT
44
+ - DISABLE_LOCAL_PRINT
45
+ - DISABLE_MUTUALIZE
46
+ - DISABLE_LOCAL
47
+ - MAPSERVER_URL
48
+ - QGISSERVER_URL
49
+ - REDIS_HOST
50
+ - REDIS_PORT
51
+ - REDIS_DB
52
+ - REDIS_SERVICENAME
53
+ - REDIS_TIMEOUT
54
+ - TILEGENERATION_SQS_QUEUE
55
+ - TILEGENERATION_S3_BUCKET
56
+ - AWS_ACCESS_KEY_ID
57
+ - AWS_SECRET_ACCESS_KEY
58
+ - AWS_DEFAULT_REGION
59
+ - AWS_S3_ENDPOINT
60
+ - AZURE_STORAGE_CONNECTION_STRING
61
+ - AZURE_STORAGE_ACCOUNT
62
+ - AZURE_STORAGE_ACCESS_TOKEN
63
+ - AZURE_STORAGE_ACCESS_KEY
64
+ - AZURE_STORAGE_SAS_TOKEN
65
+ - TILEGENERATION_AZURE_CONTAINER
66
+ - RASTER_BASE_PATH
67
+
68
+ print:
69
+ image: camptocamp/mapfish_print:3.28
70
+ user: www-data
71
+ restart: unless-stopped
72
+ environment:
73
+ - CATALINA_OPTS
74
+ - PGOPTIONS
75
+
76
+ mapserver:
77
+ image: camptocamp/mapserver:7.6-gdal3.7
78
+ user: www-data
79
+ restart: unless-stopped
80
+ entrypoint: []
81
+ environment:
82
+ - PGOPTIONS
83
+
84
+ qgisserver:
85
+ image: camptocamp/geomapfish-qgisserver:gmf${GEOMAPFISH_MAIN_VERSION}-qgis${QGIS_VERSION}
86
+ user: www-data
87
+ restart: unless-stopped
88
+ environment:
89
+ - C2C_REDIS_URL
90
+ - C2C_REDIS_SENTINELS
91
+ - C2C_REDIS_TIMEOUT
92
+ - C2C_REDIS_SERVICENAME
93
+ - C2C_REDIS_DB
94
+ - C2C_BROADCAST_PREFIX
95
+ - PGOPTIONS
96
+ - AWS_ACCESS_KEY_ID
97
+ - AWS_SECRET_ACCESS_KEY
98
+ - AWS_DEFAULT_REGION
99
+ - AWS_S3_ENDPOINT
100
+ - AZURE_STORAGE_CONNECTION_STRING
101
+ - AZURE_STORAGE_ACCOUNT
102
+ - AZURE_STORAGE_ACCESS_TOKEN
103
+ - AZURE_STORAGE_ACCESS_KEY
104
+ - AZURE_STORAGE_SAS_TOKEN
105
+ - CPL_VSIL_CURL_USE_CACHE
106
+ - CPL_VSIL_CURL_CACHE_SIZE
107
+ - CPL_VSIL_CURL_USE_HEAD
108
+ - GDAL_DISABLE_READDIR_ON_OPEN
109
+ - QGIS_SERVER_LOG_LEVEL=2
110
+ - QGIS_AUTH_DB_DIR_PATH
111
+ - QGIS_SERVER_IGNORE_BAD_LAYERS
112
+ - QGIS_SERVER_DISABLE_GETPRINT
113
+ - PGSERVICEFILE
114
+ - LOG_LEVEL=INFO
115
+ - LOG_TYPE
116
+ - C2CGEOPORTAL_LOG_LEVEL
117
+ - SQL_LOG_LEVEL
118
+ - OTHER_LOG_LEVEL
119
+ - GEOMAPFISH_ACCESSCONTROL_BASE_URL=${QGISSERVER_URL}
120
+ - QGIS_SERVER_TRUST_LAYER_METADATA=TRUE
121
+ - QGIS_SERVER_PARALLEL_RENDERING=FALSE
122
+ - MAX_CACHE_LAYERS=100
123
+ - QGIS_SERVER_IGNORE_BAD_LAYERS=TRUE
124
+ - QGIS_SERVER_CACHE_SIZE=60 # MB
125
+ - QGIS_SERVER_WMS_MAX_HEIGHT=5000
126
+ - QGIS_SERVER_WMS_MAX_WIDTH=5000
127
+ - QGIS_SERVER_API_WFS3_MAX_LIMIT=10000
128
+ - QGIS_SERVER_DISABLE_GETPRINT=TRUE
129
+ - QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES=/etc/qgisserver/
130
+ - QGIS_SERVER_OVERRIDE_SYSTEM_LOCALE=fr
131
+ - QGIS_AUTH_DB_DIR_PATH=/etc/qgisserver/
132
+ - PGSERVICEFILE=/etc/qgisserver/pg_service.conf
133
+
134
+ tinyows:
135
+ image: camptocamp/tinyows:master
136
+ user: www-data
137
+ restart: unless-stopped
138
+
139
+ redis:
140
+ image: &redis-image redis:6
141
+ user: www-data
142
+ restart: unless-stopped
143
+ command:
144
+ - redis-server
145
+ - --save
146
+ - ''
147
+ - --appendonly
148
+ - 'no'
149
+ - --maxmemory
150
+ - 512mb
151
+ - --maxmemory-policy
152
+ - volatile-lru
153
+ - --tcp-keepalive
154
+ - '30'
155
+
156
+ redis_master:
157
+ image: *redis-image
158
+
159
+ redis_slave:
160
+ image: *redis-image
161
+ command: redis-server --slaveof redis_master 6379
162
+
163
+ redis_sentinel:
164
+ image: camptocamp/c2cwsgiutils-redis-sentinel:6
165
+ environment:
166
+ - MASTER_NAME=mymaster
167
+ - QUORUM=1
168
+ - MASTER=redis_master
169
+
170
+ tilecloudchain:
171
+ image: &tilecloudchain-image camptocamp/tilecloud-chain:1.17
172
+ user: www-data
173
+ restart: unless-stopped
174
+ environment:
175
+ - DEVELOPMENT
176
+ - VISIBLE_ENTRY_POINT
177
+ - TILEGENERATION_CONFIGFILE=/etc/tilegeneration/config.yaml
178
+ - AWS_ACCESS_KEY_ID
179
+ - AWS_SECRET_ACCESS_KEY
180
+ - AZURE_STORAGE_CONNECTION_STRING
181
+ - AZURE_STORAGE_ACCOUNT
182
+ - AZURE_STORAGE_ACCESS_TOKEN
183
+ - AZURE_STORAGE_ACCESS_KEY
184
+ - AZURE_STORAGE_SAS_TOKEN
185
+ - AZURE_STORAGE_ACCOUNT_URL
186
+ - C2C_BASE_PATH
187
+ - C2C_REDIS_URL
188
+ - C2C_REDIS_SENTINELS
189
+ - C2C_REDIS_TIMEOUT
190
+ - C2C_REDIS_SERVICENAME
191
+ - C2C_REDIS_DB
192
+ - C2C_BASE_PATH=/tiles/c2c
193
+ - C2C_BROADCAST_PREFIX=broadcast_tilecloudchain_
194
+ - C2C_REQUESTS_DEFAULT_TIMEOUT
195
+ - C2C_LOG_VIEW_ENABLED=TRUE
196
+ - C2C_DEBUG_VIEW_ENABLED=TRUE
197
+ - C2C_SQL_PROFILER_ENABLED=TRUE
198
+ - C2C_PROFILER_PATH
199
+ - C2C_PROFILER_MODULES
200
+ - C2C_SECRET
201
+ - TILECLOUD_LOG_LEVEL
202
+ - TILECLOUD_CHAIN_LOG_LEVEL
203
+ - C2CWSGI_LOG_LEVEL
204
+ - OTHER_LOG_LEVEL
205
+ - LOG_TYPE
206
+
207
+ tilegeneration_slave:
208
+ image: *tilecloudchain-image
209
+ user: www-data
210
+ restart: unless-stopped
211
+ entrypoint:
212
+ - generate_tiles
213
+ - --role=slave
214
+ - --daemon
215
+ environment:
216
+ - AWS_ACCESS_KEY_ID
217
+ - AWS_SECRET_ACCESS_KEY
218
+ - AZURE_STORAGE_CONNECTION_STRING
219
+ - AZURE_STORAGE_ACCOUNT
220
+ - AZURE_STORAGE_ACCESS_TOKEN
221
+ - AZURE_STORAGE_ACCESS_KEY
222
+ - AZURE_STORAGE_SAS_TOKEN
223
+ - AZURE_STORAGE_ACCOUNT_URL
224
+
225
+ geoportal:
226
+ image: camptocamp/geomapfishapp-geoportal:${GEOMAPFISH_MAIN_MINOR_VERSION}
227
+ user: www-data
228
+ restart: unless-stopped
229
+ environment: &geoportal-env
230
+ - DEVELOPMENT
231
+ - VISIBLE_ENTRY_POINT
232
+ - PACKAGE
233
+ - PGHOST
234
+ - PGHOST_SLAVE
235
+ - PGPORT
236
+ - PGPORT_SLAVE
237
+ - PGUSER
238
+ - PGPASSWORD
239
+ - PGDATABASE
240
+ - PGSSLMODE
241
+ - PGSCHEMA
242
+ - PGSCHEMA_STATIC
243
+ - PGOPTIONS
244
+ - SQLALCHEMY_POOL_RECYCLE
245
+ - SQLALCHEMY_POOL_SIZE
246
+ - SQLALCHEMY_MAX_OVERFLOW
247
+ - SQLALCHEMY_SLAVE_POOL_RECYCLE
248
+ - SQLALCHEMY_SLAVE_POOL_SIZE
249
+ - SQLALCHEMY_SLAVE_MAX_OVERFLOW
250
+ - AWS_ACCESS_KEY_ID
251
+ - AWS_SECRET_ACCESS_KEY
252
+ - AWS_DEFAULT_REGION
253
+ - AWS_S3_ENDPOINT
254
+ - AZURE_STORAGE_CONNECTION_STRING
255
+ - AZURE_STORAGE_ACCOUNT
256
+ - AZURE_STORAGE_ACCESS_TOKEN
257
+ - AZURE_STORAGE_ACCESS_KEY
258
+ - AZURE_STORAGE_SAS_TOKEN
259
+ - VISIBLE_WEB_HOST
260
+ - VISIBLE_WEB_PROTOCOL
261
+ - AUTHTKT_TIMEOUT
262
+ - AUTHTKT_REISSUE_TIME
263
+ - AUTHTKT_MAXAGE
264
+ - AUTHTKT_SECRET
265
+ - AUTHTKT_COOKIENAME
266
+ - AUTHTKT_HTTP_ONLY
267
+ - AUTHTKT_SECURE
268
+ - AUTHTKT_SAMESITE
269
+ - BASICAUTH
270
+ - TINYOWS_URL
271
+ - MAPSERVER_URL
272
+ - QGISSERVER_URL
273
+ - PRINT_URL
274
+ - DEVSERVER_HOST
275
+ - REDIS_HOST
276
+ - REDIS_PORT
277
+ - REDIS_DB
278
+ - REDIS_SERVICENAME
279
+ - REDIS_TIMEOUT
280
+ - C2C_BASE_PATH
281
+ - C2C_REDIS_URL
282
+ - C2C_REDIS_SENTINELS
283
+ - C2C_REDIS_TIMEOUT
284
+ - C2C_REDIS_SERVICENAME
285
+ - C2C_REDIS_DB
286
+ - C2C_BROADCAST_PREFIX
287
+ - C2C_REQUESTS_DEFAULT_TIMEOUT
288
+ - C2C_LOG_VIEW_ENABLED=TRUE
289
+ - C2C_SQL_PROFILER_ENABLED=TRUE
290
+ - C2C_PROFILER_PATH
291
+ - C2C_PROFILER_MODULES
292
+ - C2C_DEBUG_VIEW_ENABLED=TRUE
293
+ - C2C_SECRET
294
+ - LOG_LEVEL
295
+ - C2CGEOPORTAL_LOG_LEVEL
296
+ - SQL_LOG_LEVEL
297
+ - GUNICORN_LOG_LEVEL
298
+ - OTHER_LOG_LEVEL
299
+ - DOGPILECACHE_LOG_LEVEL
300
+ - C2CWSGIUTILS_LOG_LEVEL
301
+ - LOG_TYPE
302
+ - C2CGEOPORTAL_THEME_TIMEOUT=300
303
+
304
+ geoportal-advance:
305
+ image: ${DOCKER_BASE}-geoportal:${DOCKER_TAG}
306
+ build: &geoportal-build
307
+ context: geoportal
308
+ args:
309
+ GIT_HASH: ${GIT_HASH}
310
+ PGSCHEMA: ${PGSCHEMA}
311
+ GEOMAPFISH_VERSION: ${GEOMAPFISH_VERSION}
312
+ GEOMAPFISH_MAIN_VERSION: ${GEOMAPFISH_MAIN_VERSION}
313
+ GEOMAPFISH_MAIN_MINOR_VERSION: ${GEOMAPFISH_MAIN_MINOR_VERSION}
314
+ user: www-data
315
+ restart: unless-stopped
316
+ environment: *geoportal-env
317
+
318
+ tools:
319
+ image: camptocamp/geomapfish-tools:${GEOMAPFISH_VERSION}
320
+ restart: unless-stopped
321
+ volumes:
322
+ - .:/src
323
+ environment:
324
+ - PGSCHEMA
325
+ # From geoportal
326
+ - DEVELOPMENT
327
+ - VISIBLE_ENTRY_POINT
328
+ - PACKAGE
329
+ - PGHOST
330
+ - PGHOST_SLAVE
331
+ - PGPORT
332
+ - PGPORT_SLAVE
333
+ - PGUSER
334
+ - PGPASSWORD
335
+ - PGDATABASE
336
+ - PGSSLMODE
337
+ - PGSCHEMA_STATIC
338
+ - PGOPTIONS
339
+ - AWS_ACCESS_KEY_ID
340
+ - AWS_SECRET_ACCESS_KEY
341
+ - AWS_DEFAULT_REGION
342
+ - AWS_S3_ENDPOINT
343
+ - AZURE_STORAGE_CONNECTION_STRING
344
+ - AZURE_STORAGE_ACCOUNT
345
+ - AZURE_STORAGE_ACCESS_TOKEN
346
+ - AZURE_STORAGE_ACCESS_KEY
347
+ - AZURE_STORAGE_SAS_TOKEN
348
+ - VISIBLE_WEB_HOST
349
+ - VISIBLE_WEB_PROTOCOL
350
+ - AUTHTKT_TIMEOUT
351
+ - AUTHTKT_REISSUE_TIME
352
+ - AUTHTKT_MAXAGE
353
+ - AUTHTKT_SECRET
354
+ - AUTHTKT_COOKIENAME
355
+ - AUTHTKT_HTTP_ONLY
356
+ - AUTHTKT_SECURE
357
+ - AUTHTKT_SAMESITE
358
+ - BASICAUTH
359
+ - TINYOWS_URL
360
+ - MAPSERVER_URL
361
+ - QGISSERVER_URL
362
+ - PRINT_URL
363
+ - DEVSERVER_HOST
364
+ - REDIS_HOST
365
+ - REDIS_PORT
366
+ - REDIS_DB
367
+ - REDIS_SERVICENAME
368
+ - REDIS_TIMEOUT
369
+ - C2C_BASE_PATH
370
+ - C2C_REDIS_URL
371
+ - C2C_REDIS_SENTINELS
372
+ - C2C_REDIS_TIMEOUT
373
+ - C2C_REDIS_SERVICENAME
374
+ - C2C_REDIS_DB
375
+ - C2C_BROADCAST_PREFIX
376
+ - C2C_REQUESTS_DEFAULT_TIMEOUT
377
+ - C2C_LOG_VIEW_ENABLED=TRUE
378
+ - C2C_SQL_PROFILER_ENABLED=TRUE
379
+ - C2C_PROFILER_PATH
380
+ - C2C_PROFILER_MODULES
381
+ - C2C_DEBUG_VIEW_ENABLED=TRUE
382
+ - C2C_SECRET
383
+ - LOG_LEVEL
384
+ - C2CGEOPORTAL_LOG_LEVEL
385
+ - SQL_LOG_LEVEL
386
+ - GUNICORN_LOG_LEVEL
387
+ - OTHER_LOG_LEVEL
388
+ - DOGPILECACHE_LOG_LEVEL
389
+ - C2CWSGIUTILS_LOG_LEVEL
390
+ - LOG_TYPE
391
+ - SUFFIX=
392
+
393
+ alembic: &alembic
394
+ image: camptocamp/geomapfishapp-geoportal:${GEOMAPFISH_MAIN_VERSION}
395
+ user: www-data
396
+ entrypoint: []
397
+ command:
398
+ - alembic
399
+ - --name=static
400
+ - upgrade
401
+ - head
402
+ environment:
403
+ - PGHOST
404
+ - PGHOST_SLAVE
405
+ - PGPORT
406
+ - PGPORT_SLAVE
407
+ - PGUSER
408
+ - PGPASSWORD
409
+ - PGDATABASE
410
+ - PGSSLMODE
411
+ - PGSCHEMA
412
+ - PGSCHEMA_STATIC
413
+ - LOG_TYPE
414
+
415
+ alembic-advance:
416
+ <<: *alembic
417
+ image: ${DOCKER_BASE}-geoportal:${DOCKER_TAG}
418
+ build: *geoportal-build
419
+
420
+ front:
421
+ image: haproxy:2.3
422
+ restart: unless-stopped
423
+ volumes:
424
+ - ${FRONT_LOG_DIRECTORY}:/dev/log:rw
425
+ command:
426
+ - haproxy
427
+ - -f
428
+ - /etc/${FRONT_CONFIG}
429
+ ports:
430
+ - ${DOCKER_PORT}:${FRONT_INNER_PORT}
431
+
432
+ webpack_dev_server:
433
+ image: ${DOCKER_BASE}-geoportal-dev:${DOCKER_TAG}
434
+ build:
435
+ context: geoportal
436
+ target: builder
437
+ args:
438
+ GEOMAPFISH_VERSION: ${GEOMAPFISH_VERSION}
439
+ GEOMAPFISH_MAIN_VERSION: ${GEOMAPFISH_MAIN_VERSION}
440
+ GEOMAPFISH_MAIN_MINOR_VERSION: ${GEOMAPFISH_MAIN_MINOR_VERSION}
441
+ volumes:
442
+ - ./geoportal/${PACKAGE}_geoportal/static-ngeo:/app/${PACKAGE}_geoportal/static-ngeo
443
+ environment:
444
+ - VISIBLE_ENTRY_POINT
445
+ - VISIBLE_WEB_HOST
446
+ - VISIBLE_WEB_PROTOCOL
447
+ - PGHOST
448
+ - PGHOST_SLAVE
449
+ - PGPORT
450
+ - PGPORT_SLAVE
451
+ - PGUSER
452
+ - PGPASSWORD
453
+ - PGDATABASE
454
+ - PGSSLMODE
455
+ - PGSCHEMA_STATIC
456
+ - AWS_ACCESS_KEY_ID
457
+ - AWS_SECRET_ACCESS_KEY
458
+ - AWS_DEFAULT_REGION
459
+ - AWS_S3_ENDPOINT
460
+ - AZURE_STORAGE_CONNECTION_STRING
461
+ - AZURE_STORAGE_ACCOUNT
462
+ - AZURE_STORAGE_ACCESS_TOKEN
463
+ - AZURE_STORAGE_ACCESS_KEY
464
+ - AZURE_STORAGE_SAS_TOKEN
465
+
466
+ db:
467
+ image: camptocamp/postgres:${POSTGRES_TAG}
468
+ environment:
469
+ - PGUSER
470
+ - PGPASSWORD
471
+ - PGDATABASE
472
+ - POSTGRES_PASSWORD=${PGPASSWORD}
473
+ - POSTGRES_DB=${PGDATABASE}
474
+ - POSTGRES_USER=${PGUSER}