kinto 18.1.1__tar.gz → 19.3.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.1 → kinto-19.3.0}/.github/workflows/test.yml +1 -3
  2. {kinto-18.1.1 → kinto-19.3.0}/Dockerfile +2 -2
  3. {kinto-18.1.1/kinto.egg-info → kinto-19.3.0}/PKG-INFO +5 -4
  4. {kinto-18.1.1 → kinto-19.3.0}/README.rst +2 -2
  5. {kinto-18.1.1 → kinto-19.3.0}/constraints.in +1 -0
  6. {kinto-18.1.1 → kinto-19.3.0}/constraints.txt +21 -27
  7. {kinto-18.1.1 → kinto-19.3.0}/docs/conf.py +0 -3
  8. {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/production.rst +2 -7
  9. {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/settings.rst +126 -84
  10. kinto-19.3.0/docs/requirements.txt +12 -0
  11. {kinto-18.1.1 → kinto-19.3.0}/kinto/__init__.py +1 -0
  12. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/__init__.py +2 -1
  13. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/initialization.py +132 -53
  14. kinto-19.3.0/kinto/core/metrics.py +93 -0
  15. kinto-19.3.0/kinto/core/statsd.py +1 -0
  16. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/testing.py +5 -1
  17. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/utils.py +8 -0
  18. kinto-19.3.0/kinto/plugins/admin/VERSION +1 -0
  19. kinto-19.3.0/kinto/plugins/admin/build/VERSION +1 -0
  20. kinto-19.3.0/kinto/plugins/admin/build/assets/index-BKIg2XW8.js +165 -0
  21. kinto-18.1.1/kinto/plugins/admin/build/assets/index-vylaZGUr.css → kinto-19.3.0/kinto/plugins/admin/build/assets/index-D8oiN37x.css +1 -1
  22. kinto-18.1.1/kinto/plugins/admin/build/assets/javascript-upQ8KtFH.js → kinto-19.3.0/kinto/plugins/admin/build/assets/javascript-iSgyE4tI.js +1 -1
  23. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/build/index.html +2 -2
  24. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/history/__init__.py +5 -6
  25. kinto-19.3.0/kinto/plugins/prometheus.py +186 -0
  26. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/__init__.py +5 -6
  27. {kinto-18.1.1/kinto/core → kinto-19.3.0/kinto/plugins}/statsd.py +29 -22
  28. {kinto-18.1.1 → kinto-19.3.0/kinto.egg-info}/PKG-INFO +5 -4
  29. {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/SOURCES.txt +19 -13
  30. {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/requires.txt +1 -0
  31. {kinto-18.1.1 → kinto-19.3.0}/pyproject.toml +2 -1
  32. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_events.py +23 -5
  33. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_views.py +4 -5
  34. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_initialization.py +162 -57
  35. kinto-19.3.0/tests/core/test_metrics.py +49 -0
  36. {kinto-18.1.1 → kinto-19.3.0}/tests/functional.ini +1 -0
  37. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_history.py +18 -16
  38. kinto-19.3.0/tests/plugins/test_prometheus.py +142 -0
  39. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_quotas.py +18 -15
  40. kinto-19.3.0/tests/plugins/test_statsd.py +76 -0
  41. kinto-19.3.0/tests/test_views_metrics.py +45 -0
  42. kinto-18.1.1/docs/requirements.txt +0 -12
  43. kinto-18.1.1/kinto/plugins/admin/VERSION +0 -1
  44. kinto-18.1.1/kinto/plugins/admin/build/VERSION +0 -1
  45. kinto-18.1.1/kinto/plugins/admin/build/assets/index-iVTdxamX.js +0 -175
  46. kinto-18.1.1/tests/core/test_statsd.py +0 -120
  47. {kinto-18.1.1 → kinto-19.3.0}/.dockerignore +0 -0
  48. {kinto-18.1.1 → kinto-19.3.0}/.github/CODE_OF_CONDUCT.md +0 -0
  49. {kinto-18.1.1 → kinto-19.3.0}/.github/CONTRIBUTING.md +0 -0
  50. {kinto-18.1.1 → kinto-19.3.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  51. {kinto-18.1.1 → kinto-19.3.0}/.github/dependabot.yml +0 -0
  52. {kinto-18.1.1 → kinto-19.3.0}/.github/release.yml +0 -0
  53. {kinto-18.1.1 → kinto-19.3.0}/.github/workflows/labels.yaml +0 -0
  54. {kinto-18.1.1 → kinto-19.3.0}/.github/workflows/publish.yml +0 -0
  55. {kinto-18.1.1 → kinto-19.3.0}/.gitignore +0 -0
  56. {kinto-18.1.1 → kinto-19.3.0}/CHANGELOG.rst +0 -0
  57. {kinto-18.1.1 → kinto-19.3.0}/CONTRIBUTORS.rst +0 -0
  58. {kinto-18.1.1 → kinto-19.3.0}/LICENSE +0 -0
  59. {kinto-18.1.1 → kinto-19.3.0}/Makefile +0 -0
  60. {kinto-18.1.1 → kinto-19.3.0}/SECURITY.md +0 -0
  61. {kinto-18.1.1 → kinto-19.3.0}/SUPPORT.md +0 -0
  62. {kinto-18.1.1 → kinto-19.3.0}/app.wsgi +0 -0
  63. {kinto-18.1.1 → kinto-19.3.0}/contribute.json +0 -0
  64. {kinto-18.1.1 → kinto-19.3.0}/docker-compose.yml +0 -0
  65. {kinto-18.1.1 → kinto-19.3.0}/docs/_static/piwik.js +0 -0
  66. {kinto-18.1.1 → kinto-19.3.0}/docs/_static/theme_overrides.css +0 -0
  67. {kinto-18.1.1 → kinto-19.3.0}/docs/_templates/footer.html +0 -0
  68. {kinto-18.1.1 → kinto-19.3.0}/docs/_templates/indexcontent.html +0 -0
  69. {kinto-18.1.1 → kinto-19.3.0}/docs/_templates/layout.html +0 -0
  70. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-delete-list.rst +0 -0
  71. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-delete-object.rst +0 -0
  72. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-get-list.rst +0 -0
  73. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-get-object.rst +0 -0
  74. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-head-list.rst +0 -0
  75. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-patch-object.rst +0 -0
  76. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-post-list.rst +0 -0
  77. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-put-object.rst +0 -0
  78. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-delete-list.rst +0 -0
  79. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-delete-object.rst +0 -0
  80. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-get-list.rst +0 -0
  81. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-get-object.rst +0 -0
  82. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-patch-object.rst +0 -0
  83. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-post-list.rst +0 -0
  84. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-put-object.rst +0 -0
  85. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/accounts.rst +0 -0
  86. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/admin.rst +0 -0
  87. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/authentication.rst +0 -0
  88. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/backoff.rst +0 -0
  89. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/batch.rst +0 -0
  90. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/buckets.rst +0 -0
  91. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/collections.rst +0 -0
  92. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/deprecation.rst +0 -0
  93. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/errors.rst +0 -0
  94. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/filtering.rst +0 -0
  95. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/flush.rst +0 -0
  96. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/groups.rst +0 -0
  97. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/history.rst +0 -0
  98. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/index.rst +0 -0
  99. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/openapi.rst +0 -0
  100. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/openid.rst +0 -0
  101. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/pagination.rst +0 -0
  102. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/permissions.rst +0 -0
  103. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/quotas.rst +0 -0
  104. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/records.rst +0 -0
  105. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/selecting_fields.rst +0 -0
  106. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/sorting.rst +0 -0
  107. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/timestamps.rst +0 -0
  108. {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/utilities.rst +0 -0
  109. {kinto-18.1.1 → kinto-19.3.0}/docs/api/index.rst +0 -0
  110. {kinto-18.1.1 → kinto-19.3.0}/docs/api/versioning.rst +0 -0
  111. {kinto-18.1.1 → kinto-19.3.0}/docs/changelog.rst +0 -0
  112. {kinto-18.1.1 → kinto-19.3.0}/docs/commandline.rst +0 -0
  113. {kinto-18.1.1 → kinto-19.3.0}/docs/community.rst +0 -0
  114. {kinto-18.1.1 → kinto-19.3.0}/docs/concepts.rst +0 -0
  115. {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/good-practices.rst +0 -0
  116. {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/index.rst +0 -0
  117. {kinto-18.1.1 → kinto-19.3.0}/docs/core/_static/theme_overrides.css +0 -0
  118. {kinto-18.1.1 → kinto-19.3.0}/docs/core/api.rst +0 -0
  119. {kinto-18.1.1 → kinto-19.3.0}/docs/core/cache.rst +0 -0
  120. {kinto-18.1.1 → kinto-19.3.0}/docs/core/decorators.rst +0 -0
  121. {kinto-18.1.1 → kinto-19.3.0}/docs/core/errors.rst +0 -0
  122. {kinto-18.1.1 → kinto-19.3.0}/docs/core/glossary.rst +0 -0
  123. {kinto-18.1.1 → kinto-19.3.0}/docs/core/images/cliquet-base.png +0 -0
  124. {kinto-18.1.1 → kinto-19.3.0}/docs/core/images/cliquet-mozilla.png +0 -0
  125. {kinto-18.1.1 → kinto-19.3.0}/docs/core/index.rst +0 -0
  126. {kinto-18.1.1 → kinto-19.3.0}/docs/core/notifications.rst +0 -0
  127. {kinto-18.1.1 → kinto-19.3.0}/docs/core/permission.rst +0 -0
  128. {kinto-18.1.1 → kinto-19.3.0}/docs/core/quickstart.rst +0 -0
  129. {kinto-18.1.1 → kinto-19.3.0}/docs/core/rationale.rst +0 -0
  130. {kinto-18.1.1 → kinto-19.3.0}/docs/core/resource.rst +0 -0
  131. {kinto-18.1.1 → kinto-19.3.0}/docs/core/storage.rst +0 -0
  132. {kinto-18.1.1 → kinto-19.3.0}/docs/core/testing.rst +0 -0
  133. {kinto-18.1.1 → kinto-19.3.0}/docs/core/utils.rst +0 -0
  134. {kinto-18.1.1 → kinto-19.3.0}/docs/core/viewsets.rst +0 -0
  135. {kinto-18.1.1 → kinto-19.3.0}/docs/faq.rst +0 -0
  136. {kinto-18.1.1 → kinto-19.3.0}/docs/images/alwaysdata-button.svg +0 -0
  137. {kinto-18.1.1 → kinto-19.3.0}/docs/images/architecture.svg +0 -0
  138. {kinto-18.1.1 → kinto-19.3.0}/docs/images/color-formatter.png +0 -0
  139. {kinto-18.1.1 → kinto-19.3.0}/docs/images/concepts-general.png +0 -0
  140. {kinto-18.1.1 → kinto-19.3.0}/docs/images/concepts-permissions.png +0 -0
  141. {kinto-18.1.1 → kinto-19.3.0}/docs/images/heroku-button.png +0 -0
  142. {kinto-18.1.1 → kinto-19.3.0}/docs/images/kinto-logo.png +0 -0
  143. {kinto-18.1.1 → kinto-19.3.0}/docs/images/kinto-logo.svg +0 -0
  144. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-admin.svg +0 -0
  145. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-attachment.svg +0 -0
  146. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-community.svg +0 -0
  147. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-demos.svg +0 -0
  148. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-history.svg +0 -0
  149. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-indexing.svg +0 -0
  150. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-javascript.svg +0 -0
  151. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-jsonschema.svg +0 -0
  152. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-livesync.svg +0 -0
  153. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-multiapps.svg +0 -0
  154. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-offline.svg +0 -0
  155. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-permissions.svg +0 -0
  156. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-python.svg +0 -0
  157. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-quotas.svg +0 -0
  158. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-selfhostable.svg +0 -0
  159. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-signature.svg +0 -0
  160. {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-synchronisation.svg +0 -0
  161. {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-deployonce-selfhost.png +0 -0
  162. {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-features.png +0 -0
  163. {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-synchronisation.png +0 -0
  164. {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-use-cases.png +0 -0
  165. {kinto-18.1.1 → kinto-19.3.0}/docs/images/scalingo-button.svg +0 -0
  166. {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-1.png +0 -0
  167. {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-2.png +0 -0
  168. {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-3.png +0 -0
  169. {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-4.png +0 -0
  170. {kinto-18.1.1 → kinto-19.3.0}/docs/images/sequence-storage.png +0 -0
  171. {kinto-18.1.1 → kinto-19.3.0}/docs/images/sync-both.svg +0 -0
  172. {kinto-18.1.1 → kinto-19.3.0}/docs/images/sync-newest.svg +0 -0
  173. {kinto-18.1.1 → kinto-19.3.0}/docs/images/sync-oldest.svg +0 -0
  174. {kinto-18.1.1 → kinto-19.3.0}/docs/index.rst +0 -0
  175. {kinto-18.1.1 → kinto-19.3.0}/docs/kinto-admin.rst +0 -0
  176. {kinto-18.1.1 → kinto-19.3.0}/docs/overview.rst +0 -0
  177. {kinto-18.1.1 → kinto-19.3.0}/docs/troubleshooting.rst +0 -0
  178. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/app-examples.rst +0 -0
  179. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/authentication-github.rst +0 -0
  180. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/client-side-encryption.rst +0 -0
  181. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/custom-id-generator.rst +0 -0
  182. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/first-steps.rst +0 -0
  183. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/index.rst +0 -0
  184. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/install.rst +0 -0
  185. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/notifications-custom.rst +0 -0
  186. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/notifications-websockets.rst +0 -0
  187. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/permission-setups.rst +0 -0
  188. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/permissions.rst +0 -0
  189. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/synchronisation.rst +0 -0
  190. {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/write-plugin.rst +0 -0
  191. {kinto-18.1.1 → kinto-19.3.0}/kinto/__main__.py +0 -0
  192. {kinto-18.1.1 → kinto-19.3.0}/kinto/authorization.py +0 -0
  193. {kinto-18.1.1 → kinto-19.3.0}/kinto/config/__init__.py +0 -0
  194. {kinto-18.1.1 → kinto-19.3.0}/kinto/config/kinto.tpl +0 -0
  195. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/authentication.py +0 -0
  196. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/authorization.py +0 -0
  197. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/__init__.py +0 -0
  198. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/memcached.py +0 -0
  199. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/memory.py +0 -0
  200. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/postgresql/__init__.py +0 -0
  201. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/postgresql/schema.sql +0 -0
  202. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/testing.py +0 -0
  203. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/decorators.py +0 -0
  204. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/errors.py +0 -0
  205. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/events.py +0 -0
  206. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/listeners/__init__.py +0 -0
  207. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/openapi.py +0 -0
  208. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/__init__.py +0 -0
  209. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/memory.py +0 -0
  210. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/postgresql/__init__.py +0 -0
  211. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
  212. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/postgresql/schema.sql +0 -0
  213. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/testing.py +0 -0
  214. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/__init__.py +0 -0
  215. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/model.py +0 -0
  216. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/schema.py +0 -0
  217. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/viewset.py +0 -0
  218. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/schema.py +0 -0
  219. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/scripts.py +0 -0
  220. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/__init__.py +0 -0
  221. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/exceptions.py +0 -0
  222. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/generators.py +0 -0
  223. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/memory.py +0 -0
  224. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/__init__.py +0 -0
  225. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/client.py +0 -0
  226. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
  227. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
  228. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
  229. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
  230. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
  231. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
  232. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
  233. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
  234. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
  235. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
  236. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
  237. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
  238. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
  239. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
  240. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
  241. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
  242. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
  243. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
  244. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
  245. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
  246. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
  247. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrator.py +0 -0
  248. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/pool.py +0 -0
  249. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/schema.sql +0 -0
  250. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/testing.py +0 -0
  251. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/utils.py +0 -0
  252. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/__init__.py +0 -0
  253. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/batch.py +0 -0
  254. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/errors.py +0 -0
  255. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/heartbeat.py +0 -0
  256. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/hello.py +0 -0
  257. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/openapi.py +0 -0
  258. {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/version.py +0 -0
  259. {kinto-18.1.1 → kinto-19.3.0}/kinto/events.py +0 -0
  260. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/__init__.py +0 -0
  261. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/__init__.py +0 -0
  262. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/authentication.py +0 -0
  263. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/mails.py +0 -0
  264. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/scripts.py +0 -0
  265. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/utils.py +0 -0
  266. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/views/__init__.py +0 -0
  267. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/views/validation.py +0 -0
  268. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/README.md +0 -0
  269. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/__init__.py +0 -0
  270. /kinto-18.1.1/kinto/plugins/admin/build/assets/asn1-8gHclKtu.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/asn1-CGOzndHr.js +0 -0
  271. /kinto-18.1.1/kinto/plugins/admin/build/assets/clojure-plf_rynZ.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/clojure-BMjYHr_A.js +0 -0
  272. /kinto-18.1.1/kinto/plugins/admin/build/assets/css-tpsEXL3H.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/css-BnMrqG3P.js +0 -0
  273. /kinto-18.1.1/kinto/plugins/admin/build/assets/logo-FQUYikj1.png → /kinto-19.3.0/kinto/plugins/admin/build/assets/logo-VBRiKSPX.png +0 -0
  274. /kinto-18.1.1/kinto/plugins/admin/build/assets/mllike-ilm95jrV.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/mllike-C_8OmSiT.js +0 -0
  275. /kinto-18.1.1/kinto/plugins/admin/build/assets/python-xljIYvii.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/python-BuPzkPfP.js +0 -0
  276. /kinto-18.1.1/kinto/plugins/admin/build/assets/rpm-cddeyEgF.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/rpm-CTu-6PCP.js +0 -0
  277. /kinto-18.1.1/kinto/plugins/admin/build/assets/sql-3IaSLchm.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/sql-C4g8LzGK.js +0 -0
  278. /kinto-18.1.1/kinto/plugins/admin/build/assets/ttcn-cfg-9oMIyPXS.js → /kinto-19.3.0/kinto/plugins/admin/build/assets/ttcn-cfg-BIkV9KBc.js +0 -0
  279. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/public/help.html +0 -0
  280. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/views.py +0 -0
  281. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/default_bucket/__init__.py +0 -0
  282. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/flush.py +0 -0
  283. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/history/listener.py +0 -0
  284. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/history/views.py +0 -0
  285. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/openid/__init__.py +0 -0
  286. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/openid/utils.py +0 -0
  287. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/openid/views.py +0 -0
  288. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/listener.py +0 -0
  289. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/scripts.py +0 -0
  290. {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/utils.py +0 -0
  291. {kinto-18.1.1 → kinto-19.3.0}/kinto/schema_validation.py +0 -0
  292. {kinto-18.1.1 → kinto-19.3.0}/kinto/scripts.py +0 -0
  293. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/__init__.py +0 -0
  294. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/admin.py +0 -0
  295. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/buckets.py +0 -0
  296. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/collections.py +0 -0
  297. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/contribute.py +0 -0
  298. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/groups.py +0 -0
  299. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/permissions.py +0 -0
  300. {kinto-18.1.1 → kinto-19.3.0}/kinto/views/records.py +0 -0
  301. {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/dependency_links.txt +0 -0
  302. {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/entry_points.txt +0 -0
  303. {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/top_level.txt +0 -0
  304. {kinto-18.1.1 → kinto-19.3.0}/scripts/pull-kinto-admin.sh +0 -0
  305. {kinto-18.1.1 → kinto-19.3.0}/setup.cfg +0 -0
  306. {kinto-18.1.1 → kinto-19.3.0}/tests/__init__.py +0 -0
  307. {kinto-18.1.1 → kinto-19.3.0}/tests/browser.ini +0 -0
  308. {kinto-18.1.1 → kinto-19.3.0}/tests/browser.py +0 -0
  309. {kinto-18.1.1 → kinto-19.3.0}/tests/core/__init__.py +0 -0
  310. {kinto-18.1.1 → kinto-19.3.0}/tests/core/listeners.py +0 -0
  311. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/__init__.py +0 -0
  312. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_base.py +0 -0
  313. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_cache_expires.py +0 -0
  314. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_filter.py +0 -0
  315. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_model.py +0 -0
  316. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_object.py +0 -0
  317. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_object_permissions.py +0 -0
  318. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_pagination.py +0 -0
  319. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_partial_response.py +0 -0
  320. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_preconditions.py +0 -0
  321. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_schema.py +0 -0
  322. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_sort.py +0 -0
  323. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_sync.py +0 -0
  324. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_views_cors.py +0 -0
  325. {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_viewset.py +0 -0
  326. {kinto-18.1.1 → kinto-19.3.0}/tests/core/schema/postgresql-permission-1.sql +0 -0
  327. {kinto-18.1.1 → kinto-19.3.0}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
  328. {kinto-18.1.1 → kinto-19.3.0}/tests/core/schema/postgresql-storage-11.sql +0 -0
  329. {kinto-18.1.1 → kinto-19.3.0}/tests/core/support.py +0 -0
  330. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_authentication.py +0 -0
  331. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_authorization.py +0 -0
  332. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_cache.py +0 -0
  333. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_decorators.py +0 -0
  334. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_deprecation.py +0 -0
  335. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_errors.py +0 -0
  336. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_listeners.py +0 -0
  337. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_logging.py +0 -0
  338. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_openapi.py +0 -0
  339. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_permission.py +0 -0
  340. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_schema.py +0 -0
  341. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_scripts.py +0 -0
  342. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_storage.py +0 -0
  343. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_storage_migrations.py +0 -0
  344. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_storage_pool.py +0 -0
  345. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_utils.py +0 -0
  346. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_batch.py +0 -0
  347. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_errors.py +0 -0
  348. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_heartbeat.py +0 -0
  349. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_hello.py +0 -0
  350. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_openapi.py +0 -0
  351. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_postgresql.py +0 -0
  352. {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_transaction.py +0 -0
  353. {kinto-18.1.1 → kinto-19.3.0}/tests/core/testapp/__init__.py +0 -0
  354. {kinto-18.1.1 → kinto-19.3.0}/tests/core/testapp/static/index.html +0 -0
  355. {kinto-18.1.1 → kinto-19.3.0}/tests/core/testapp/views.py +0 -0
  356. {kinto-18.1.1 → kinto-19.3.0}/tests/core/testplugin/__init__.py +0 -0
  357. {kinto-18.1.1 → kinto-19.3.0}/tests/functional.py +0 -0
  358. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/__init__.py +0 -0
  359. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/support.py +0 -0
  360. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_plugins.py +0 -0
  361. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_resources.py +0 -0
  362. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_buckets.py +0 -0
  363. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_collections.py +0 -0
  364. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_errors.py +0 -0
  365. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_groups.py +0 -0
  366. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_records.py +0 -0
  367. {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_validation.py +0 -0
  368. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/__init__.py +0 -0
  369. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_accounts.py +0 -0
  370. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_admin.py +0 -0
  371. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_default_bucket.py +0 -0
  372. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_flush.py +0 -0
  373. {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_openid.py +0 -0
  374. {kinto-18.1.1 → kinto-19.3.0}/tests/support.py +0 -0
  375. {kinto-18.1.1 → kinto-19.3.0}/tests/test_authorization.py +0 -0
  376. {kinto-18.1.1 → kinto-19.3.0}/tests/test_config.py +0 -0
  377. {kinto-18.1.1 → kinto-19.3.0}/tests/test_configuration/test.ini +0 -0
  378. {kinto-18.1.1 → kinto-19.3.0}/tests/test_init.py +0 -0
  379. {kinto-18.1.1 → kinto-19.3.0}/tests/test_main.py +0 -0
  380. {kinto-18.1.1 → kinto-19.3.0}/tests/test_scripts.py +0 -0
  381. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_admin.py +0 -0
  382. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_buckets.py +0 -0
  383. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_collections.py +0 -0
  384. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_collections_cache.py +0 -0
  385. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_contribute.py +0 -0
  386. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_disable_default.py +0 -0
  387. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_groups.py +0 -0
  388. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_hello.py +0 -0
  389. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_objects_permissions.py +0 -0
  390. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_permissions.py +0 -0
  391. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_records.py +0 -0
  392. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_schema_collection.py +0 -0
  393. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_schema_group.py +0 -0
  394. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_schema_record.py +0 -0
  395. {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_version.py +0 -0
@@ -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
@@ -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"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kinto
3
- Version: 18.1.1
3
+ Version: 19.3.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.3
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.2.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
@@ -40,13 +40,11 @@ coverage==7.4.0
40
40
  # via pytest-cov
41
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
@@ -70,7 +68,7 @@ jsonpointer==2.4
70
68
  # jsonschema
71
69
  jsonref==1.1.0
72
70
  # via bravado-core
73
- jsonschema==4.22.0
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.11.0
84
+ newrelic==10.2.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.44.0
99
+ playwright==1.48.0
102
100
  # via -r constraints.in
103
101
  pluggy==1.5.0
104
102
  # via pytest
105
- psycopg2==2.9.9
103
+ prometheus-client==0.21.0
104
+ # via -r constraints.in
105
+ psycopg2==2.9.10
106
106
  # via -r constraints.in
107
- pyee==11.1.0
107
+ pyee==12.0.0
108
108
  # via playwright
109
109
  pyproject-hooks==1.0.0
110
110
  # via build
@@ -121,7 +121,7 @@ pyramid-multiauth==1.0.2
121
121
  # via -r constraints.in
122
122
  pyramid-tm==2.5
123
123
  # via -r constraints.in
124
- pytest==8.2.2
124
+ pytest==8.3.3
125
125
  # via
126
126
  # -r constraints.in
127
127
  # pytest-cache
@@ -163,9 +163,9 @@ rpds-py==0.17.1
163
163
  # via
164
164
  # jsonschema
165
165
  # referencing
166
- ruff==0.4.9
166
+ ruff==0.7.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.30
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
@@ -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.1
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.3
229
+ werkzeug==3.0.6
236
230
  # via -r constraints.in
237
231
  zope-deprecation==5.0
238
232
  # via pyramid
@@ -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,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:
@@ -0,0 +1,12 @@
1
+ Sphinx==8.1.3
2
+ sphinx_rtd_theme==3.0.1
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.1
9
+ cornice==6.1.0
10
+ pyramid==2.0.2
11
+ python-rapidjson==1.20
12
+ SQLAlchemy==2.0.36
@@ -38,6 +38,7 @@ DEFAULT_SETTINGS = {
38
38
  "record_id_generator": "kinto.views.RelaxedUUID",
39
39
  "project_name": "kinto",
40
40
  "admin_assets_path": None,
41
+ "metrics_matchdict_fields": ["bucket_id", "collection_id", "group_id", "record_id"],
41
42
  }
42
43
 
43
44
 
@@ -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": "",
@@ -96,6 +96,7 @@ DEFAULT_SETTINGS = {
96
96
  "statsd_backend": "kinto.core.statsd",
97
97
  "statsd_prefix": "kinto.core",
98
98
  "statsd_url": None,
99
+ "metrics_matchdict_fields": [],
99
100
  "storage_backend": "",
100
101
  "storage_url": "",
101
102
  "storage_max_fetch_size": 10000,