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