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.
- {kinto-18.1.0 → kinto-19.4.0}/.github/workflows/publish.yml +1 -1
- {kinto-18.1.0 → kinto-19.4.0}/.github/workflows/test.yml +2 -4
- {kinto-18.1.0 → kinto-19.4.0}/Dockerfile +2 -2
- {kinto-18.1.0 → kinto-19.4.0}/Makefile +12 -1
- {kinto-18.1.0/kinto.egg-info → kinto-19.4.0}/PKG-INFO +6 -5
- {kinto-18.1.0 → kinto-19.4.0}/README.rst +2 -2
- {kinto-18.1.0 → kinto-19.4.0}/constraints.in +1 -0
- {kinto-18.1.0 → kinto-19.4.0}/constraints.txt +30 -36
- {kinto-18.1.0 → kinto-19.4.0}/docs/community.rst +1 -1
- {kinto-18.1.0 → kinto-19.4.0}/docs/conf.py +0 -3
- {kinto-18.1.0 → kinto-19.4.0}/docs/configuration/production.rst +2 -7
- {kinto-18.1.0 → kinto-19.4.0}/docs/configuration/settings.rst +127 -83
- kinto-19.4.0/docs/requirements.txt +12 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/__init__.py +1 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/__main__.py +1 -2
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/__init__.py +4 -5
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/initialization.py +135 -54
- kinto-19.4.0/kinto/core/metrics.py +93 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/permission/postgresql/__init__.py +9 -9
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/resource/__init__.py +9 -4
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/resource/schema.py +1 -2
- kinto-19.4.0/kinto/core/statsd.py +1 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/client.py +2 -2
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/testing.py +5 -1
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/utils.py +11 -2
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/views/errors.py +2 -3
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/accounts/__init__.py +1 -2
- kinto-19.4.0/kinto/plugins/admin/VERSION +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/VERSION +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/asn1-CGOzndHr.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/clojure-BMjYHr_A.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/css-BnMrqG3P.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/index-BKIg2XW8.js +165 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/index-D8oiN37x.css +6 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/javascript-iSgyE4tI.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/logo-VBRiKSPX.png +0 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/mllike-C_8OmSiT.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/python-BuPzkPfP.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/rpm-CTu-6PCP.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/sql-C4g8LzGK.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/assets/ttcn-cfg-BIkV9KBc.js +1 -0
- kinto-19.4.0/kinto/plugins/admin/build/index.html +18 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/default_bucket/__init__.py +1 -2
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/flush.py +1 -1
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/history/__init__.py +5 -6
- kinto-19.4.0/kinto/plugins/prometheus.py +203 -0
- kinto-19.4.0/kinto/plugins/quotas/__init__.py +21 -0
- kinto-19.4.0/kinto/plugins/statsd.py +78 -0
- {kinto-18.1.0 → kinto-19.4.0/kinto.egg-info}/PKG-INFO +6 -5
- {kinto-18.1.0 → kinto-19.4.0}/kinto.egg-info/SOURCES.txt +22 -2
- {kinto-18.1.0 → kinto-19.4.0}/kinto.egg-info/requires.txt +1 -0
- {kinto-18.1.0 → kinto-19.4.0}/pyproject.toml +2 -1
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_events.py +24 -6
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_filter.py +13 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_sync.py +1 -1
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_views.py +4 -5
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_views_cors.py +17 -1
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/support.py +1 -1
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_authentication.py +3 -3
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_initialization.py +181 -57
- kinto-19.4.0/tests/core/test_metrics.py +49 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_scripts.py +2 -2
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_storage.py +2 -2
- {kinto-18.1.0 → kinto-19.4.0}/tests/functional.ini +1 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/test_accounts.py +3 -3
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/test_history.py +23 -21
- kinto-19.4.0/tests/plugins/test_prometheus.py +159 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/test_quotas.py +23 -20
- kinto-19.4.0/tests/plugins/test_statsd.py +81 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/support.py +1 -1
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_scripts.py +2 -2
- kinto-19.4.0/tests/test_views_metrics.py +45 -0
- kinto-18.1.0/docs/requirements.txt +0 -12
- kinto-18.1.0/kinto/core/statsd.py +0 -63
- kinto-18.1.0/kinto/plugins/admin/VERSION +0 -1
- kinto-18.1.0/kinto/plugins/quotas/__init__.py +0 -22
- kinto-18.1.0/tests/core/test_statsd.py +0 -120
- {kinto-18.1.0 → kinto-19.4.0}/.dockerignore +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/.github/CONTRIBUTING.md +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/.github/dependabot.yml +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/.github/release.yml +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/.github/workflows/labels.yaml +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/.gitignore +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/CHANGELOG.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/CONTRIBUTORS.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/LICENSE +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/SECURITY.md +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/SUPPORT.md +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/app.wsgi +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/contribute.json +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docker-compose.yml +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/_static/piwik.js +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/_static/theme_overrides.css +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/_templates/footer.html +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/_templates/indexcontent.html +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/_templates/layout.html +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-delete-list.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-delete-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-get-list.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-get-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-head-list.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-patch-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-post-list.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_details-put-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_status-delete-list.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_status-delete-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_status-get-list.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_status-get-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_status-patch-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_status-post-list.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/_status-put-object.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/accounts.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/admin.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/authentication.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/backoff.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/batch.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/buckets.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/collections.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/deprecation.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/errors.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/filtering.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/flush.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/groups.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/history.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/index.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/openapi.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/openid.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/pagination.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/permissions.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/quotas.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/records.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/selecting_fields.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/sorting.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/timestamps.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/1.x/utilities.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/index.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/api/versioning.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/changelog.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/commandline.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/concepts.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/configuration/good-practices.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/configuration/index.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/_static/theme_overrides.css +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/api.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/cache.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/decorators.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/errors.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/glossary.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/images/cliquet-base.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/images/cliquet-mozilla.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/index.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/notifications.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/permission.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/quickstart.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/rationale.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/resource.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/storage.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/testing.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/utils.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/core/viewsets.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/faq.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/alwaysdata-button.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/architecture.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/color-formatter.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/concepts-general.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/concepts-permissions.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/heroku-button.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/kinto-logo.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/kinto-logo.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-admin.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-attachment.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-community.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-demos.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-history.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-indexing.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-javascript.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-jsonschema.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-livesync.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-multiapps.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-offline.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-permissions.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-python.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-quotas.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-selfhostable.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-signature.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/logo-synchronisation.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/overview-deployonce-selfhost.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/overview-features.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/overview-synchronisation.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/overview-use-cases.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/scalingo-button.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-1.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-2.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-3.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/screenshot-kinto-admin-4.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/sequence-storage.png +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/sync-both.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/sync-newest.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/images/sync-oldest.svg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/index.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/kinto-admin.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/overview.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/troubleshooting.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/app-examples.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/authentication-github.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/client-side-encryption.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/custom-id-generator.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/first-steps.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/index.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/install.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/notifications-custom.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/notifications-websockets.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/permission-setups.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/permissions.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/synchronisation.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/docs/tutorials/write-plugin.rst +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/authorization.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/config/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/config/kinto.tpl +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/authentication.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/authorization.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/cache/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/cache/memcached.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/cache/memory.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/cache/postgresql/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/cache/postgresql/schema.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/cache/testing.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/decorators.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/errors.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/events.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/listeners/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/openapi.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/permission/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/permission/memory.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/permission/postgresql/schema.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/permission/testing.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/resource/model.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/resource/viewset.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/schema.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/scripts.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/exceptions.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/generators.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/memory.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/migrator.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/pool.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/postgresql/schema.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/testing.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/storage/utils.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/views/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/views/batch.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/views/heartbeat.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/views/hello.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/views/openapi.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/core/views/version.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/events.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/accounts/authentication.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/accounts/mails.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/accounts/scripts.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/accounts/utils.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/accounts/views/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/accounts/views/validation.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/admin/README.md +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/admin/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/admin/public/help.html +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/admin/views.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/history/listener.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/history/views.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/openid/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/openid/utils.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/openid/views.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/quotas/listener.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/quotas/scripts.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/plugins/quotas/utils.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/schema_validation.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/scripts.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/admin.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/buckets.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/collections.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/contribute.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/groups.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/permissions.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto/views/records.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto.egg-info/dependency_links.txt +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto.egg-info/entry_points.txt +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/kinto.egg-info/top_level.txt +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/scripts/pull-kinto-admin.sh +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/setup.cfg +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/browser.ini +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/browser.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/listeners.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_base.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_cache_expires.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_model.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_object.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_object_permissions.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_pagination.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_partial_response.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_preconditions.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_schema.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_sort.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/resource/test_viewset.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/schema/postgresql-permission-1.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/schema/postgresql-storage-11.sql +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_authorization.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_cache.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_decorators.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_deprecation.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_errors.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_listeners.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_logging.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_openapi.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_permission.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_schema.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_storage_migrations.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_storage_pool.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_utils.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_views_batch.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_views_errors.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_views_heartbeat.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_views_hello.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_views_openapi.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_views_postgresql.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/test_views_transaction.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/testapp/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/testapp/static/index.html +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/testapp/views.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/core/testplugin/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/functional.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/support.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_plugins.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_resources.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_responses_buckets.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_responses_collections.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_responses_errors.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_responses_groups.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_responses_records.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/openapi/test_validation.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/__init__.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/test_admin.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/test_default_bucket.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/test_flush.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/plugins/test_openid.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_authorization.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_config.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_configuration/test.ini +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_init.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_main.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_admin.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_buckets.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_collections.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_collections_cache.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_contribute.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_disable_default.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_groups.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_hello.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_objects_permissions.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_permissions.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_records.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_schema_collection.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_schema_group.py +0 -0
- {kinto-18.1.0 → kinto-19.4.0}/tests/test_views_schema_record.py +0 -0
- {kinto-18.1.0/tests/core → kinto-19.4.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: [
|
|
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@
|
|
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
|
|
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
|
|
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
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: kinto
|
|
3
|
-
Version:
|
|
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.
|
|
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.
|
|
41
|
+
* **Python**: 3.9+
|
|
42
42
|
* **Backends**: In-memory (development), PostgreSQL 9.5+ (production)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# This file is autogenerated by pip-compile with Python 3.
|
|
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
|
|
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.
|
|
19
|
+
build==1.2.2.post1
|
|
20
20
|
# via -r constraints.in
|
|
21
|
-
certifi==
|
|
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
|
|
39
|
+
coverage==7.6.4
|
|
40
40
|
# via pytest-cov
|
|
41
|
-
dockerflow==2024.
|
|
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.
|
|
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.
|
|
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.
|
|
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==
|
|
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.
|
|
99
|
+
playwright==1.49.1
|
|
102
100
|
# via -r constraints.in
|
|
103
|
-
pluggy==1.
|
|
101
|
+
pluggy==1.5.0
|
|
104
102
|
# via pytest
|
|
105
|
-
|
|
103
|
+
prometheus-client==0.21.1
|
|
104
|
+
# via -r constraints.in
|
|
105
|
+
psycopg2==2.9.10
|
|
106
106
|
# via -r constraints.in
|
|
107
|
-
pyee==
|
|
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.
|
|
120
|
+
pyramid-multiauth==1.0.2
|
|
121
121
|
# via -r constraints.in
|
|
122
|
-
pyramid-tm==2.
|
|
122
|
+
pyramid-tm==2.6
|
|
123
123
|
# via -r constraints.in
|
|
124
|
-
pytest==
|
|
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==
|
|
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.
|
|
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.
|
|
166
|
+
ruff==0.9.1
|
|
167
167
|
# via -r constraints.in
|
|
168
|
-
sentry-sdk==
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
217
|
+
waitress==3.0.2
|
|
224
218
|
# via
|
|
225
219
|
# -r constraints.in
|
|
226
220
|
# webtest
|
|
227
|
-
webcolors==
|
|
221
|
+
webcolors==24.6.0
|
|
228
222
|
# via jsonschema
|
|
229
|
-
webob==1.8.
|
|
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.
|
|
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.
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
429
|
-
::::::::::::::::::::::
|
|
493
|
+
.. _monitoring-with-prometheus:
|
|
430
494
|
|
|
431
|
-
|
|
495
|
+
Monitoring with Prometheus
|
|
496
|
+
::::::::::::::::::::::::::
|
|
497
|
+
|
|
498
|
+
Requires the ``prometheus-client`` package (installed with ``kinto[monitoring]``).
|
|
432
499
|
|
|
433
|
-
|
|
500
|
+
Prometheus metrics can be enabled with (disabled by default):
|
|
434
501
|
|
|
435
502
|
.. code-block:: ini
|
|
436
503
|
|
|
437
|
-
kinto.
|
|
438
|
-
# kinto.statsd_prefix = kinto-prod
|
|
504
|
+
kinto.includes = kinto.plugins.prometheus
|
|
439
505
|
|
|
506
|
+
# kinto.prometheus_prefix = kinto-prod
|
|
440
507
|
|
|
441
|
-
|
|
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
|
-
|
|
455
|
-
|
|
456
|
-
.. code-block:: ini
|
|
513
|
+
Monitoring with StatsD
|
|
514
|
+
::::::::::::::::::::::
|
|
457
515
|
|
|
458
|
-
|
|
459
|
-
kinto.newrelic_env = prod
|
|
516
|
+
Requires the ``statsd`` package.
|
|
460
517
|
|
|
518
|
+
.. note::
|
|
461
519
|
|
|
462
|
-
|
|
520
|
+
Only one of *Prometheus* and *StatsD* can be enabled. It will take precedence and the other one will be ignored.
|
|
463
521
|
|
|
464
|
-
|
|
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
|
-
|
|
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.
|
|
475
|
-
|
|
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
|
-
|
|
507
|
-
since the specified module must just define an ``includeme(config)`` function.
|
|
545
|
+
.. code-block:: ini
|
|
508
546
|
|
|
509
|
-
|
|
547
|
+
[uwsgi]
|
|
510
548
|
|
|
511
|
-
|
|
549
|
+
# ...
|
|
512
550
|
|
|
513
|
-
|
|
514
|
-
|
|
551
|
+
enable-metrics = true
|
|
552
|
+
plugin = dogstatsd
|
|
553
|
+
stats-push = dogstatsd:host:8125,kinto.{{ $deployment }}
|
|
515
554
|
|
|
516
555
|
|
|
517
|
-
|
|
518
|
-
|
|
556
|
+
Monitoring with New Relic
|
|
557
|
+
:::::::::::::::::::::::::
|
|
519
558
|
|
|
520
|
-
|
|
521
|
-
as long as the replacement follows the original component API.
|
|
559
|
+
Requires the ``newrelic`` package.
|
|
522
560
|
|
|
523
|
-
|
|
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
|
-
|
|
569
|
+
New Relic can be enabled (disabled by default):
|
|
526
570
|
|
|
527
|
-
|
|
528
|
-
existing components (cache, storage, log renderer, ...).
|
|
571
|
+
.. code-block:: ini
|
|
529
572
|
|
|
530
|
-
|
|
573
|
+
kinto.newrelic_config = /location/of/newrelic.ini
|
|
574
|
+
kinto.newrelic_env = prod
|
|
531
575
|
|
|
532
576
|
|
|
533
577
|
.. _configuration-authentication:
|