kinto 18.0.0__tar.gz → 19.3.2__tar.gz

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.

Potentially problematic release.


This version of kinto might be problematic. Click here for more details.

Files changed (398) hide show
  1. {kinto-18.0.0 → kinto-19.3.2}/.github/workflows/publish.yml +3 -3
  2. {kinto-18.0.0 → kinto-19.3.2}/.github/workflows/test.yml +8 -8
  3. {kinto-18.0.0 → kinto-19.3.2}/Dockerfile +13 -16
  4. {kinto-18.0.0 → kinto-19.3.2}/Makefile +16 -7
  5. {kinto-18.0.0/kinto.egg-info → kinto-19.3.2}/PKG-INFO +7 -6
  6. {kinto-18.0.0 → kinto-19.3.2}/README.rst +2 -2
  7. {kinto-18.0.0 → kinto-19.3.2}/constraints.in +2 -1
  8. {kinto-18.0.0 → kinto-19.3.2}/constraints.txt +72 -104
  9. {kinto-18.0.0 → kinto-19.3.2}/docs/community.rst +2 -11
  10. {kinto-18.0.0 → kinto-19.3.2}/docs/conf.py +0 -3
  11. {kinto-18.0.0 → kinto-19.3.2}/docs/configuration/production.rst +2 -7
  12. {kinto-18.0.0 → kinto-19.3.2}/docs/configuration/settings.rst +126 -84
  13. kinto-19.3.2/docs/requirements.txt +12 -0
  14. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/install.rst +2 -2
  15. {kinto-18.0.0 → kinto-19.3.2}/kinto/__init__.py +1 -0
  16. {kinto-18.0.0 → kinto-19.3.2}/kinto/__main__.py +1 -2
  17. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/__init__.py +7 -7
  18. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/initialization.py +159 -55
  19. kinto-19.3.2/kinto/core/metrics.py +93 -0
  20. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/permission/postgresql/__init__.py +9 -9
  21. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/resource/__init__.py +9 -4
  22. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/resource/schema.py +1 -2
  23. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/scripts.py +1 -0
  24. kinto-19.3.2/kinto/core/statsd.py +1 -0
  25. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/exceptions.py +1 -2
  26. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/client.py +2 -2
  27. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/utils.py +1 -0
  28. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/testing.py +5 -1
  29. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/utils.py +11 -2
  30. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/views/errors.py +2 -3
  31. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/accounts/__init__.py +1 -2
  32. kinto-19.3.2/kinto/plugins/admin/VERSION +1 -0
  33. kinto-19.3.2/kinto/plugins/admin/build/VERSION +1 -0
  34. kinto-19.3.2/kinto/plugins/admin/build/assets/asn1-CGOzndHr.js +1 -0
  35. kinto-19.3.2/kinto/plugins/admin/build/assets/clojure-BMjYHr_A.js +1 -0
  36. kinto-19.3.2/kinto/plugins/admin/build/assets/css-BnMrqG3P.js +1 -0
  37. kinto-19.3.2/kinto/plugins/admin/build/assets/index-BKIg2XW8.js +165 -0
  38. kinto-19.3.2/kinto/plugins/admin/build/assets/index-D8oiN37x.css +6 -0
  39. kinto-19.3.2/kinto/plugins/admin/build/assets/javascript-iSgyE4tI.js +1 -0
  40. kinto-19.3.2/kinto/plugins/admin/build/assets/logo-VBRiKSPX.png +0 -0
  41. kinto-19.3.2/kinto/plugins/admin/build/assets/mllike-C_8OmSiT.js +1 -0
  42. kinto-19.3.2/kinto/plugins/admin/build/assets/python-BuPzkPfP.js +1 -0
  43. kinto-19.3.2/kinto/plugins/admin/build/assets/rpm-CTu-6PCP.js +1 -0
  44. kinto-19.3.2/kinto/plugins/admin/build/assets/sql-C4g8LzGK.js +1 -0
  45. kinto-19.3.2/kinto/plugins/admin/build/assets/ttcn-cfg-BIkV9KBc.js +1 -0
  46. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/admin/build/index.html +2 -2
  47. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/admin/public/help.html +2 -2
  48. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/admin/views.py +1 -1
  49. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/default_bucket/__init__.py +1 -2
  50. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/flush.py +1 -1
  51. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/history/__init__.py +5 -6
  52. kinto-19.3.2/kinto/plugins/prometheus.py +186 -0
  53. kinto-19.3.2/kinto/plugins/quotas/__init__.py +21 -0
  54. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/quotas/scripts.py +1 -0
  55. kinto-19.3.2/kinto/plugins/statsd.py +78 -0
  56. {kinto-18.0.0 → kinto-19.3.2/kinto.egg-info}/PKG-INFO +7 -6
  57. {kinto-18.0.0 → kinto-19.3.2}/kinto.egg-info/SOURCES.txt +22 -3
  58. {kinto-18.0.0 → kinto-19.3.2}/kinto.egg-info/requires.txt +2 -1
  59. {kinto-18.0.0 → kinto-19.3.2}/pyproject.toml +4 -3
  60. kinto-19.3.2/scripts/pull-kinto-admin.sh +12 -0
  61. kinto-19.3.2/tests/browser.py +38 -0
  62. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_events.py +24 -6
  63. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_filter.py +13 -0
  64. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_sync.py +1 -1
  65. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_views.py +4 -5
  66. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_views_cors.py +17 -1
  67. {kinto-18.0.0 → kinto-19.3.2}/tests/core/support.py +1 -1
  68. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_authentication.py +3 -3
  69. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_initialization.py +206 -59
  70. kinto-19.3.2/tests/core/test_metrics.py +49 -0
  71. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_scripts.py +2 -2
  72. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_storage.py +2 -2
  73. kinto-19.3.2/tests/core/testplugin/__init__.py +52 -0
  74. {kinto-18.0.0 → kinto-19.3.2}/tests/functional.ini +1 -0
  75. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/test_accounts.py +3 -3
  76. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/test_history.py +23 -21
  77. kinto-19.3.2/tests/plugins/test_prometheus.py +142 -0
  78. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/test_quotas.py +23 -20
  79. kinto-19.3.2/tests/plugins/test_statsd.py +81 -0
  80. {kinto-18.0.0 → kinto-19.3.2}/tests/support.py +1 -1
  81. {kinto-18.0.0 → kinto-19.3.2}/tests/test_scripts.py +2 -2
  82. kinto-19.3.2/tests/test_views_metrics.py +45 -0
  83. kinto-18.0.0/docs/requirements.txt +0 -12
  84. kinto-18.0.0/kinto/core/statsd.py +0 -63
  85. kinto-18.0.0/kinto/plugins/admin/VERSION +0 -1
  86. kinto-18.0.0/kinto/plugins/quotas/__init__.py +0 -22
  87. kinto-18.0.0/scripts/build-kinto-admin.sh +0 -29
  88. kinto-18.0.0/tests/browser.py +0 -68
  89. kinto-18.0.0/tests/core/test_statsd.py +0 -120
  90. kinto-18.0.0/tests/core/testplugin/__init__.py +0 -19
  91. {kinto-18.0.0 → kinto-19.3.2}/.dockerignore +0 -0
  92. {kinto-18.0.0 → kinto-19.3.2}/.github/CODE_OF_CONDUCT.md +0 -0
  93. {kinto-18.0.0 → kinto-19.3.2}/.github/CONTRIBUTING.md +0 -0
  94. {kinto-18.0.0 → kinto-19.3.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  95. {kinto-18.0.0 → kinto-19.3.2}/.github/dependabot.yml +0 -0
  96. {kinto-18.0.0 → kinto-19.3.2}/.github/release.yml +0 -0
  97. {kinto-18.0.0 → kinto-19.3.2}/.github/workflows/labels.yaml +0 -0
  98. {kinto-18.0.0 → kinto-19.3.2}/.gitignore +0 -0
  99. {kinto-18.0.0 → kinto-19.3.2}/CHANGELOG.rst +0 -0
  100. {kinto-18.0.0 → kinto-19.3.2}/CONTRIBUTORS.rst +0 -0
  101. {kinto-18.0.0 → kinto-19.3.2}/LICENSE +0 -0
  102. {kinto-18.0.0 → kinto-19.3.2}/SECURITY.md +0 -0
  103. {kinto-18.0.0 → kinto-19.3.2}/SUPPORT.md +0 -0
  104. {kinto-18.0.0 → kinto-19.3.2}/app.wsgi +0 -0
  105. {kinto-18.0.0 → kinto-19.3.2}/contribute.json +0 -0
  106. {kinto-18.0.0 → kinto-19.3.2}/docker-compose.yml +0 -0
  107. {kinto-18.0.0 → kinto-19.3.2}/docs/_static/piwik.js +0 -0
  108. {kinto-18.0.0 → kinto-19.3.2}/docs/_static/theme_overrides.css +0 -0
  109. {kinto-18.0.0 → kinto-19.3.2}/docs/_templates/footer.html +0 -0
  110. {kinto-18.0.0 → kinto-19.3.2}/docs/_templates/indexcontent.html +0 -0
  111. {kinto-18.0.0 → kinto-19.3.2}/docs/_templates/layout.html +0 -0
  112. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-delete-list.rst +0 -0
  113. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-delete-object.rst +0 -0
  114. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-get-list.rst +0 -0
  115. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-get-object.rst +0 -0
  116. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-head-list.rst +0 -0
  117. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-patch-object.rst +0 -0
  118. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-post-list.rst +0 -0
  119. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_details-put-object.rst +0 -0
  120. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_status-delete-list.rst +0 -0
  121. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_status-delete-object.rst +0 -0
  122. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_status-get-list.rst +0 -0
  123. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_status-get-object.rst +0 -0
  124. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_status-patch-object.rst +0 -0
  125. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_status-post-list.rst +0 -0
  126. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/_status-put-object.rst +0 -0
  127. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/accounts.rst +0 -0
  128. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/admin.rst +0 -0
  129. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/authentication.rst +0 -0
  130. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/backoff.rst +0 -0
  131. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/batch.rst +0 -0
  132. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/buckets.rst +0 -0
  133. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/collections.rst +0 -0
  134. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/deprecation.rst +0 -0
  135. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/errors.rst +0 -0
  136. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/filtering.rst +0 -0
  137. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/flush.rst +0 -0
  138. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/groups.rst +0 -0
  139. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/history.rst +0 -0
  140. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/index.rst +0 -0
  141. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/openapi.rst +0 -0
  142. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/openid.rst +0 -0
  143. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/pagination.rst +0 -0
  144. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/permissions.rst +0 -0
  145. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/quotas.rst +0 -0
  146. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/records.rst +0 -0
  147. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/selecting_fields.rst +0 -0
  148. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/sorting.rst +0 -0
  149. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/timestamps.rst +0 -0
  150. {kinto-18.0.0 → kinto-19.3.2}/docs/api/1.x/utilities.rst +0 -0
  151. {kinto-18.0.0 → kinto-19.3.2}/docs/api/index.rst +0 -0
  152. {kinto-18.0.0 → kinto-19.3.2}/docs/api/versioning.rst +0 -0
  153. {kinto-18.0.0 → kinto-19.3.2}/docs/changelog.rst +0 -0
  154. {kinto-18.0.0 → kinto-19.3.2}/docs/commandline.rst +0 -0
  155. {kinto-18.0.0 → kinto-19.3.2}/docs/concepts.rst +0 -0
  156. {kinto-18.0.0 → kinto-19.3.2}/docs/configuration/good-practices.rst +0 -0
  157. {kinto-18.0.0 → kinto-19.3.2}/docs/configuration/index.rst +0 -0
  158. {kinto-18.0.0 → kinto-19.3.2}/docs/core/_static/theme_overrides.css +0 -0
  159. {kinto-18.0.0 → kinto-19.3.2}/docs/core/api.rst +0 -0
  160. {kinto-18.0.0 → kinto-19.3.2}/docs/core/cache.rst +0 -0
  161. {kinto-18.0.0 → kinto-19.3.2}/docs/core/decorators.rst +0 -0
  162. {kinto-18.0.0 → kinto-19.3.2}/docs/core/errors.rst +0 -0
  163. {kinto-18.0.0 → kinto-19.3.2}/docs/core/glossary.rst +0 -0
  164. {kinto-18.0.0 → kinto-19.3.2}/docs/core/images/cliquet-base.png +0 -0
  165. {kinto-18.0.0 → kinto-19.3.2}/docs/core/images/cliquet-mozilla.png +0 -0
  166. {kinto-18.0.0 → kinto-19.3.2}/docs/core/index.rst +0 -0
  167. {kinto-18.0.0 → kinto-19.3.2}/docs/core/notifications.rst +0 -0
  168. {kinto-18.0.0 → kinto-19.3.2}/docs/core/permission.rst +0 -0
  169. {kinto-18.0.0 → kinto-19.3.2}/docs/core/quickstart.rst +0 -0
  170. {kinto-18.0.0 → kinto-19.3.2}/docs/core/rationale.rst +0 -0
  171. {kinto-18.0.0 → kinto-19.3.2}/docs/core/resource.rst +0 -0
  172. {kinto-18.0.0 → kinto-19.3.2}/docs/core/storage.rst +0 -0
  173. {kinto-18.0.0 → kinto-19.3.2}/docs/core/testing.rst +0 -0
  174. {kinto-18.0.0 → kinto-19.3.2}/docs/core/utils.rst +0 -0
  175. {kinto-18.0.0 → kinto-19.3.2}/docs/core/viewsets.rst +0 -0
  176. {kinto-18.0.0 → kinto-19.3.2}/docs/faq.rst +0 -0
  177. {kinto-18.0.0 → kinto-19.3.2}/docs/images/alwaysdata-button.svg +0 -0
  178. {kinto-18.0.0 → kinto-19.3.2}/docs/images/architecture.svg +0 -0
  179. {kinto-18.0.0 → kinto-19.3.2}/docs/images/color-formatter.png +0 -0
  180. {kinto-18.0.0 → kinto-19.3.2}/docs/images/concepts-general.png +0 -0
  181. {kinto-18.0.0 → kinto-19.3.2}/docs/images/concepts-permissions.png +0 -0
  182. {kinto-18.0.0 → kinto-19.3.2}/docs/images/heroku-button.png +0 -0
  183. {kinto-18.0.0 → kinto-19.3.2}/docs/images/kinto-logo.png +0 -0
  184. {kinto-18.0.0 → kinto-19.3.2}/docs/images/kinto-logo.svg +0 -0
  185. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-admin.svg +0 -0
  186. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-attachment.svg +0 -0
  187. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-community.svg +0 -0
  188. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-demos.svg +0 -0
  189. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-history.svg +0 -0
  190. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-indexing.svg +0 -0
  191. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-javascript.svg +0 -0
  192. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-jsonschema.svg +0 -0
  193. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-livesync.svg +0 -0
  194. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-multiapps.svg +0 -0
  195. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-offline.svg +0 -0
  196. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-permissions.svg +0 -0
  197. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-python.svg +0 -0
  198. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-quotas.svg +0 -0
  199. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-selfhostable.svg +0 -0
  200. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-signature.svg +0 -0
  201. {kinto-18.0.0 → kinto-19.3.2}/docs/images/logo-synchronisation.svg +0 -0
  202. {kinto-18.0.0 → kinto-19.3.2}/docs/images/overview-deployonce-selfhost.png +0 -0
  203. {kinto-18.0.0 → kinto-19.3.2}/docs/images/overview-features.png +0 -0
  204. {kinto-18.0.0 → kinto-19.3.2}/docs/images/overview-synchronisation.png +0 -0
  205. {kinto-18.0.0 → kinto-19.3.2}/docs/images/overview-use-cases.png +0 -0
  206. {kinto-18.0.0 → kinto-19.3.2}/docs/images/scalingo-button.svg +0 -0
  207. {kinto-18.0.0 → kinto-19.3.2}/docs/images/screenshot-kinto-admin-1.png +0 -0
  208. {kinto-18.0.0 → kinto-19.3.2}/docs/images/screenshot-kinto-admin-2.png +0 -0
  209. {kinto-18.0.0 → kinto-19.3.2}/docs/images/screenshot-kinto-admin-3.png +0 -0
  210. {kinto-18.0.0 → kinto-19.3.2}/docs/images/screenshot-kinto-admin-4.png +0 -0
  211. {kinto-18.0.0 → kinto-19.3.2}/docs/images/sequence-storage.png +0 -0
  212. {kinto-18.0.0 → kinto-19.3.2}/docs/images/sync-both.svg +0 -0
  213. {kinto-18.0.0 → kinto-19.3.2}/docs/images/sync-newest.svg +0 -0
  214. {kinto-18.0.0 → kinto-19.3.2}/docs/images/sync-oldest.svg +0 -0
  215. {kinto-18.0.0 → kinto-19.3.2}/docs/index.rst +0 -0
  216. {kinto-18.0.0 → kinto-19.3.2}/docs/kinto-admin.rst +0 -0
  217. {kinto-18.0.0 → kinto-19.3.2}/docs/overview.rst +0 -0
  218. {kinto-18.0.0 → kinto-19.3.2}/docs/troubleshooting.rst +0 -0
  219. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/app-examples.rst +0 -0
  220. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/authentication-github.rst +0 -0
  221. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/client-side-encryption.rst +0 -0
  222. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/custom-id-generator.rst +0 -0
  223. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/first-steps.rst +0 -0
  224. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/index.rst +0 -0
  225. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/notifications-custom.rst +0 -0
  226. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/notifications-websockets.rst +0 -0
  227. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/permission-setups.rst +0 -0
  228. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/permissions.rst +0 -0
  229. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/synchronisation.rst +0 -0
  230. {kinto-18.0.0 → kinto-19.3.2}/docs/tutorials/write-plugin.rst +0 -0
  231. {kinto-18.0.0 → kinto-19.3.2}/kinto/authorization.py +0 -0
  232. {kinto-18.0.0 → kinto-19.3.2}/kinto/config/__init__.py +0 -0
  233. {kinto-18.0.0 → kinto-19.3.2}/kinto/config/kinto.tpl +0 -0
  234. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/authentication.py +0 -0
  235. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/authorization.py +0 -0
  236. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/cache/__init__.py +0 -0
  237. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/cache/memcached.py +0 -0
  238. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/cache/memory.py +0 -0
  239. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/cache/postgresql/__init__.py +0 -0
  240. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/cache/postgresql/schema.sql +0 -0
  241. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/cache/testing.py +0 -0
  242. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/decorators.py +0 -0
  243. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/errors.py +0 -0
  244. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/events.py +0 -0
  245. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/listeners/__init__.py +0 -0
  246. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/openapi.py +0 -0
  247. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/permission/__init__.py +0 -0
  248. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/permission/memory.py +0 -0
  249. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
  250. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/permission/postgresql/schema.sql +0 -0
  251. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/permission/testing.py +0 -0
  252. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/resource/model.py +0 -0
  253. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/resource/viewset.py +0 -0
  254. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/schema.py +0 -0
  255. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/__init__.py +0 -0
  256. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/generators.py +0 -0
  257. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/memory.py +0 -0
  258. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/__init__.py +0 -0
  259. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
  260. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
  261. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
  262. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
  263. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
  264. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
  265. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
  266. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
  267. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
  268. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
  269. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
  270. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
  271. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
  272. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
  273. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
  274. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
  275. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
  276. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
  277. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
  278. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
  279. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
  280. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/migrator.py +0 -0
  281. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/pool.py +0 -0
  282. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/postgresql/schema.sql +0 -0
  283. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/storage/testing.py +0 -0
  284. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/views/__init__.py +0 -0
  285. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/views/batch.py +0 -0
  286. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/views/heartbeat.py +0 -0
  287. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/views/hello.py +0 -0
  288. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/views/openapi.py +0 -0
  289. {kinto-18.0.0 → kinto-19.3.2}/kinto/core/views/version.py +0 -0
  290. {kinto-18.0.0 → kinto-19.3.2}/kinto/events.py +0 -0
  291. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/__init__.py +0 -0
  292. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/accounts/authentication.py +0 -0
  293. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/accounts/mails.py +0 -0
  294. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/accounts/scripts.py +0 -0
  295. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/accounts/utils.py +0 -0
  296. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/accounts/views/__init__.py +0 -0
  297. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/accounts/views/validation.py +0 -0
  298. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/admin/README.md +0 -0
  299. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/admin/__init__.py +0 -0
  300. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/history/listener.py +0 -0
  301. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/history/views.py +0 -0
  302. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/openid/__init__.py +0 -0
  303. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/openid/utils.py +0 -0
  304. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/openid/views.py +0 -0
  305. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/quotas/listener.py +0 -0
  306. {kinto-18.0.0 → kinto-19.3.2}/kinto/plugins/quotas/utils.py +0 -0
  307. {kinto-18.0.0 → kinto-19.3.2}/kinto/schema_validation.py +0 -0
  308. {kinto-18.0.0 → kinto-19.3.2}/kinto/scripts.py +0 -0
  309. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/__init__.py +0 -0
  310. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/admin.py +0 -0
  311. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/buckets.py +0 -0
  312. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/collections.py +0 -0
  313. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/contribute.py +0 -0
  314. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/groups.py +0 -0
  315. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/permissions.py +0 -0
  316. {kinto-18.0.0 → kinto-19.3.2}/kinto/views/records.py +0 -0
  317. {kinto-18.0.0 → kinto-19.3.2}/kinto.egg-info/dependency_links.txt +0 -0
  318. {kinto-18.0.0 → kinto-19.3.2}/kinto.egg-info/entry_points.txt +0 -0
  319. {kinto-18.0.0 → kinto-19.3.2}/kinto.egg-info/top_level.txt +0 -0
  320. {kinto-18.0.0 → kinto-19.3.2}/setup.cfg +0 -0
  321. {kinto-18.0.0 → kinto-19.3.2}/tests/__init__.py +0 -0
  322. {kinto-18.0.0 → kinto-19.3.2}/tests/browser.ini +0 -0
  323. {kinto-18.0.0 → kinto-19.3.2}/tests/core/__init__.py +0 -0
  324. {kinto-18.0.0 → kinto-19.3.2}/tests/core/listeners.py +0 -0
  325. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/__init__.py +0 -0
  326. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_base.py +0 -0
  327. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_cache_expires.py +0 -0
  328. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_model.py +0 -0
  329. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_object.py +0 -0
  330. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_object_permissions.py +0 -0
  331. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_pagination.py +0 -0
  332. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_partial_response.py +0 -0
  333. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_preconditions.py +0 -0
  334. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_schema.py +0 -0
  335. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_sort.py +0 -0
  336. {kinto-18.0.0 → kinto-19.3.2}/tests/core/resource/test_viewset.py +0 -0
  337. {kinto-18.0.0 → kinto-19.3.2}/tests/core/schema/postgresql-permission-1.sql +0 -0
  338. {kinto-18.0.0 → kinto-19.3.2}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
  339. {kinto-18.0.0 → kinto-19.3.2}/tests/core/schema/postgresql-storage-11.sql +0 -0
  340. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_authorization.py +0 -0
  341. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_cache.py +0 -0
  342. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_decorators.py +0 -0
  343. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_deprecation.py +0 -0
  344. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_errors.py +0 -0
  345. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_listeners.py +0 -0
  346. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_logging.py +0 -0
  347. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_openapi.py +0 -0
  348. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_permission.py +0 -0
  349. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_schema.py +0 -0
  350. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_storage_migrations.py +0 -0
  351. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_storage_pool.py +0 -0
  352. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_utils.py +0 -0
  353. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_views_batch.py +0 -0
  354. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_views_errors.py +0 -0
  355. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_views_heartbeat.py +0 -0
  356. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_views_hello.py +0 -0
  357. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_views_openapi.py +0 -0
  358. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_views_postgresql.py +0 -0
  359. {kinto-18.0.0 → kinto-19.3.2}/tests/core/test_views_transaction.py +0 -0
  360. {kinto-18.0.0 → kinto-19.3.2}/tests/core/testapp/__init__.py +0 -0
  361. {kinto-18.0.0 → kinto-19.3.2}/tests/core/testapp/static/index.html +0 -0
  362. {kinto-18.0.0 → kinto-19.3.2}/tests/core/testapp/views.py +0 -0
  363. {kinto-18.0.0 → kinto-19.3.2}/tests/functional.py +0 -0
  364. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/__init__.py +0 -0
  365. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/support.py +0 -0
  366. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_plugins.py +0 -0
  367. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_resources.py +0 -0
  368. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_responses_buckets.py +0 -0
  369. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_responses_collections.py +0 -0
  370. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_responses_errors.py +0 -0
  371. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_responses_groups.py +0 -0
  372. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_responses_records.py +0 -0
  373. {kinto-18.0.0 → kinto-19.3.2}/tests/openapi/test_validation.py +0 -0
  374. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/__init__.py +0 -0
  375. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/test_admin.py +0 -0
  376. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/test_default_bucket.py +0 -0
  377. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/test_flush.py +0 -0
  378. {kinto-18.0.0 → kinto-19.3.2}/tests/plugins/test_openid.py +0 -0
  379. {kinto-18.0.0 → kinto-19.3.2}/tests/test_authorization.py +0 -0
  380. {kinto-18.0.0 → kinto-19.3.2}/tests/test_config.py +0 -0
  381. {kinto-18.0.0 → kinto-19.3.2}/tests/test_configuration/test.ini +0 -0
  382. {kinto-18.0.0 → kinto-19.3.2}/tests/test_init.py +0 -0
  383. {kinto-18.0.0 → kinto-19.3.2}/tests/test_main.py +0 -0
  384. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_admin.py +0 -0
  385. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_buckets.py +0 -0
  386. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_collections.py +0 -0
  387. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_collections_cache.py +0 -0
  388. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_contribute.py +0 -0
  389. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_disable_default.py +0 -0
  390. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_groups.py +0 -0
  391. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_hello.py +0 -0
  392. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_objects_permissions.py +0 -0
  393. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_permissions.py +0 -0
  394. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_records.py +0 -0
  395. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_schema_collection.py +0 -0
  396. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_schema_group.py +0 -0
  397. {kinto-18.0.0 → kinto-19.3.2}/tests/test_views_schema_record.py +0 -0
  398. {kinto-18.0.0/tests/core → kinto-19.3.2/tests}/test_views_version.py +0 -0
@@ -28,8 +28,8 @@ jobs:
28
28
  node --version
29
29
  npm --version
30
30
 
31
- - name: Build Admin UI
32
- run: make build-kinto-admin
31
+ - name: Pull Admin UI
32
+ run: make pull-kinto-admin
33
33
 
34
34
  - name: Install pypa/build
35
35
  run: python3 -m pip install build
@@ -86,7 +86,7 @@ jobs:
86
86
  images: kinto/kinto-server
87
87
 
88
88
  - name: Build and push Docker image
89
- uses: docker/build-push-action@v5
89
+ uses: docker/build-push-action@v6
90
90
  with:
91
91
  context: .
92
92
  file: ./Dockerfile
@@ -32,18 +32,18 @@ jobs:
32
32
  runs-on: ubuntu-latest
33
33
  strategy:
34
34
  matrix:
35
- pyenv: [py38, py39, py310, py311, py311-raw]
35
+ pyenv: [py39, py310, py311, py312, py312-raw]
36
36
  include:
37
- - pyenv: py38
38
- python-version: "3.8"
39
37
  - pyenv: py39
40
38
  python-version: "3.9"
41
39
  - pyenv: py310
42
40
  python-version: "3.10"
43
41
  - pyenv: py311
44
42
  python-version: "3.11"
45
- - pyenv: py311-raw
46
- python-version: "3.11"
43
+ - pyenv: py312
44
+ python-version: "3.12"
45
+ - pyenv: py312-raw
46
+ python-version: "3.12"
47
47
  services:
48
48
  postgres:
49
49
  image: postgres
@@ -177,7 +177,7 @@ jobs:
177
177
  install: true
178
178
 
179
179
  - name: Build container
180
- uses: docker/build-push-action@v5
180
+ uses: docker/build-push-action@v6
181
181
  with:
182
182
  cache-from: type=local,src=${{ env.DOCKER_CACHE}}
183
183
  cache-to: type=local,dest=${{ env.DOCKER_CACHE}},mode=max
@@ -227,8 +227,8 @@ jobs:
227
227
  which firefox
228
228
  firefox --version
229
229
 
230
- - name: make build-kinto-admin
231
- run: make build-kinto-admin
230
+ - name: make pull-kinto-admin
231
+ run: make pull-kinto-admin
232
232
 
233
233
  - name: Install dependencies
234
234
  run: make install-dev
@@ -1,25 +1,23 @@
1
1
  # Mozilla Kinto server
2
-
3
- FROM node:lts-bullseye-slim as node-builder
4
- RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl
5
- COPY scripts/build-kinto-admin.sh .
6
- COPY /kinto/plugins/admin ./kinto/plugins/admin
7
- RUN bash build-kinto-admin.sh
8
-
9
- FROM python:3.10-slim-bullseye as python-builder
2
+ FROM python:3.10-bullseye AS python-builder
10
3
  RUN python -m venv /opt/venv
11
- RUN apt-get update && apt-get install -y --no-install-recommends build-essential libpq-dev
12
4
  ARG KINTO_VERSION=1
13
5
  ENV SETUPTOOLS_SCM_PRETEND_VERSION_FOR_KINTO=${KINTO_VERSION} \
14
6
  PATH="/opt/venv/bin:$PATH"
15
7
  # At this stage we only fetch and build all dependencies.
8
+
9
+ # Pull kinto-admin before building kinto so we can cache it
10
+ WORKDIR /kinto-admin
11
+ COPY kinto/plugins/admin kinto/plugins/admin
12
+ COPY scripts/pull-kinto-admin.sh .
13
+ RUN bash pull-kinto-admin.sh
14
+
16
15
  WORKDIR /pkg-kinto
17
- COPY constraints.txt .
18
- COPY pyproject.toml .
16
+ COPY constraints.txt pyproject.toml ./
17
+ RUN pip install --upgrade pip && pip install -r constraints.txt
19
18
  COPY kinto/ kinto/
20
- RUN pip install --upgrade pip && \
21
- pip install ".[postgresql,memcached,monitoring]" -c constraints.txt && \
22
- pip install kinto-attachment kinto-emailer httpie
19
+ RUN cp -r /kinto-admin/kinto/plugins/admin/build kinto/plugins/admin/
20
+ RUN pip install ".[postgresql,memcached,monitoring]" -c constraints.txt && pip install kinto-attachment kinto-emailer httpie
23
21
 
24
22
  FROM python:3.10-slim-bullseye
25
23
  RUN apt-get update && apt-get install -y --no-install-recommends libpq-dev
@@ -27,7 +25,6 @@ RUN groupadd --gid 10001 app && \
27
25
  useradd --uid 10001 --gid 10001 --home /app --create-home app
28
26
 
29
27
  COPY --from=python-builder /opt/venv /opt/venv
30
- COPY --from=node-builder /kinto/plugins/admin/build ./kinto/plugins/admin/build
31
28
 
32
29
  ENV KINTO_INI=/etc/kinto/kinto.ini \
33
30
  PORT=8888 \
@@ -39,4 +36,4 @@ WORKDIR /app
39
36
  USER app
40
37
 
41
38
  # Run database migrations and start the kinto server
42
- CMD kinto migrate --ini $KINTO_INI && kinto start --ini $KINTO_INI --port $PORT
39
+ CMD ["sh", "-c", "kinto migrate --ini $KINTO_INI && kinto start --ini $KINTO_INI --port $PORT"]
@@ -20,13 +20,14 @@ help:
20
20
  @echo " install-monitoring enable monitoring features like StatsD and Newrelic"
21
21
  @echo " install-postgres install postgresql support"
22
22
  @echo " install-dev install dependencies and everything needed to run tests"
23
- @echo " build-kinto-admin build the Kinto admin UI plugin (requires npm)"
23
+ @echo " pull-kinto-admin pull the Kinto admin UI plugin (requires npm)"
24
24
  @echo " serve start the kinto server on default port"
25
25
  @echo " migrate run the kinto migrations"
26
26
  @echo " lint run the code linters"
27
27
  @echo " tests run all the tests with all the supported python interpreters (same as CI)"
28
+ @echo " test-deps pulls and runs docker postgres and memcached containers for tests"
28
29
  @echo " tdd run pytest-watch to rerun tests automatically on changes for tdd"
29
- @echo " tests-once only run the tests once with the default python interpreter"
30
+ @echo " tests-once only run the tests once with the default python interpreter"
30
31
  @echo " functional run functional test against a real kinto"
31
32
  @echo " browser-test run browser test against a real kinto"
32
33
  @echo " clean remove *.pyc files and __pycache__ directory"
@@ -67,8 +68,8 @@ $(DOC_STAMP): $(PYTHON) docs/requirements.txt
67
68
  constraints.txt: constraints.in
68
69
  pip-compile -o constraints.txt constraints.in
69
70
 
70
- build-kinto-admin: need-npm
71
- scripts/build-kinto-admin.sh
71
+ pull-kinto-admin:
72
+ scripts/pull-kinto-admin.sh
72
73
 
73
74
  $(SERVER_CONFIG):
74
75
  $(VENV)/bin/kinto init --ini $(SERVER_CONFIG)
@@ -94,6 +95,14 @@ tests: install-postgres install-monitoring install-memcached version-file instal
94
95
  tests-raw: version-file install-dev
95
96
  $(VENV)/bin/py.test
96
97
 
98
+ test-deps:
99
+ docker pull memcached
100
+ docker pull postgres
101
+ docker run -p 11211:11211 --name kinto-memcached -d memcached || echo "cannot start memcached, already exists?"
102
+ docker run -p 5432:5432 --name kinto-postgres -e POSTGRES_PASSWORD=postgres -d postgres || echo "cannot start postgres, already exists?"
103
+ sleep 2
104
+ PGPASSWORD=postgres psql -c "CREATE DATABASE testdb ENCODING 'UTF8' TEMPLATE template0;" -U postgres -h localhost
105
+
97
106
  lint: install-dev
98
107
  $(VENV)/bin/ruff check kinto tests docs/conf.py
99
108
  $(VENV)/bin/ruff format --check kinto tests docs/conf.py
@@ -105,9 +114,6 @@ format: install-dev
105
114
  tdd: install-dev
106
115
  $(VENV)/bin/ptw --runner $(VENV)/bin/py.test
107
116
 
108
- need-npm:
109
- @npm --version 2>/dev/null 1>&2 || (echo "The 'npm' command is required to build the Kinto Admin UI." && exit 1)
110
-
111
117
  need-kinto-running:
112
118
  @curl http://localhost:8888/v0/ 2>/dev/null 1>&2 || (echo "Run 'make runkinto' before starting tests." && exit 1)
113
119
 
@@ -119,12 +125,15 @@ functional: install-dev need-kinto-running
119
125
  $(VENV)/bin/py.test tests/functional.py
120
126
 
121
127
  browser-test: need-kinto-running
128
+ $(VENV)/bin/playwright install firefox
122
129
  $(VENV)/bin/py.test tests/browser.py
123
130
 
124
131
  clean:
125
132
  find . -name '*.pyc' -delete
126
133
  find . -name '__pycache__' -type d | xargs rm -fr
127
134
  rm -fr docs/_build/
135
+ docker rm -f kinto-memcached || echo ""
136
+ docker rm -f kinto-postgres || echo ""
128
137
 
129
138
  distclean: clean
130
139
  rm -fr *.egg *.egg-info/ dist/ build/
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: kinto
3
- Version: 18.0.0
3
+ Version: 19.3.2
4
4
  Summary: Kinto Web Service - Store, Sync, Share, and Self-Host.
5
5
  Author-email: Mozilla Services <developers@kinto-storage.org>
6
6
  License: Copyright 2012 - Mozilla Foundation
@@ -21,10 +21,10 @@ Project-URL: Repository, https://github.com/Kinto/kinto
21
21
  Keywords: web,sync,json,storage,services
22
22
  Classifier: Programming Language :: Python
23
23
  Classifier: Programming Language :: Python :: 3
24
- Classifier: Programming Language :: Python :: 3.8
25
24
  Classifier: Programming Language :: Python :: 3.9
26
25
  Classifier: Programming Language :: Python :: 3.10
27
26
  Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
28
  Classifier: Programming Language :: Python :: Implementation :: CPython
29
29
  Classifier: Topic :: Internet :: WWW/HTTP
30
30
  Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
@@ -61,12 +61,13 @@ Requires-Dist: newrelic; extra == "monitoring"
61
61
  Requires-Dist: sentry-sdk[sqlalchemy]; extra == "monitoring"
62
62
  Requires-Dist: statsd; extra == "monitoring"
63
63
  Requires-Dist: werkzeug; extra == "monitoring"
64
+ Requires-Dist: prometheus-client; extra == "monitoring"
64
65
  Provides-Extra: test
65
66
  Requires-Dist: bravado; extra == "test"
66
67
  Requires-Dist: pytest; extra == "test"
67
68
  Requires-Dist: pytest-cache; extra == "test"
68
69
  Requires-Dist: pytest-cov; extra == "test"
69
- Requires-Dist: selenium; extra == "test"
70
+ Requires-Dist: playwright; extra == "test"
70
71
  Requires-Dist: webtest; extra == "test"
71
72
  Provides-Extra: dev
72
73
  Requires-Dist: build; extra == "dev"
@@ -79,7 +80,7 @@ Kinto
79
80
  |coc| |gitter| |readthedocs| |pypi| |ci| |main-coverage|
80
81
 
81
82
  .. |coc| image:: https://img.shields.io/badge/%E2%9D%A4-code%20of%20conduct-blue.svg
82
- :target: https://github.com/Kinto/kinto/blob/main/CODE_OF_CONDUCT.md
83
+ :target: https://github.com/Kinto/kinto/blob/main/.github/CODE_OF_CONDUCT.md
83
84
  :alt: Code of conduct
84
85
 
85
86
  .. |gitter| image:: https://badges.gitter.im/Kinto/kinto.svg
@@ -113,7 +114,7 @@ Kinto is a minimalist JSON storage service with synchronisation and sharing abil
113
114
  Requirements
114
115
  ------------
115
116
 
116
- * **Python**: 3.8+
117
+ * **Python**: 3.9+
117
118
  * **Backends**: In-memory (development), PostgreSQL 9.5+ (production)
118
119
 
119
120
  Contributors
@@ -4,7 +4,7 @@ Kinto
4
4
  |coc| |gitter| |readthedocs| |pypi| |ci| |main-coverage|
5
5
 
6
6
  .. |coc| image:: https://img.shields.io/badge/%E2%9D%A4-code%20of%20conduct-blue.svg
7
- :target: https://github.com/Kinto/kinto/blob/main/CODE_OF_CONDUCT.md
7
+ :target: https://github.com/Kinto/kinto/blob/main/.github/CODE_OF_CONDUCT.md
8
8
  :alt: Code of conduct
9
9
 
10
10
  .. |gitter| image:: https://badges.gitter.im/Kinto/kinto.svg
@@ -38,5 +38,5 @@ Kinto is a minimalist JSON storage service with synchronisation and sharing abil
38
38
  Requirements
39
39
  ------------
40
40
 
41
- * **Python**: 3.8+
41
+ * **Python**: 3.9+
42
42
  * **Backends**: In-memory (development), PostgreSQL 9.5+ (production)
@@ -25,6 +25,7 @@ psycopg2
25
25
  zope.sqlalchemy
26
26
  # monitoring
27
27
  newrelic
28
+ prometheus-client
28
29
  sentry-sdk[sqlalchemy]
29
30
  statsd
30
31
  werkzeug
@@ -33,7 +34,7 @@ bravado_core
33
34
  pytest
34
35
  pytest-cache
35
36
  pytest-cov
36
- selenium
37
+ playwright
37
38
  webtest
38
39
  # dev
39
40
  build
@@ -1,70 +1,59 @@
1
1
  #
2
- # This file is autogenerated by pip-compile with Python 3.9
2
+ # This file is autogenerated by pip-compile with Python 3.12
3
3
  # by the following command:
4
4
  #
5
- # pip-compile --strip-extras
5
+ # pip-compile --output-file=constraints.txt --strip-extras constraints.in
6
6
  #
7
7
  arrow==1.3.0
8
8
  # via isoduration
9
9
  attrs==23.2.0
10
10
  # via
11
11
  # jsonschema
12
- # outcome
13
12
  # referencing
14
- # trio
15
- bcrypt==4.1.2
16
- # via -r requirements.in
13
+ bcrypt==4.2.1
14
+ # via -r constraints.in
17
15
  beautifulsoup4==4.12.3
18
16
  # via webtest
19
17
  bravado-core==6.1.1
20
- # via -r requirements.in
21
- build==1.0.3
22
- # via -r requirements.in
23
- certifi==2023.11.17
18
+ # via -r constraints.in
19
+ build==1.2.2.post1
20
+ # via -r constraints.in
21
+ certifi==2024.7.4
24
22
  # via
25
23
  # requests
26
- # selenium
27
24
  # sentry-sdk
28
25
  charset-normalizer==3.3.2
29
26
  # via requests
30
27
  colander==2.0
31
28
  # via
32
- # -r requirements.in
29
+ # -r constraints.in
33
30
  # cornice-swagger
34
31
  colorama==0.4.6
35
32
  # via logging-color-formatter
36
33
  cornice==6.0.1
37
34
  # via
38
- # -r requirements.in
35
+ # -r constraints.in
39
36
  # cornice-swagger
40
37
  cornice-swagger==1.0.1
41
- # via -r requirements.in
42
- coverage==7.4.0
43
- # via
44
- # coverage
45
- # pytest-cov
46
- dockerflow==2024.1.0
47
- # via -r requirements.in
48
- exceptiongroup==1.2.0
49
- # via
50
- # pytest
51
- # trio
52
- # trio-websocket
38
+ # via -r constraints.in
39
+ coverage==7.6.4
40
+ # via pytest-cov
41
+ dockerflow==2024.4.2
42
+ # via -r constraints.in
53
43
  execnet==2.0.2
54
44
  # via pytest-cache
55
45
  fqdn==1.5.1
56
46
  # via jsonschema
57
- h11==0.14.0
58
- # via wsproto
47
+ greenlet==3.1.1
48
+ # via
49
+ # playwright
50
+ # sqlalchemy
59
51
  hupper==1.12
60
52
  # via pyramid
61
- idna==3.6
53
+ idna==3.7
62
54
  # via
63
55
  # jsonschema
64
56
  # requests
65
- # trio
66
- importlib-metadata==7.0.1
67
- # via build
68
57
  iniconfig==2.0.0
69
58
  # via pytest
70
59
  iso8601==2.1.0
@@ -72,30 +61,28 @@ iso8601==2.1.0
72
61
  isoduration==20.11.0
73
62
  # via jsonschema
74
63
  jsonpatch==1.33
75
- # via -r requirements.in
64
+ # via -r constraints.in
76
65
  jsonpointer==2.4
77
66
  # via
78
67
  # jsonpatch
79
68
  # jsonschema
80
69
  jsonref==1.1.0
81
70
  # via bravado-core
82
- jsonschema==4.21.1
71
+ jsonschema==4.23.0
83
72
  # via
84
- # -r requirements.in
73
+ # -r constraints.in
85
74
  # bravado-core
86
75
  # swagger-spec-validator
87
76
  jsonschema-specifications==2023.12.1
88
77
  # via jsonschema
89
78
  logging-color-formatter==1.1.0
90
- # via -r requirements.in
79
+ # via -r constraints.in
91
80
  markupsafe==2.1.4
92
81
  # via werkzeug
93
82
  msgpack==1.0.7
94
83
  # via bravado-core
95
- newrelic==9.5.0
96
- # via -r requirements.in
97
- outcome==1.3.0.post0
98
- # via trio
84
+ newrelic==10.4.0
85
+ # via -r constraints.in
99
86
  packaging==23.2
100
87
  # via
101
88
  # build
@@ -109,45 +96,49 @@ plaster==1.1.2
109
96
  # pyramid
110
97
  plaster-pastedeploy==1.0.1
111
98
  # via pyramid
112
- pluggy==1.3.0
99
+ playwright==1.49.1
100
+ # via -r constraints.in
101
+ pluggy==1.5.0
113
102
  # via pytest
114
- psycopg2==2.9.9
115
- # via -r requirements.in
103
+ prometheus-client==0.21.1
104
+ # via -r constraints.in
105
+ psycopg2==2.9.10
106
+ # via -r constraints.in
107
+ pyee==12.0.0
108
+ # via playwright
116
109
  pyproject-hooks==1.0.0
117
110
  # via build
118
111
  pyramid==2.0.2
119
112
  # via
120
- # -r requirements.in
113
+ # -r constraints.in
121
114
  # cornice
122
115
  # pyramid-mailer
123
116
  # pyramid-multiauth
124
117
  # pyramid-tm
125
118
  pyramid-mailer==0.15.1
126
- # via -r requirements.in
127
- pyramid-multiauth==1.0.1
128
- # via -r requirements.in
129
- pyramid-tm==2.5
130
- # via -r requirements.in
131
- pysocks==1.7.1
132
- # via urllib3
133
- pytest==7.4.4
134
- # via
135
- # -r requirements.in
119
+ # via -r constraints.in
120
+ pyramid-multiauth==1.0.2
121
+ # via -r constraints.in
122
+ pyramid-tm==2.6
123
+ # via -r constraints.in
124
+ pytest==8.3.4
125
+ # via
126
+ # -r constraints.in
136
127
  # pytest-cache
137
128
  # pytest-cov
138
129
  pytest-cache==1.0
139
- # via -r requirements.in
140
- pytest-cov==4.1.0
141
- # via -r requirements.in
142
- python-dateutil==2.8.2
130
+ # via -r constraints.in
131
+ pytest-cov==6.0.0
132
+ # via -r constraints.in
133
+ python-dateutil==2.9.0.post0
143
134
  # via
144
- # -r requirements.in
135
+ # -r constraints.in
145
136
  # arrow
146
137
  # bravado-core
147
138
  python-memcached==1.62
148
- # via -r requirements.in
139
+ # via -r constraints.in
149
140
  python-rapidjson==1.14
150
- # via -r requirements.in
141
+ # via -r constraints.in
151
142
  pytz==2023.3.post1
152
143
  # via bravado-core
153
144
  pyyaml==6.0.1
@@ -160,9 +151,9 @@ referencing==0.32.1
160
151
  # jsonschema-specifications
161
152
  repoze-sendmail==4.4.1
162
153
  # via pyramid-mailer
163
- requests==2.31.0
154
+ requests==2.32.3
164
155
  # via
165
- # -r requirements.in
156
+ # -r constraints.in
166
157
  # bravado-core
167
158
  rfc3339-validator==0.1.4
168
159
  # via jsonschema
@@ -172,12 +163,10 @@ rpds-py==0.17.1
172
163
  # via
173
164
  # jsonschema
174
165
  # referencing
175
- ruff==0.1.14
176
- # via -r requirements.in
177
- selenium==4.12.0
178
- # via -r requirements.in
179
- sentry-sdk==1.39.2
180
- # via -r requirements.in
166
+ ruff==0.9.1
167
+ # via -r constraints.in
168
+ sentry-sdk==2.8.0
169
+ # via -r constraints.in
181
170
  simplejson==3.19.2
182
171
  # via bravado-core
183
172
  six==1.16.0
@@ -186,30 +175,20 @@ six==1.16.0
186
175
  # cornice-swagger
187
176
  # python-dateutil
188
177
  # rfc3339-validator
189
- sniffio==1.3.0
190
- # via trio
191
- sortedcontainers==2.4.0
192
- # via trio
193
178
  soupsieve==2.5
194
179
  # via beautifulsoup4
195
- sqlalchemy==2.0.25
180
+ sqlalchemy==2.0.36
196
181
  # via
197
- # -r requirements.in
182
+ # -r constraints.in
198
183
  # sentry-sdk
199
184
  # zope-sqlalchemy
200
185
  statsd==4.0.1
201
- # via -r requirements.in
186
+ # via -r constraints.in
202
187
  swagger-spec-validator==3.0.3
203
188
  # via bravado-core
204
- tomli==2.0.1
205
- # via
206
- # build
207
- # coverage
208
- # pyproject-hooks
209
- # pytest
210
- transaction==4.0
189
+ transaction==5.0
211
190
  # via
212
- # -r requirements.in
191
+ # -r constraints.in
213
192
  # pyramid-mailer
214
193
  # pyramid-tm
215
194
  # repoze-sendmail
@@ -218,48 +197,37 @@ translationstring==1.4
218
197
  # via
219
198
  # colander
220
199
  # pyramid
221
- trio==0.24.0
222
- # via
223
- # selenium
224
- # trio-websocket
225
- trio-websocket==0.11.1
226
- # via selenium
227
200
  types-python-dateutil==2.8.19.20240106
228
201
  # via arrow
229
202
  typing-extensions==4.9.0
230
203
  # via
231
- # selenium
204
+ # pyee
232
205
  # sqlalchemy
233
206
  # swagger-spec-validator
234
207
  uri-template==1.3.0
235
208
  # via jsonschema
236
- urllib3==2.1.0
209
+ urllib3==2.2.2
237
210
  # via
238
211
  # requests
239
- # selenium
240
212
  # sentry-sdk
241
213
  venusian==3.1.0
242
214
  # via
243
215
  # cornice
244
216
  # pyramid
245
- waitress==2.1.2
217
+ waitress==3.0.2
246
218
  # via
247
- # -r requirements.in
219
+ # -r constraints.in
248
220
  # webtest
249
- webcolors==1.13
221
+ webcolors==24.6.0
250
222
  # via jsonschema
251
- webob==1.8.7
223
+ webob==1.8.8
252
224
  # via
253
225
  # pyramid
254
226
  # webtest
255
227
  webtest==3.0.0
256
- # via -r requirements.in
257
- werkzeug==3.0.1
258
- # via -r requirements.in
259
- wsproto==1.2.0
260
- # via trio-websocket
261
- zipp==3.17.0
262
- # via importlib-metadata
228
+ # via -r constraints.in
229
+ werkzeug==3.1.3
230
+ # via -r constraints.in
263
231
  zope-deprecation==5.0
264
232
  # via pyramid
265
233
  zope-interface==6.1
@@ -269,7 +237,7 @@ zope-interface==6.1
269
237
  # transaction
270
238
  # zope-sqlalchemy
271
239
  zope-sqlalchemy==3.1
272
- # via -r requirements.in
240
+ # via -r constraints.in
273
241
 
274
242
  # The following packages are considered to be unsafe in a requirements file:
275
243
  # setuptools
@@ -119,7 +119,7 @@ Get started!
119
119
 
120
120
  git clone git@github.com:your_name_here/kinto.git
121
121
 
122
- 3. Setup a local PostgreSQL database for the tests (:ref:`more details <postgresql-install>`)::
122
+ 3. Run ``make test-deps``, or setup a local PostgreSQL database (:ref:`more details <postgresql-install>`)::
123
123
 
124
124
  sudo apt-get install postgresql
125
125
  sudo -n -u postgres -s -- psql -c "ALTER USER postgres WITH PASSWORD 'postgres';" -U postgres
@@ -235,16 +235,7 @@ In another terminal, run the end-to-end tests with:
235
235
 
236
236
  Browser Tests
237
237
  -------------
238
-
239
- Make sure the `geckodriver <https://github.com/mozilla/geckodriver/releases>`_ binary is available in your path.
240
-
241
- .. note::
242
-
243
- If your installation of *Firefox* is custom, specify the path of its binary using an alias:
244
-
245
- ::
246
-
247
- alias geckodriver="geckodriver --binary /path/to/firefox"
238
+ We use `playwright <https://playwright.dev/>`_ for browser testing. The tests included in this repo are very simple and verify the admin UI can at least authenticate with the current kinto back-end. Comprehensive unit tests are maintained in the kinto-admin repo.
248
239
 
249
240
 
250
241
  In a terminal, run an instance with the provided ``browser.ini`` configuration:
@@ -24,10 +24,7 @@ __HERE__ = os.path.dirname(os.path.abspath(__file__))
24
24
  on_rtd = os.environ.get("READTHEDOCS", None) == "True"
25
25
 
26
26
  if not on_rtd: # only import and set the theme if we're building docs locally
27
- import sphinx_rtd_theme
28
-
29
27
  html_theme = "sphinx_rtd_theme"
30
- html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
31
28
 
32
29
  # otherwise, readthedocs.io uses their theme by default, so no need to specify
33
30
  # it
@@ -220,19 +220,14 @@ In the configuration of the CDN service, you should also:
220
220
  Monitoring
221
221
  ----------
222
222
 
223
- In order to enable monitoring features like *statsd*, install
223
+ In order to enable monitoring features (eg. *Prometheus* or *StatsD*), install
224
224
  extra requirements:
225
225
 
226
226
  ::
227
227
 
228
228
  make install-monitoring
229
229
 
230
- And configure its URL:
231
-
232
- .. code-block :: ini
233
-
234
- # StatsD
235
- kinto.statsd_url = udp://carbon.server:8125
230
+ See :ref:`settings section <monitoring-with-prometheus>` for the configuration aspects.
236
231
 
237
232
  Counters
238
233
  ::::::::