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.
- {kinto-18.1.1 → kinto-19.3.0}/.github/workflows/test.yml +1 -3
- {kinto-18.1.1 → kinto-19.3.0}/Dockerfile +2 -2
- {kinto-18.1.1/kinto.egg-info → kinto-19.3.0}/PKG-INFO +5 -4
- {kinto-18.1.1 → kinto-19.3.0}/README.rst +2 -2
- {kinto-18.1.1 → kinto-19.3.0}/constraints.in +1 -0
- {kinto-18.1.1 → kinto-19.3.0}/constraints.txt +21 -27
- {kinto-18.1.1 → kinto-19.3.0}/docs/conf.py +0 -3
- {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/production.rst +2 -7
- {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/settings.rst +126 -84
- kinto-19.3.0/docs/requirements.txt +12 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/__init__.py +1 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/__init__.py +2 -1
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/initialization.py +132 -53
- kinto-19.3.0/kinto/core/metrics.py +93 -0
- kinto-19.3.0/kinto/core/statsd.py +1 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/testing.py +5 -1
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/utils.py +8 -0
- kinto-19.3.0/kinto/plugins/admin/VERSION +1 -0
- kinto-19.3.0/kinto/plugins/admin/build/VERSION +1 -0
- kinto-19.3.0/kinto/plugins/admin/build/assets/index-BKIg2XW8.js +165 -0
- 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
- 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
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/build/index.html +2 -2
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/history/__init__.py +5 -6
- kinto-19.3.0/kinto/plugins/prometheus.py +186 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/__init__.py +5 -6
- {kinto-18.1.1/kinto/core → kinto-19.3.0/kinto/plugins}/statsd.py +29 -22
- {kinto-18.1.1 → kinto-19.3.0/kinto.egg-info}/PKG-INFO +5 -4
- {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/SOURCES.txt +19 -13
- {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/requires.txt +1 -0
- {kinto-18.1.1 → kinto-19.3.0}/pyproject.toml +2 -1
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_events.py +23 -5
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_views.py +4 -5
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_initialization.py +162 -57
- kinto-19.3.0/tests/core/test_metrics.py +49 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/functional.ini +1 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_history.py +18 -16
- kinto-19.3.0/tests/plugins/test_prometheus.py +142 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_quotas.py +18 -15
- kinto-19.3.0/tests/plugins/test_statsd.py +76 -0
- kinto-19.3.0/tests/test_views_metrics.py +45 -0
- kinto-18.1.1/docs/requirements.txt +0 -12
- kinto-18.1.1/kinto/plugins/admin/VERSION +0 -1
- kinto-18.1.1/kinto/plugins/admin/build/VERSION +0 -1
- kinto-18.1.1/kinto/plugins/admin/build/assets/index-iVTdxamX.js +0 -175
- kinto-18.1.1/tests/core/test_statsd.py +0 -120
- {kinto-18.1.1 → kinto-19.3.0}/.dockerignore +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.github/CONTRIBUTING.md +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.github/dependabot.yml +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.github/release.yml +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.github/workflows/labels.yaml +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.github/workflows/publish.yml +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/.gitignore +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/CHANGELOG.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/CONTRIBUTORS.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/LICENSE +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/Makefile +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/SECURITY.md +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/SUPPORT.md +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/app.wsgi +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/contribute.json +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docker-compose.yml +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/_static/piwik.js +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/_static/theme_overrides.css +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/_templates/footer.html +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/_templates/indexcontent.html +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/_templates/layout.html +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-delete-list.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-delete-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-get-list.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-get-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-head-list.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-patch-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-post-list.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_details-put-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-delete-list.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-delete-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-get-list.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-get-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-patch-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-post-list.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/_status-put-object.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/accounts.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/admin.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/authentication.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/backoff.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/batch.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/buckets.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/collections.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/deprecation.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/errors.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/filtering.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/flush.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/groups.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/history.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/index.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/openapi.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/openid.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/pagination.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/permissions.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/quotas.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/records.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/selecting_fields.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/sorting.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/timestamps.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/1.x/utilities.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/index.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/api/versioning.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/changelog.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/commandline.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/community.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/concepts.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/good-practices.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/configuration/index.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/_static/theme_overrides.css +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/api.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/cache.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/decorators.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/errors.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/glossary.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/images/cliquet-base.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/images/cliquet-mozilla.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/index.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/notifications.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/permission.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/quickstart.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/rationale.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/resource.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/storage.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/testing.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/utils.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/core/viewsets.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/faq.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/alwaysdata-button.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/architecture.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/color-formatter.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/concepts-general.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/concepts-permissions.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/heroku-button.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/kinto-logo.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/kinto-logo.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-admin.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-attachment.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-community.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-demos.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-history.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-indexing.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-javascript.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-jsonschema.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-livesync.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-multiapps.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-offline.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-permissions.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-python.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-quotas.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-selfhostable.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-signature.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/logo-synchronisation.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-deployonce-selfhost.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-features.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-synchronisation.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/overview-use-cases.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/scalingo-button.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-1.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-2.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-3.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/screenshot-kinto-admin-4.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/sequence-storage.png +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/sync-both.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/sync-newest.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/images/sync-oldest.svg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/index.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/kinto-admin.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/overview.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/troubleshooting.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/app-examples.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/authentication-github.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/client-side-encryption.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/custom-id-generator.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/first-steps.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/index.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/install.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/notifications-custom.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/notifications-websockets.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/permission-setups.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/permissions.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/synchronisation.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/docs/tutorials/write-plugin.rst +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/__main__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/authorization.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/config/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/config/kinto.tpl +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/authentication.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/authorization.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/memcached.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/memory.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/postgresql/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/postgresql/schema.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/cache/testing.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/decorators.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/errors.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/events.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/listeners/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/openapi.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/memory.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/postgresql/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/postgresql/schema.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/permission/testing.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/model.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/schema.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/resource/viewset.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/schema.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/scripts.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/exceptions.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/generators.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/memory.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/client.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/migrator.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/pool.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/postgresql/schema.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/testing.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/storage/utils.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/batch.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/errors.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/heartbeat.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/hello.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/openapi.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/core/views/version.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/events.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/authentication.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/mails.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/scripts.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/utils.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/views/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/accounts/views/validation.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/README.md +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/__init__.py +0 -0
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- /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
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/public/help.html +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/admin/views.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/default_bucket/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/flush.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/history/listener.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/history/views.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/openid/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/openid/utils.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/openid/views.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/listener.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/scripts.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/plugins/quotas/utils.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/schema_validation.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/scripts.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/admin.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/buckets.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/collections.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/contribute.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/groups.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/permissions.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto/views/records.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/dependency_links.txt +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/entry_points.txt +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/kinto.egg-info/top_level.txt +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/scripts/pull-kinto-admin.sh +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/setup.cfg +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/browser.ini +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/browser.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/listeners.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_base.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_cache_expires.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_filter.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_model.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_object.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_object_permissions.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_pagination.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_partial_response.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_preconditions.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_schema.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_sort.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_sync.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_views_cors.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/resource/test_viewset.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/schema/postgresql-permission-1.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/schema/postgresql-storage-11.sql +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/support.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_authentication.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_authorization.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_cache.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_decorators.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_deprecation.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_errors.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_listeners.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_logging.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_openapi.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_permission.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_schema.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_scripts.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_storage.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_storage_migrations.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_storage_pool.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_utils.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_batch.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_errors.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_heartbeat.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_hello.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_openapi.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_postgresql.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/test_views_transaction.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/testapp/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/testapp/static/index.html +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/testapp/views.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/core/testplugin/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/functional.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/support.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_plugins.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_resources.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_buckets.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_collections.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_errors.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_groups.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_responses_records.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/openapi/test_validation.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/__init__.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_accounts.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_admin.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_default_bucket.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_flush.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/plugins/test_openid.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/support.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_authorization.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_config.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_configuration/test.ini +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_init.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_main.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_scripts.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_admin.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_buckets.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_collections.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_collections_cache.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_contribute.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_disable_default.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_groups.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_hello.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_objects_permissions.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_permissions.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_records.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_schema_collection.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_schema_group.py +0 -0
- {kinto-18.1.1 → kinto-19.3.0}/tests/test_views_schema_record.py +0 -0
- {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: [
|
|
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
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
@@ -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.
|
|
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.
|
|
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.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.
|
|
99
|
+
playwright==1.48.0
|
|
102
100
|
# via -r constraints.in
|
|
103
101
|
pluggy==1.5.0
|
|
104
102
|
# via pytest
|
|
105
|
-
|
|
103
|
+
prometheus-client==0.21.0
|
|
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
|
|
@@ -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.
|
|
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.
|
|
166
|
+
ruff==0.7.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
|
|
@@ -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.1
|
|
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.0.
|
|
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
|
|
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,86 @@ 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
|
+
::::::::::::::::::::::::::
|
|
432
497
|
|
|
433
|
-
|
|
498
|
+
Requires the ``prometheus-client`` package (installed with ``kinto[monitoring]``).
|
|
434
499
|
|
|
435
|
-
|
|
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
|
-
|
|
442
|
-
:::::::::::::::::::::::::
|
|
504
|
+
kinto.includes = kinto.plugins.prometheus
|
|
443
505
|
|
|
444
|
-
|
|
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
|
-
|
|
509
|
+
.. _monitoring-with-statsd:
|
|
455
510
|
|
|
456
|
-
|
|
511
|
+
Monitoring with StatsD
|
|
512
|
+
::::::::::::::::::::::
|
|
457
513
|
|
|
458
|
-
|
|
459
|
-
kinto.newrelic_env = prod
|
|
514
|
+
Requires the ``statsd`` package.
|
|
460
515
|
|
|
516
|
+
.. note::
|
|
461
517
|
|
|
462
|
-
|
|
518
|
+
Only one of *Prometheus* and *StatsD* can be enabled. It will take precedence and the other one will be ignored.
|
|
463
519
|
|
|
464
|
-
|
|
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
|
-
|
|
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.
|
|
475
|
-
|
|
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
|
-
|
|
507
|
-
since the specified module must just define an ``includeme(config)`` function.
|
|
543
|
+
.. code-block:: ini
|
|
508
544
|
|
|
509
|
-
|
|
545
|
+
[uwsgi]
|
|
510
546
|
|
|
511
|
-
|
|
547
|
+
# ...
|
|
512
548
|
|
|
513
|
-
|
|
514
|
-
|
|
549
|
+
enable-metrics = true
|
|
550
|
+
plugin = dogstatsd
|
|
551
|
+
stats-push = dogstatsd:host:8125,kinto.{{ $deployment }}
|
|
515
552
|
|
|
516
553
|
|
|
517
|
-
|
|
518
|
-
|
|
554
|
+
Monitoring with New Relic
|
|
555
|
+
:::::::::::::::::::::::::
|
|
519
556
|
|
|
520
|
-
|
|
521
|
-
as long as the replacement follows the original component API.
|
|
557
|
+
Requires the ``newrelic`` package.
|
|
522
558
|
|
|
523
|
-
|
|
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
|
-
|
|
567
|
+
New Relic can be enabled (disabled by default):
|
|
526
568
|
|
|
527
|
-
|
|
528
|
-
existing components (cache, storage, log renderer, ...).
|
|
569
|
+
.. code-block:: ini
|
|
529
570
|
|
|
530
|
-
|
|
571
|
+
kinto.newrelic_config = /location/of/newrelic.ini
|
|
572
|
+
kinto.newrelic_env = prod
|
|
531
573
|
|
|
532
574
|
|
|
533
575
|
.. _configuration-authentication:
|
|
@@ -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,
|