kinto 18.1.0__tar.gz → 19.2.0__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 (390) hide show
  1. {kinto-18.1.0 → kinto-19.2.0}/.github/workflows/publish.yml +1 -1
  2. {kinto-18.1.0 → kinto-19.2.0}/.github/workflows/test.yml +1 -1
  3. {kinto-18.1.0 → kinto-19.2.0}/Makefile +12 -1
  4. {kinto-18.1.0/kinto.egg-info → kinto-19.2.0}/PKG-INFO +3 -2
  5. {kinto-18.1.0 → kinto-19.2.0}/README.rst +1 -1
  6. {kinto-18.1.0 → kinto-19.2.0}/constraints.in +1 -0
  7. {kinto-18.1.0 → kinto-19.2.0}/constraints.txt +26 -34
  8. {kinto-18.1.0 → kinto-19.2.0}/docs/community.rst +1 -1
  9. {kinto-18.1.0 → kinto-19.2.0}/docs/configuration/production.rst +2 -7
  10. {kinto-18.1.0 → kinto-19.2.0}/docs/configuration/settings.rst +126 -84
  11. {kinto-18.1.0 → kinto-19.2.0}/docs/requirements.txt +5 -5
  12. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/__init__.py +1 -1
  13. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/initialization.py +82 -53
  14. kinto-19.2.0/kinto/core/metrics.py +57 -0
  15. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/resource/__init__.py +6 -2
  16. kinto-19.2.0/kinto/core/statsd.py +1 -0
  17. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/testing.py +5 -1
  18. kinto-19.2.0/kinto/plugins/admin/build/VERSION +1 -0
  19. kinto-19.2.0/kinto/plugins/admin/build/assets/asn1-8gHclKtu.js +1 -0
  20. kinto-19.2.0/kinto/plugins/admin/build/assets/clojure-plf_rynZ.js +1 -0
  21. kinto-19.2.0/kinto/plugins/admin/build/assets/css-tpsEXL3H.js +1 -0
  22. kinto-19.2.0/kinto/plugins/admin/build/assets/index-iVTdxamX.js +175 -0
  23. kinto-19.2.0/kinto/plugins/admin/build/assets/index-vylaZGUr.css +6 -0
  24. kinto-19.2.0/kinto/plugins/admin/build/assets/javascript-upQ8KtFH.js +1 -0
  25. kinto-19.2.0/kinto/plugins/admin/build/assets/logo-FQUYikj1.png +0 -0
  26. kinto-19.2.0/kinto/plugins/admin/build/assets/mllike-ilm95jrV.js +1 -0
  27. kinto-19.2.0/kinto/plugins/admin/build/assets/python-xljIYvii.js +1 -0
  28. kinto-19.2.0/kinto/plugins/admin/build/assets/rpm-cddeyEgF.js +1 -0
  29. kinto-19.2.0/kinto/plugins/admin/build/assets/sql-3IaSLchm.js +1 -0
  30. kinto-19.2.0/kinto/plugins/admin/build/assets/ttcn-cfg-9oMIyPXS.js +1 -0
  31. kinto-19.2.0/kinto/plugins/admin/build/index.html +18 -0
  32. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/history/__init__.py +5 -6
  33. kinto-19.2.0/kinto/plugins/prometheus.py +150 -0
  34. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/quotas/__init__.py +5 -6
  35. {kinto-18.1.0/kinto/core → kinto-19.2.0/kinto/plugins}/statsd.py +16 -21
  36. {kinto-18.1.0 → kinto-19.2.0/kinto.egg-info}/PKG-INFO +3 -2
  37. {kinto-18.1.0 → kinto-19.2.0}/kinto.egg-info/SOURCES.txt +21 -2
  38. {kinto-18.1.0 → kinto-19.2.0}/kinto.egg-info/requires.txt +1 -0
  39. {kinto-18.1.0 → kinto-19.2.0}/pyproject.toml +1 -0
  40. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_events.py +23 -5
  41. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_filter.py +9 -0
  42. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_views_cors.py +9 -0
  43. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_initialization.py +113 -48
  44. kinto-19.2.0/tests/core/test_metrics.py +49 -0
  45. {kinto-18.1.0 → kinto-19.2.0}/tests/functional.ini +1 -0
  46. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/test_history.py +18 -16
  47. kinto-19.2.0/tests/plugins/test_prometheus.py +120 -0
  48. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/test_quotas.py +18 -15
  49. kinto-19.2.0/tests/plugins/test_statsd.py +61 -0
  50. kinto-18.1.0/tests/core/test_statsd.py +0 -120
  51. {kinto-18.1.0 → kinto-19.2.0}/.dockerignore +0 -0
  52. {kinto-18.1.0 → kinto-19.2.0}/.github/CODE_OF_CONDUCT.md +0 -0
  53. {kinto-18.1.0 → kinto-19.2.0}/.github/CONTRIBUTING.md +0 -0
  54. {kinto-18.1.0 → kinto-19.2.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  55. {kinto-18.1.0 → kinto-19.2.0}/.github/dependabot.yml +0 -0
  56. {kinto-18.1.0 → kinto-19.2.0}/.github/release.yml +0 -0
  57. {kinto-18.1.0 → kinto-19.2.0}/.github/workflows/labels.yaml +0 -0
  58. {kinto-18.1.0 → kinto-19.2.0}/.gitignore +0 -0
  59. {kinto-18.1.0 → kinto-19.2.0}/CHANGELOG.rst +0 -0
  60. {kinto-18.1.0 → kinto-19.2.0}/CONTRIBUTORS.rst +0 -0
  61. {kinto-18.1.0 → kinto-19.2.0}/Dockerfile +0 -0
  62. {kinto-18.1.0 → kinto-19.2.0}/LICENSE +0 -0
  63. {kinto-18.1.0 → kinto-19.2.0}/SECURITY.md +0 -0
  64. {kinto-18.1.0 → kinto-19.2.0}/SUPPORT.md +0 -0
  65. {kinto-18.1.0 → kinto-19.2.0}/app.wsgi +0 -0
  66. {kinto-18.1.0 → kinto-19.2.0}/contribute.json +0 -0
  67. {kinto-18.1.0 → kinto-19.2.0}/docker-compose.yml +0 -0
  68. {kinto-18.1.0 → kinto-19.2.0}/docs/_static/piwik.js +0 -0
  69. {kinto-18.1.0 → kinto-19.2.0}/docs/_static/theme_overrides.css +0 -0
  70. {kinto-18.1.0 → kinto-19.2.0}/docs/_templates/footer.html +0 -0
  71. {kinto-18.1.0 → kinto-19.2.0}/docs/_templates/indexcontent.html +0 -0
  72. {kinto-18.1.0 → kinto-19.2.0}/docs/_templates/layout.html +0 -0
  73. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-delete-list.rst +0 -0
  74. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-delete-object.rst +0 -0
  75. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-get-list.rst +0 -0
  76. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-get-object.rst +0 -0
  77. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-head-list.rst +0 -0
  78. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-patch-object.rst +0 -0
  79. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-post-list.rst +0 -0
  80. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_details-put-object.rst +0 -0
  81. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_status-delete-list.rst +0 -0
  82. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_status-delete-object.rst +0 -0
  83. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_status-get-list.rst +0 -0
  84. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_status-get-object.rst +0 -0
  85. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_status-patch-object.rst +0 -0
  86. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_status-post-list.rst +0 -0
  87. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/_status-put-object.rst +0 -0
  88. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/accounts.rst +0 -0
  89. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/admin.rst +0 -0
  90. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/authentication.rst +0 -0
  91. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/backoff.rst +0 -0
  92. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/batch.rst +0 -0
  93. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/buckets.rst +0 -0
  94. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/collections.rst +0 -0
  95. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/deprecation.rst +0 -0
  96. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/errors.rst +0 -0
  97. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/filtering.rst +0 -0
  98. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/flush.rst +0 -0
  99. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/groups.rst +0 -0
  100. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/history.rst +0 -0
  101. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/index.rst +0 -0
  102. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/openapi.rst +0 -0
  103. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/openid.rst +0 -0
  104. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/pagination.rst +0 -0
  105. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/permissions.rst +0 -0
  106. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/quotas.rst +0 -0
  107. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/records.rst +0 -0
  108. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/selecting_fields.rst +0 -0
  109. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/sorting.rst +0 -0
  110. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/timestamps.rst +0 -0
  111. {kinto-18.1.0 → kinto-19.2.0}/docs/api/1.x/utilities.rst +0 -0
  112. {kinto-18.1.0 → kinto-19.2.0}/docs/api/index.rst +0 -0
  113. {kinto-18.1.0 → kinto-19.2.0}/docs/api/versioning.rst +0 -0
  114. {kinto-18.1.0 → kinto-19.2.0}/docs/changelog.rst +0 -0
  115. {kinto-18.1.0 → kinto-19.2.0}/docs/commandline.rst +0 -0
  116. {kinto-18.1.0 → kinto-19.2.0}/docs/concepts.rst +0 -0
  117. {kinto-18.1.0 → kinto-19.2.0}/docs/conf.py +0 -0
  118. {kinto-18.1.0 → kinto-19.2.0}/docs/configuration/good-practices.rst +0 -0
  119. {kinto-18.1.0 → kinto-19.2.0}/docs/configuration/index.rst +0 -0
  120. {kinto-18.1.0 → kinto-19.2.0}/docs/core/_static/theme_overrides.css +0 -0
  121. {kinto-18.1.0 → kinto-19.2.0}/docs/core/api.rst +0 -0
  122. {kinto-18.1.0 → kinto-19.2.0}/docs/core/cache.rst +0 -0
  123. {kinto-18.1.0 → kinto-19.2.0}/docs/core/decorators.rst +0 -0
  124. {kinto-18.1.0 → kinto-19.2.0}/docs/core/errors.rst +0 -0
  125. {kinto-18.1.0 → kinto-19.2.0}/docs/core/glossary.rst +0 -0
  126. {kinto-18.1.0 → kinto-19.2.0}/docs/core/images/cliquet-base.png +0 -0
  127. {kinto-18.1.0 → kinto-19.2.0}/docs/core/images/cliquet-mozilla.png +0 -0
  128. {kinto-18.1.0 → kinto-19.2.0}/docs/core/index.rst +0 -0
  129. {kinto-18.1.0 → kinto-19.2.0}/docs/core/notifications.rst +0 -0
  130. {kinto-18.1.0 → kinto-19.2.0}/docs/core/permission.rst +0 -0
  131. {kinto-18.1.0 → kinto-19.2.0}/docs/core/quickstart.rst +0 -0
  132. {kinto-18.1.0 → kinto-19.2.0}/docs/core/rationale.rst +0 -0
  133. {kinto-18.1.0 → kinto-19.2.0}/docs/core/resource.rst +0 -0
  134. {kinto-18.1.0 → kinto-19.2.0}/docs/core/storage.rst +0 -0
  135. {kinto-18.1.0 → kinto-19.2.0}/docs/core/testing.rst +0 -0
  136. {kinto-18.1.0 → kinto-19.2.0}/docs/core/utils.rst +0 -0
  137. {kinto-18.1.0 → kinto-19.2.0}/docs/core/viewsets.rst +0 -0
  138. {kinto-18.1.0 → kinto-19.2.0}/docs/faq.rst +0 -0
  139. {kinto-18.1.0 → kinto-19.2.0}/docs/images/alwaysdata-button.svg +0 -0
  140. {kinto-18.1.0 → kinto-19.2.0}/docs/images/architecture.svg +0 -0
  141. {kinto-18.1.0 → kinto-19.2.0}/docs/images/color-formatter.png +0 -0
  142. {kinto-18.1.0 → kinto-19.2.0}/docs/images/concepts-general.png +0 -0
  143. {kinto-18.1.0 → kinto-19.2.0}/docs/images/concepts-permissions.png +0 -0
  144. {kinto-18.1.0 → kinto-19.2.0}/docs/images/heroku-button.png +0 -0
  145. {kinto-18.1.0 → kinto-19.2.0}/docs/images/kinto-logo.png +0 -0
  146. {kinto-18.1.0 → kinto-19.2.0}/docs/images/kinto-logo.svg +0 -0
  147. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-admin.svg +0 -0
  148. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-attachment.svg +0 -0
  149. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-community.svg +0 -0
  150. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-demos.svg +0 -0
  151. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-history.svg +0 -0
  152. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-indexing.svg +0 -0
  153. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-javascript.svg +0 -0
  154. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-jsonschema.svg +0 -0
  155. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-livesync.svg +0 -0
  156. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-multiapps.svg +0 -0
  157. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-offline.svg +0 -0
  158. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-permissions.svg +0 -0
  159. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-python.svg +0 -0
  160. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-quotas.svg +0 -0
  161. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-selfhostable.svg +0 -0
  162. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-signature.svg +0 -0
  163. {kinto-18.1.0 → kinto-19.2.0}/docs/images/logo-synchronisation.svg +0 -0
  164. {kinto-18.1.0 → kinto-19.2.0}/docs/images/overview-deployonce-selfhost.png +0 -0
  165. {kinto-18.1.0 → kinto-19.2.0}/docs/images/overview-features.png +0 -0
  166. {kinto-18.1.0 → kinto-19.2.0}/docs/images/overview-synchronisation.png +0 -0
  167. {kinto-18.1.0 → kinto-19.2.0}/docs/images/overview-use-cases.png +0 -0
  168. {kinto-18.1.0 → kinto-19.2.0}/docs/images/scalingo-button.svg +0 -0
  169. {kinto-18.1.0 → kinto-19.2.0}/docs/images/screenshot-kinto-admin-1.png +0 -0
  170. {kinto-18.1.0 → kinto-19.2.0}/docs/images/screenshot-kinto-admin-2.png +0 -0
  171. {kinto-18.1.0 → kinto-19.2.0}/docs/images/screenshot-kinto-admin-3.png +0 -0
  172. {kinto-18.1.0 → kinto-19.2.0}/docs/images/screenshot-kinto-admin-4.png +0 -0
  173. {kinto-18.1.0 → kinto-19.2.0}/docs/images/sequence-storage.png +0 -0
  174. {kinto-18.1.0 → kinto-19.2.0}/docs/images/sync-both.svg +0 -0
  175. {kinto-18.1.0 → kinto-19.2.0}/docs/images/sync-newest.svg +0 -0
  176. {kinto-18.1.0 → kinto-19.2.0}/docs/images/sync-oldest.svg +0 -0
  177. {kinto-18.1.0 → kinto-19.2.0}/docs/index.rst +0 -0
  178. {kinto-18.1.0 → kinto-19.2.0}/docs/kinto-admin.rst +0 -0
  179. {kinto-18.1.0 → kinto-19.2.0}/docs/overview.rst +0 -0
  180. {kinto-18.1.0 → kinto-19.2.0}/docs/troubleshooting.rst +0 -0
  181. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/app-examples.rst +0 -0
  182. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/authentication-github.rst +0 -0
  183. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/client-side-encryption.rst +0 -0
  184. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/custom-id-generator.rst +0 -0
  185. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/first-steps.rst +0 -0
  186. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/index.rst +0 -0
  187. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/install.rst +0 -0
  188. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/notifications-custom.rst +0 -0
  189. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/notifications-websockets.rst +0 -0
  190. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/permission-setups.rst +0 -0
  191. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/permissions.rst +0 -0
  192. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/synchronisation.rst +0 -0
  193. {kinto-18.1.0 → kinto-19.2.0}/docs/tutorials/write-plugin.rst +0 -0
  194. {kinto-18.1.0 → kinto-19.2.0}/kinto/__init__.py +0 -0
  195. {kinto-18.1.0 → kinto-19.2.0}/kinto/__main__.py +0 -0
  196. {kinto-18.1.0 → kinto-19.2.0}/kinto/authorization.py +0 -0
  197. {kinto-18.1.0 → kinto-19.2.0}/kinto/config/__init__.py +0 -0
  198. {kinto-18.1.0 → kinto-19.2.0}/kinto/config/kinto.tpl +0 -0
  199. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/authentication.py +0 -0
  200. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/authorization.py +0 -0
  201. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/cache/__init__.py +0 -0
  202. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/cache/memcached.py +0 -0
  203. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/cache/memory.py +0 -0
  204. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/cache/postgresql/__init__.py +0 -0
  205. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/cache/postgresql/schema.sql +0 -0
  206. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/cache/testing.py +0 -0
  207. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/decorators.py +0 -0
  208. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/errors.py +0 -0
  209. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/events.py +0 -0
  210. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/listeners/__init__.py +0 -0
  211. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/openapi.py +0 -0
  212. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/permission/__init__.py +0 -0
  213. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/permission/memory.py +0 -0
  214. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/permission/postgresql/__init__.py +0 -0
  215. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
  216. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/permission/postgresql/schema.sql +0 -0
  217. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/permission/testing.py +0 -0
  218. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/resource/model.py +0 -0
  219. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/resource/schema.py +0 -0
  220. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/resource/viewset.py +0 -0
  221. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/schema.py +0 -0
  222. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/scripts.py +0 -0
  223. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/__init__.py +0 -0
  224. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/exceptions.py +0 -0
  225. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/generators.py +0 -0
  226. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/memory.py +0 -0
  227. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/__init__.py +0 -0
  228. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/client.py +0 -0
  229. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
  230. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
  231. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
  232. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
  233. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
  234. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
  235. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
  236. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
  237. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
  238. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
  239. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
  240. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
  241. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
  242. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
  243. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
  244. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
  245. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
  246. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
  247. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
  248. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
  249. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
  250. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/migrator.py +0 -0
  251. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/pool.py +0 -0
  252. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/postgresql/schema.sql +0 -0
  253. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/testing.py +0 -0
  254. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/storage/utils.py +0 -0
  255. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/utils.py +0 -0
  256. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/views/__init__.py +0 -0
  257. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/views/batch.py +0 -0
  258. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/views/errors.py +0 -0
  259. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/views/heartbeat.py +0 -0
  260. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/views/hello.py +0 -0
  261. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/views/openapi.py +0 -0
  262. {kinto-18.1.0 → kinto-19.2.0}/kinto/core/views/version.py +0 -0
  263. {kinto-18.1.0 → kinto-19.2.0}/kinto/events.py +0 -0
  264. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/__init__.py +0 -0
  265. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/accounts/__init__.py +0 -0
  266. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/accounts/authentication.py +0 -0
  267. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/accounts/mails.py +0 -0
  268. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/accounts/scripts.py +0 -0
  269. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/accounts/utils.py +0 -0
  270. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/accounts/views/__init__.py +0 -0
  271. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/accounts/views/validation.py +0 -0
  272. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/admin/README.md +0 -0
  273. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/admin/VERSION +0 -0
  274. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/admin/__init__.py +0 -0
  275. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/admin/public/help.html +0 -0
  276. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/admin/views.py +0 -0
  277. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/default_bucket/__init__.py +0 -0
  278. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/flush.py +0 -0
  279. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/history/listener.py +0 -0
  280. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/history/views.py +0 -0
  281. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/openid/__init__.py +0 -0
  282. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/openid/utils.py +0 -0
  283. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/openid/views.py +0 -0
  284. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/quotas/listener.py +0 -0
  285. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/quotas/scripts.py +0 -0
  286. {kinto-18.1.0 → kinto-19.2.0}/kinto/plugins/quotas/utils.py +0 -0
  287. {kinto-18.1.0 → kinto-19.2.0}/kinto/schema_validation.py +0 -0
  288. {kinto-18.1.0 → kinto-19.2.0}/kinto/scripts.py +0 -0
  289. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/__init__.py +0 -0
  290. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/admin.py +0 -0
  291. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/buckets.py +0 -0
  292. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/collections.py +0 -0
  293. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/contribute.py +0 -0
  294. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/groups.py +0 -0
  295. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/permissions.py +0 -0
  296. {kinto-18.1.0 → kinto-19.2.0}/kinto/views/records.py +0 -0
  297. {kinto-18.1.0 → kinto-19.2.0}/kinto.egg-info/dependency_links.txt +0 -0
  298. {kinto-18.1.0 → kinto-19.2.0}/kinto.egg-info/entry_points.txt +0 -0
  299. {kinto-18.1.0 → kinto-19.2.0}/kinto.egg-info/top_level.txt +0 -0
  300. {kinto-18.1.0 → kinto-19.2.0}/scripts/pull-kinto-admin.sh +0 -0
  301. {kinto-18.1.0 → kinto-19.2.0}/setup.cfg +0 -0
  302. {kinto-18.1.0 → kinto-19.2.0}/tests/__init__.py +0 -0
  303. {kinto-18.1.0 → kinto-19.2.0}/tests/browser.ini +0 -0
  304. {kinto-18.1.0 → kinto-19.2.0}/tests/browser.py +0 -0
  305. {kinto-18.1.0 → kinto-19.2.0}/tests/core/__init__.py +0 -0
  306. {kinto-18.1.0 → kinto-19.2.0}/tests/core/listeners.py +0 -0
  307. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/__init__.py +0 -0
  308. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_base.py +0 -0
  309. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_cache_expires.py +0 -0
  310. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_model.py +0 -0
  311. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_object.py +0 -0
  312. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_object_permissions.py +0 -0
  313. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_pagination.py +0 -0
  314. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_partial_response.py +0 -0
  315. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_preconditions.py +0 -0
  316. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_schema.py +0 -0
  317. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_sort.py +0 -0
  318. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_sync.py +0 -0
  319. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_views.py +0 -0
  320. {kinto-18.1.0 → kinto-19.2.0}/tests/core/resource/test_viewset.py +0 -0
  321. {kinto-18.1.0 → kinto-19.2.0}/tests/core/schema/postgresql-permission-1.sql +0 -0
  322. {kinto-18.1.0 → kinto-19.2.0}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
  323. {kinto-18.1.0 → kinto-19.2.0}/tests/core/schema/postgresql-storage-11.sql +0 -0
  324. {kinto-18.1.0 → kinto-19.2.0}/tests/core/support.py +0 -0
  325. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_authentication.py +0 -0
  326. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_authorization.py +0 -0
  327. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_cache.py +0 -0
  328. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_decorators.py +0 -0
  329. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_deprecation.py +0 -0
  330. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_errors.py +0 -0
  331. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_listeners.py +0 -0
  332. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_logging.py +0 -0
  333. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_openapi.py +0 -0
  334. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_permission.py +0 -0
  335. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_schema.py +0 -0
  336. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_scripts.py +0 -0
  337. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_storage.py +0 -0
  338. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_storage_migrations.py +0 -0
  339. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_storage_pool.py +0 -0
  340. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_utils.py +0 -0
  341. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_views_batch.py +0 -0
  342. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_views_errors.py +0 -0
  343. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_views_heartbeat.py +0 -0
  344. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_views_hello.py +0 -0
  345. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_views_openapi.py +0 -0
  346. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_views_postgresql.py +0 -0
  347. {kinto-18.1.0 → kinto-19.2.0}/tests/core/test_views_transaction.py +0 -0
  348. {kinto-18.1.0 → kinto-19.2.0}/tests/core/testapp/__init__.py +0 -0
  349. {kinto-18.1.0 → kinto-19.2.0}/tests/core/testapp/static/index.html +0 -0
  350. {kinto-18.1.0 → kinto-19.2.0}/tests/core/testapp/views.py +0 -0
  351. {kinto-18.1.0 → kinto-19.2.0}/tests/core/testplugin/__init__.py +0 -0
  352. {kinto-18.1.0 → kinto-19.2.0}/tests/functional.py +0 -0
  353. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/__init__.py +0 -0
  354. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/support.py +0 -0
  355. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_plugins.py +0 -0
  356. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_resources.py +0 -0
  357. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_responses_buckets.py +0 -0
  358. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_responses_collections.py +0 -0
  359. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_responses_errors.py +0 -0
  360. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_responses_groups.py +0 -0
  361. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_responses_records.py +0 -0
  362. {kinto-18.1.0 → kinto-19.2.0}/tests/openapi/test_validation.py +0 -0
  363. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/__init__.py +0 -0
  364. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/test_accounts.py +0 -0
  365. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/test_admin.py +0 -0
  366. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/test_default_bucket.py +0 -0
  367. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/test_flush.py +0 -0
  368. {kinto-18.1.0 → kinto-19.2.0}/tests/plugins/test_openid.py +0 -0
  369. {kinto-18.1.0 → kinto-19.2.0}/tests/support.py +0 -0
  370. {kinto-18.1.0 → kinto-19.2.0}/tests/test_authorization.py +0 -0
  371. {kinto-18.1.0 → kinto-19.2.0}/tests/test_config.py +0 -0
  372. {kinto-18.1.0 → kinto-19.2.0}/tests/test_configuration/test.ini +0 -0
  373. {kinto-18.1.0 → kinto-19.2.0}/tests/test_init.py +0 -0
  374. {kinto-18.1.0 → kinto-19.2.0}/tests/test_main.py +0 -0
  375. {kinto-18.1.0 → kinto-19.2.0}/tests/test_scripts.py +0 -0
  376. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_admin.py +0 -0
  377. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_buckets.py +0 -0
  378. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_collections.py +0 -0
  379. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_collections_cache.py +0 -0
  380. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_contribute.py +0 -0
  381. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_disable_default.py +0 -0
  382. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_groups.py +0 -0
  383. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_hello.py +0 -0
  384. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_objects_permissions.py +0 -0
  385. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_permissions.py +0 -0
  386. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_records.py +0 -0
  387. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_schema_collection.py +0 -0
  388. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_schema_group.py +0 -0
  389. {kinto-18.1.0 → kinto-19.2.0}/tests/test_views_schema_record.py +0 -0
  390. {kinto-18.1.0/tests/core → kinto-19.2.0/tests}/test_views_version.py +0 -0
@@ -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
@@ -179,7 +179,7 @@ jobs:
179
179
  install: true
180
180
 
181
181
  - name: Build container
182
- uses: docker/build-push-action@v5
182
+ uses: docker/build-push-action@v6
183
183
  with:
184
184
  cache-from: type=local,src=${{ env.DOCKER_CACHE}}
185
185
  cache-to: type=local,dest=${{ env.DOCKER_CACHE}},mode=max
@@ -25,8 +25,9 @@ help:
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"
@@ -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
@@ -123,6 +132,8 @@ clean:
123
132
  find . -name '*.pyc' -delete
124
133
  find . -name '__pycache__' -type d | xargs rm -fr
125
134
  rm -fr docs/_build/
135
+ docker rm -f kinto-memcached || echo ""
136
+ docker rm -f kinto-postgres || echo ""
126
137
 
127
138
  distclean: clean
128
139
  rm -fr *.egg *.egg-info/ dist/ build/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kinto
3
- Version: 18.1.0
3
+ Version: 19.2.0
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
@@ -61,6 +61,7 @@ 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"
@@ -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
@@ -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
@@ -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
@@ -1,5 +1,5 @@
1
1
  #
2
- # This file is autogenerated by pip-compile with Python 3.10
2
+ # This file is autogenerated by pip-compile with Python 3.12
3
3
  # by the following command:
4
4
  #
5
5
  # pip-compile --output-file=constraints.txt --strip-extras constraints.in
@@ -10,15 +10,15 @@ attrs==23.2.0
10
10
  # via
11
11
  # jsonschema
12
12
  # referencing
13
- bcrypt==4.1.2
13
+ bcrypt==4.2.0
14
14
  # via -r constraints.in
15
15
  beautifulsoup4==4.12.3
16
16
  # via webtest
17
17
  bravado-core==6.1.1
18
18
  # via -r constraints.in
19
- build==1.1.1
19
+ build==1.2.2.post1
20
20
  # via -r constraints.in
21
- certifi==2023.11.17
21
+ certifi==2024.7.4
22
22
  # via
23
23
  # requests
24
24
  # sentry-sdk
@@ -38,21 +38,17 @@ cornice-swagger==1.0.1
38
38
  # via -r constraints.in
39
39
  coverage==7.4.0
40
40
  # via pytest-cov
41
- dockerflow==2024.3.0
41
+ dockerflow==2024.4.2
42
42
  # via -r constraints.in
43
- exceptiongroup==1.2.0
44
- # via pytest
45
43
  execnet==2.0.2
46
44
  # via pytest-cache
47
45
  fqdn==1.5.1
48
46
  # via jsonschema
49
47
  greenlet==3.0.3
50
- # via
51
- # playwright
52
- # sqlalchemy
48
+ # via playwright
53
49
  hupper==1.12
54
50
  # via pyramid
55
- idna==3.6
51
+ idna==3.7
56
52
  # via
57
53
  # jsonschema
58
54
  # requests
@@ -70,7 +66,7 @@ jsonpointer==2.4
70
66
  # jsonschema
71
67
  jsonref==1.1.0
72
68
  # via bravado-core
73
- jsonschema==4.21.1
69
+ jsonschema==4.23.0
74
70
  # via
75
71
  # -r constraints.in
76
72
  # bravado-core
@@ -83,7 +79,7 @@ markupsafe==2.1.4
83
79
  # via werkzeug
84
80
  msgpack==1.0.7
85
81
  # via bravado-core
86
- newrelic==9.7.1
82
+ newrelic==10.1.0
87
83
  # via -r constraints.in
88
84
  packaging==23.2
89
85
  # via
@@ -98,13 +94,15 @@ plaster==1.1.2
98
94
  # pyramid
99
95
  plaster-pastedeploy==1.0.1
100
96
  # via pyramid
101
- playwright==1.42.0
97
+ playwright==1.47.0
102
98
  # via -r constraints.in
103
- pluggy==1.3.0
99
+ pluggy==1.5.0
104
100
  # via pytest
101
+ prometheus-client==0.21.0
102
+ # via -r constraints.in
105
103
  psycopg2==2.9.9
106
104
  # via -r constraints.in
107
- pyee==11.0.1
105
+ pyee==12.0.0
108
106
  # via playwright
109
107
  pyproject-hooks==1.0.0
110
108
  # via build
@@ -117,18 +115,18 @@ pyramid==2.0.2
117
115
  # pyramid-tm
118
116
  pyramid-mailer==0.15.1
119
117
  # via -r constraints.in
120
- pyramid-multiauth==1.0.1
118
+ pyramid-multiauth==1.0.2
121
119
  # via -r constraints.in
122
120
  pyramid-tm==2.5
123
121
  # via -r constraints.in
124
- pytest==7.4.4
122
+ pytest==8.3.3
125
123
  # via
126
124
  # -r constraints.in
127
125
  # pytest-cache
128
126
  # pytest-cov
129
127
  pytest-cache==1.0
130
128
  # via -r constraints.in
131
- pytest-cov==4.1.0
129
+ pytest-cov==5.0.0
132
130
  # via -r constraints.in
133
131
  python-dateutil==2.9.0.post0
134
132
  # via
@@ -151,7 +149,7 @@ referencing==0.32.1
151
149
  # jsonschema-specifications
152
150
  repoze-sendmail==4.4.1
153
151
  # via pyramid-mailer
154
- requests==2.31.0
152
+ requests==2.32.3
155
153
  # via
156
154
  # -r constraints.in
157
155
  # bravado-core
@@ -163,9 +161,9 @@ rpds-py==0.17.1
163
161
  # via
164
162
  # jsonschema
165
163
  # referencing
166
- ruff==0.3.3
164
+ ruff==0.6.9
167
165
  # via -r constraints.in
168
- sentry-sdk==1.39.2
166
+ sentry-sdk==2.8.0
169
167
  # via -r constraints.in
170
168
  simplejson==3.19.2
171
169
  # via bravado-core
@@ -177,7 +175,7 @@ six==1.16.0
177
175
  # rfc3339-validator
178
176
  soupsieve==2.5
179
177
  # via beautifulsoup4
180
- sqlalchemy==2.0.28
178
+ sqlalchemy==2.0.35
181
179
  # via
182
180
  # -r constraints.in
183
181
  # sentry-sdk
@@ -186,13 +184,7 @@ statsd==4.0.1
186
184
  # via -r constraints.in
187
185
  swagger-spec-validator==3.0.3
188
186
  # via bravado-core
189
- tomli==2.0.1
190
- # via
191
- # build
192
- # coverage
193
- # pyproject-hooks
194
- # pytest
195
- transaction==4.0
187
+ transaction==5.0
196
188
  # via
197
189
  # -r constraints.in
198
190
  # pyramid-mailer
@@ -212,7 +204,7 @@ typing-extensions==4.9.0
212
204
  # swagger-spec-validator
213
205
  uri-template==1.3.0
214
206
  # via jsonschema
215
- urllib3==2.1.0
207
+ urllib3==2.2.2
216
208
  # via
217
209
  # requests
218
210
  # sentry-sdk
@@ -224,15 +216,15 @@ waitress==3.0.0
224
216
  # via
225
217
  # -r constraints.in
226
218
  # webtest
227
- webcolors==1.13
219
+ webcolors==24.6.0
228
220
  # via jsonschema
229
- webob==1.8.7
221
+ webob==1.8.8
230
222
  # via
231
223
  # pyramid
232
224
  # webtest
233
225
  webtest==3.0.0
234
226
  # via -r constraints.in
235
- werkzeug==3.0.1
227
+ werkzeug==3.0.4
236
228
  # via -r constraints.in
237
229
  zope-deprecation==5.0
238
230
  # via pyramid
@@ -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
@@ -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
  ::::::::
@@ -301,21 +301,86 @@ hello view <api-utilities>`.
301
301
  # kinto.http_host = production.server.com:7777
302
302
 
303
303
 
304
+ .. _configuration-plugins:
305
+
306
+ Plugins
307
+ =======
308
+
309
+ It is possible to extend the default Kinto behaviors by using "plugins".
310
+
311
+ The list of plugins to load at startup can be specified in the settings, as a
312
+ list of Python modules:
313
+
314
+ .. code-block:: ini
315
+
316
+ kinto.includes = kinto.plugins.default_bucket
317
+ kinto.plugins.history
318
+ kinto.plugins.admin
319
+ kinto-attachment
320
+ custom-myplugin
321
+
322
+ +---------------------------------------+--------------------------------------------------------------------------+
323
+ | Built-in plugins | What does it do? |
324
+ +=======================================+==========================================================================+
325
+ | ``kinto.plugins.accounts`` | It allows users to sign-up and authenticate using username and password |
326
+ | | (:ref:`more details <api-accounts>`). |
327
+ +---------------------------------------+--------------------------------------------------------------------------+
328
+ | ``kinto.plugins.admin`` | It is a Web admin UI to manage data from a Kinto server. |
329
+ | | (:ref:`more details <kinto-admin>`). |
330
+ +---------------------------------------+--------------------------------------------------------------------------+
331
+ | ``kinto.plugins.default_bucket`` | It enables a personal bucket ``default``, where collections are created |
332
+ | | implicitly (:ref:`more details <buckets-default-id>`). |
333
+ +---------------------------------------+--------------------------------------------------------------------------+
334
+ | ``kinto.plugins.flush`` | Adds an endpoint to completely remove all data from the database backend |
335
+ | | for testing/staging purposes. (:ref:`more details <api-flush>`). |
336
+ +---------------------------------------+--------------------------------------------------------------------------+
337
+ | ``kinto.plugins.history`` | It tracks every action performed on objects within a bucket |
338
+ | | (:ref:`more details <api-history>`). |
339
+ +---------------------------------------+--------------------------------------------------------------------------+
340
+ | ``kinto.plugins.openid`` | It allows to authenticate users using OpenID Connect from Google, |
341
+ | | Microsoft, Auth0, etc. (:ref:`more details <api-openid>`). |
342
+ +---------------------------------------+--------------------------------------------------------------------------+
343
+ | ``kinto.plugins.quotas`` | It allows to limit storage per collection size, number of records, etc. |
344
+ | | (:ref:`more details <api-quotas>`). |
345
+ +---------------------------------------+--------------------------------------------------------------------------+
346
+ | ``kinto.plugins.prometheus`` | Send metrics about backend duration, authentication, endpoints hits, .. |
347
+ | | (:ref:`more details <monitoring-with-prometheus>`). |
348
+ +---------------------------------------+--------------------------------------------------------------------------+
349
+ | ``kinto.plugins.statsd`` | Send metrics about backend duration, authentication, endpoints hits, .. |
350
+ | | (:ref:`more details <monitoring-with-statsd>`). |
351
+ +---------------------------------------+--------------------------------------------------------------------------+
352
+
353
+
354
+ There are `many available packages`_ in the Pyramid ecosystem, and it is straightforward to build one,
355
+ since the specified module must just define an ``includeme(config)`` function.
356
+
357
+ .. _many available packages: https://github.com/ITCase/awesome-pyramid
358
+
359
+ See `our list of community plugins <https://github.com/Kinto/kinto/wiki/Plugins>`_.
360
+
361
+ See also: :ref:`tutorial-write-plugin` for more in-depth informations on how
362
+ to create your own plugin.
363
+
364
+
365
+ Pluggable components
366
+ ::::::::::::::::::::
367
+
368
+ :term:`Pluggable <pluggable>` components can be substituted from configuration files,
369
+ as long as the replacement follows the original component API.
370
+
371
+ .. code-block:: ini
372
+
373
+ kinto.logging_renderer = your_log_renderer.CustomRenderer
374
+
375
+ This is the simplest way to extend *Kinto*, but will be limited to its
376
+ existing components (cache, storage, log renderer, ...).
377
+
378
+ In order to add extra features, including external packages is the way to go!
379
+
380
+
304
381
  Logging and Monitoring
305
382
  ======================
306
383
 
307
- +------------------------+----------------------------------------+--------------------------------------------------------------------------+
308
- | Setting name | Default | What does it do? |
309
- +========================+========================================+==========================================================================+
310
- | kinto.statsd_backend | ``kinto.core.statsd`` | The Python **dotted** location of the StatsD module that should be used |
311
- | | | for monitoring. Useful to plug custom implementations like Datadog™. |
312
- +------------------------+----------------------------------------+--------------------------------------------------------------------------+
313
- | kinto.statsd_prefix | ``kinto`` | The prefix to use when sending data to statsd. |
314
- +------------------------+----------------------------------------+--------------------------------------------------------------------------+
315
- | kinto.statsd_url | ``None`` | The fully qualified URL to use to connect to the statsd host. e.g. |
316
- | | | ``udp://localhost:8125`` |
317
- +------------------------+----------------------------------------+--------------------------------------------------------------------------+
318
-
319
384
  Standard Logging
320
385
  ::::::::::::::::
321
386
 
@@ -425,109 +490,86 @@ Or the equivalent environment variables:
425
490
  The application sends an event on startup (mainly for setup check).
426
491
 
427
492
 
428
- Monitoring with StatsD
429
- ::::::::::::::::::::::
493
+ .. _monitoring-with-prometheus:
430
494
 
431
- Requires the ``statsd`` package.
495
+ Monitoring with Prometheus
496
+ ::::::::::::::::::::::::::
432
497
 
433
- StatsD metrics can be enabled (disabled by default):
498
+ Requires the ``prometheus-client`` package (installed with ``kinto[monitoring]``).
434
499
 
435
- .. code-block:: ini
436
-
437
- kinto.statsd_url = udp://localhost:8125
438
- # kinto.statsd_prefix = kinto-prod
500
+ Prometheus metrics can be enabled with (disabled by default):
439
501
 
502
+ .. code-block:: ini
440
503
 
441
- Monitoring with New Relic
442
- :::::::::::::::::::::::::
504
+ kinto.includes = kinto.plugins.prometheus
443
505
 
444
- Requires the ``newrelic`` package.
506
+ Metrics can then be crawled from the ``/__metrics__`` endpoint.
445
507
 
446
- +-----------------------+----------+--------------------------------------------------------------------------+
447
- | Setting name | Default | What does it do? |
448
- +=======================+==========+==========================================================================+
449
- | kinto.newrelic_config | ``None`` | Location of the newrelic configuration file. |
450
- +-----------------------+----------+--------------------------------------------------------------------------+
451
- | kinto.newrelic_env | ``dev`` | The environment the server runs into |
452
- +-----------------------+----------+--------------------------------------------------------------------------+
453
508
 
454
- New Relic can be enabled (disabled by default):
509
+ .. _monitoring-with-statsd:
455
510
 
456
- .. code-block:: ini
511
+ Monitoring with StatsD
512
+ ::::::::::::::::::::::
457
513
 
458
- kinto.newrelic_config = /location/of/newrelic.ini
459
- kinto.newrelic_env = prod
514
+ Requires the ``statsd`` package.
460
515
 
516
+ .. note::
461
517
 
462
- .. _configuration-plugins:
518
+ Only one of *Prometheus* and *StatsD* can be enabled. It will take precedence and the other one will be ignored.
463
519
 
464
- Plugins
465
- =======
520
+ +------------------------+----------------------------------------+--------------------------------------------------------------------------+
521
+ | Setting name | Default | What does it do? |
522
+ +========================+========================================+==========================================================================+
523
+ | kinto.statsd_backend | ``kinto.core.statsd`` | The Python **dotted** location of the StatsD module that should be used |
524
+ | | | for monitoring. Useful to plug custom implementations like Datadog™. |
525
+ +------------------------+----------------------------------------+--------------------------------------------------------------------------+
526
+ | kinto.statsd_prefix | ``kinto`` | The prefix to use when sending data to statsd. |
527
+ +------------------------+----------------------------------------+--------------------------------------------------------------------------+
528
+ | kinto.statsd_url | ``None`` | The fully qualified URL to use to connect to the statsd host. e.g. |
529
+ | | | ``udp://host:8125`` |
530
+ +------------------------+----------------------------------------+--------------------------------------------------------------------------+
466
531
 
467
- It is possible to extend the default Kinto behaviors by using "plugins".
468
532
 
469
- The list of plugins to load at startup can be specified in the settings, as a
470
- list of Python modules:
533
+ StatsD metrics can be enabled with (disabled by default):
471
534
 
472
535
  .. code-block:: ini
473
536
 
474
- kinto.includes = kinto.plugins.default_bucket
475
- kinto.plugins.history
476
- kinto.plugins.admin
477
- kinto-attachment
478
- custom-myplugin
537
+ kinto.statsd_url = udp://host:8125
538
+ # kinto.statsd_prefix = kinto-prod
479
539
 
480
- +---------------------------------------+--------------------------------------------------------------------------+
481
- | Built-in plugins | What does it do? |
482
- +=======================================+==========================================================================+
483
- | ``kinto.plugins.accounts`` | It allows users to sign-up and authenticate using username and password |
484
- | | (:ref:`more details <api-accounts>`). |
485
- +---------------------------------------+--------------------------------------------------------------------------+
486
- | ``kinto.plugins.admin`` | It is a Web admin UI to manage data from a Kinto server. |
487
- | | (:ref:`more details <kinto-admin>`). |
488
- +---------------------------------------+--------------------------------------------------------------------------+
489
- | ``kinto.plugins.default_bucket`` | It enables a personal bucket ``default``, where collections are created |
490
- | | implicitly (:ref:`more details <buckets-default-id>`). |
491
- +---------------------------------------+--------------------------------------------------------------------------+
492
- | ``kinto.plugins.flush`` | Adds an endpoint to completely remove all data from the database backend |
493
- | | for testing/staging purposes. (:ref:`more details <api-flush>`). |
494
- +---------------------------------------+--------------------------------------------------------------------------+
495
- | ``kinto.plugins.history`` | It tracks every action performed on objects within a bucket |
496
- | | (:ref:`more details <api-history>`). |
497
- +---------------------------------------+--------------------------------------------------------------------------+
498
- | ``kinto.plugins.openid`` | It allows to authenticate users using OpenID Connect from Google, |
499
- | | Microsoft, Auth0, etc. (:ref:`more details <api-openid>`). |
500
- +---------------------------------------+--------------------------------------------------------------------------+
501
- | ``kinto.plugins.quotas`` | It allows to limit storage per collection size, number of records, etc. |
502
- | | (:ref:`more details <api-quotas>`). |
503
- +---------------------------------------+--------------------------------------------------------------------------+
504
540
 
541
+ StatsD can also be enabled at the *uWSGI* level:
505
542
 
506
- There are `many available packages`_ in Pyramid ecosystem, and it is straightforward to build one,
507
- since the specified module must just define an ``includeme(config)`` function.
543
+ .. code-block:: ini
508
544
 
509
- .. _many available packages: https://github.com/ITCase/awesome-pyramid
545
+ [uwsgi]
510
546
 
511
- See `our list of community plugins <https://github.com/Kinto/kinto/wiki/Plugins>`_.
547
+ # ...
512
548
 
513
- See also: :ref:`tutorial-write-plugin` for more in-depth informations on how
514
- to create your own plugin.
549
+ enable-metrics = true
550
+ plugin = dogstatsd
551
+ stats-push = dogstatsd:host:8125,kinto.{{ $deployment }}
515
552
 
516
553
 
517
- Pluggable components
518
- ::::::::::::::::::::
554
+ Monitoring with New Relic
555
+ :::::::::::::::::::::::::
519
556
 
520
- :term:`Pluggable <pluggable>` components can be substituted from configuration files,
521
- as long as the replacement follows the original component API.
557
+ Requires the ``newrelic`` package.
522
558
 
523
- .. code-block:: ini
559
+ +-----------------------+----------+--------------------------------------------------------------------------+
560
+ | Setting name | Default | What does it do? |
561
+ +=======================+==========+==========================================================================+
562
+ | kinto.newrelic_config | ``None`` | Location of the newrelic configuration file. |
563
+ +-----------------------+----------+--------------------------------------------------------------------------+
564
+ | kinto.newrelic_env | ``dev`` | The environment the server runs into |
565
+ +-----------------------+----------+--------------------------------------------------------------------------+
524
566
 
525
- kinto.logging_renderer = your_log_renderer.CustomRenderer
567
+ New Relic can be enabled (disabled by default):
526
568
 
527
- This is the simplest way to extend *Kinto*, but will be limited to its
528
- existing components (cache, storage, log renderer, ...).
569
+ .. code-block:: ini
529
570
 
530
- In order to add extra features, including external packages is the way to go!
571
+ kinto.newrelic_config = /location/of/newrelic.ini
572
+ kinto.newrelic_env = prod
531
573
 
532
574
 
533
575
  .. _configuration-authentication:
@@ -1,12 +1,12 @@
1
- Sphinx==7.2.6
1
+ Sphinx==7.4.4
2
2
  sphinx_rtd_theme==2.0.0
3
3
  docutils==0.20.1
4
4
  sphinxcontrib-httpdomain==1.8.1
5
- sphinx-github-changelog==1.3.0
5
+ sphinx-github-changelog==1.4.0
6
6
  kinto
7
7
  mock==5.1.0
8
- webtest==3.0.0
8
+ webtest==3.0.1
9
9
  cornice==6.1.0
10
10
  pyramid==2.0.2
11
- python-rapidjson==1.16
12
- SQLAlchemy==2.0.28
11
+ python-rapidjson==1.20
12
+ SQLAlchemy==2.0.35
@@ -66,8 +66,8 @@ DEFAULT_SETTINGS = {
66
66
  "kinto.core.initialization.setup_authentication",
67
67
  "kinto.core.initialization.setup_backoff",
68
68
  "kinto.core.initialization.setup_sentry",
69
- "kinto.core.initialization.setup_statsd",
70
69
  "kinto.core.initialization.setup_listeners",
70
+ "kinto.core.initialization.setup_metrics",
71
71
  "kinto.core.events.setup_transaction_hook",
72
72
  ),
73
73
  "event_listeners": "",