kinto 19.5.0__tar.gz → 20.0.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-19.5.0 → kinto-20.0.0}/.gitignore +0 -1
- kinto-20.0.0/.readthedocs.yaml +12 -0
- {kinto-19.5.0 → kinto-20.0.0}/Dockerfile +0 -1
- {kinto-19.5.0 → kinto-20.0.0}/Makefile +1 -1
- {kinto-19.5.0/kinto.egg-info → kinto-20.0.0}/PKG-INFO +2 -6
- {kinto-19.5.0 → kinto-20.0.0}/README.rst +0 -1
- kinto-20.0.0/SUPPORT.md +3 -0
- {kinto-19.5.0 → kinto-20.0.0}/constraints.in +1 -4
- {kinto-19.5.0 → kinto-20.0.0}/constraints.txt +7 -27
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/accounts.rst +0 -131
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/authentication.rst +3 -3
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/index.rst +0 -1
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/openapi.rst +2 -2
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/openid.rst +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/permissions.rst +5 -5
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/index.rst +1 -6
- {kinto-19.5.0 → kinto-20.0.0}/docs/commandline.rst +2 -30
- {kinto-19.5.0 → kinto-20.0.0}/docs/community.rst +3 -14
- {kinto-19.5.0 → kinto-20.0.0}/docs/concepts.rst +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/docs/conf.py +1 -2
- {kinto-19.5.0 → kinto-20.0.0}/docs/configuration/good-practices.rst +2 -22
- {kinto-19.5.0 → kinto-20.0.0}/docs/configuration/settings.rst +8 -189
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/glossary.rst +0 -3
- {kinto-19.5.0 → kinto-20.0.0}/docs/faq.rst +37 -77
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/architecture.svg +118 -134
- {kinto-19.5.0 → kinto-20.0.0}/docs/overview.rst +15 -59
- {kinto-19.5.0 → kinto-20.0.0}/docs/requirements.txt +2 -3
- {kinto-19.5.0 → kinto-20.0.0}/docs/troubleshooting.rst +2 -2
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/first-steps.rst +24 -25
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/index.rst +0 -4
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/install.rst +2 -48
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/notifications-custom.rst +0 -102
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/permissions.rst +12 -12
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/write-plugin.rst +1 -4
- {kinto-19.5.0 → kinto-20.0.0}/kinto/__main__.py +0 -17
- {kinto-19.5.0 → kinto-20.0.0}/kinto/config/kinto.tpl +0 -13
- {kinto-19.5.0 → kinto-20.0.0/kinto}/contribute.json +0 -3
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/__init__.py +3 -3
- kinto-20.0.0/kinto/core/cornice/__init__.py +93 -0
- kinto-20.0.0/kinto/core/cornice/cors.py +144 -0
- kinto-20.0.0/kinto/core/cornice/errors.py +40 -0
- kinto-20.0.0/kinto/core/cornice/pyramidhook.py +373 -0
- kinto-20.0.0/kinto/core/cornice/renderer.py +89 -0
- kinto-20.0.0/kinto/core/cornice/resource.py +205 -0
- kinto-20.0.0/kinto/core/cornice/service.py +641 -0
- kinto-20.0.0/kinto/core/cornice/util.py +138 -0
- kinto-20.0.0/kinto/core/cornice/validators/__init__.py +94 -0
- kinto-20.0.0/kinto/core/cornice/validators/_colander.py +142 -0
- kinto-20.0.0/kinto/core/cornice/validators/_marshmallow.py +182 -0
- kinto-20.0.0/kinto/core/cornice_swagger/__init__.py +92 -0
- kinto-20.0.0/kinto/core/cornice_swagger/converters/__init__.py +21 -0
- kinto-20.0.0/kinto/core/cornice_swagger/converters/exceptions.py +6 -0
- kinto-20.0.0/kinto/core/cornice_swagger/converters/parameters.py +90 -0
- kinto-20.0.0/kinto/core/cornice_swagger/converters/schema.py +249 -0
- kinto-20.0.0/kinto/core/cornice_swagger/swagger.py +725 -0
- kinto-20.0.0/kinto/core/cornice_swagger/templates/index.html +73 -0
- kinto-20.0.0/kinto/core/cornice_swagger/templates/index_script_template.html +21 -0
- kinto-20.0.0/kinto/core/cornice_swagger/util.py +42 -0
- kinto-20.0.0/kinto/core/cornice_swagger/views.py +78 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/initialization.py +0 -14
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/openapi.py +2 -3
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/resource/viewset.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/pool.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/testing.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/utils.py +3 -2
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/views/batch.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/views/errors.py +2 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/views/openapi.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/accounts/__init__.py +2 -19
- kinto-20.0.0/kinto/plugins/accounts/authentication.py +63 -0
- kinto-20.0.0/kinto/plugins/accounts/utils.py +13 -0
- kinto-19.5.0/kinto/plugins/accounts/views/__init__.py → kinto-20.0.0/kinto/plugins/accounts/views.py +7 -62
- kinto-20.0.0/kinto/plugins/admin/VERSION +1 -0
- kinto-20.0.0/kinto/plugins/admin/build/VERSION +1 -0
- kinto-20.0.0/kinto/plugins/admin/build/assets/asn1-EdZsLKOL.js +1 -0
- kinto-20.0.0/kinto/plugins/admin/build/assets/index-Bq62Gei8.js +165 -0
- kinto-19.5.0/kinto/plugins/admin/build/assets/index-BdpYyatM.css → kinto-20.0.0/kinto/plugins/admin/build/assets/index-Cs7JVwIg.css +1 -1
- kinto-20.0.0/kinto/plugins/admin/build/assets/javascript-qCveANmP.js +1 -0
- kinto-20.0.0/kinto/plugins/admin/build/assets/mllike-CXdrOF99.js +1 -0
- kinto-20.0.0/kinto/plugins/admin/build/assets/sql-D0XecflT.js +1 -0
- kinto-20.0.0/kinto/plugins/admin/build/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/build/index.html +2 -2
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/flush.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/openid/views.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/contribute.py +14 -13
- {kinto-19.5.0 → kinto-20.0.0/kinto.egg-info}/PKG-INFO +2 -6
- {kinto-19.5.0 → kinto-20.0.0}/kinto.egg-info/SOURCES.txt +31 -29
- {kinto-19.5.0 → kinto-20.0.0}/kinto.egg-info/requires.txt +1 -4
- {kinto-19.5.0 → kinto-20.0.0}/pyproject.toml +6 -5
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_events.py +1 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_viewset.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_initialization.py +7 -20
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_openapi.py +1 -2
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_views_errors.py +10 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_accounts.py +1 -389
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_history.py +2 -5
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_configuration/test.ini +0 -13
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_main.py +0 -19
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_contribute.py +1 -1
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_permissions.py +1 -1
- kinto-19.5.0/SUPPORT.md +0 -10
- kinto-19.5.0/docs/api/1.x/quotas.rst +0 -97
- kinto-19.5.0/docs/images/logo-demos.svg +0 -80
- kinto-19.5.0/docs/images/logo-indexing.svg +0 -1
- kinto-19.5.0/docs/images/logo-livesync.svg +0 -114
- kinto-19.5.0/docs/images/logo-offline.svg +0 -84
- kinto-19.5.0/docs/images/logo-quotas.svg +0 -68
- kinto-19.5.0/docs/images/logo-signature.svg +0 -70
- kinto-19.5.0/docs/tutorials/app-examples.rst +0 -14
- kinto-19.5.0/docs/tutorials/authentication-github.rst +0 -360
- kinto-19.5.0/docs/tutorials/client-side-encryption.rst +0 -19
- kinto-19.5.0/docs/tutorials/notifications-websockets.rst +0 -124
- kinto-19.5.0/kinto/plugins/accounts/authentication.py +0 -109
- kinto-19.5.0/kinto/plugins/accounts/mails.py +0 -96
- kinto-19.5.0/kinto/plugins/accounts/utils.py +0 -146
- kinto-19.5.0/kinto/plugins/accounts/views/validation.py +0 -136
- kinto-19.5.0/kinto/plugins/admin/VERSION +0 -1
- kinto-19.5.0/kinto/plugins/admin/build/VERSION +0 -1
- kinto-19.5.0/kinto/plugins/admin/build/assets/asn1-CGOzndHr.js +0 -1
- kinto-19.5.0/kinto/plugins/admin/build/assets/index-n-QM_iZE.js +0 -165
- kinto-19.5.0/kinto/plugins/admin/build/assets/javascript-iSgyE4tI.js +0 -1
- kinto-19.5.0/kinto/plugins/admin/build/assets/mllike-C_8OmSiT.js +0 -1
- kinto-19.5.0/kinto/plugins/admin/build/assets/sql-C4g8LzGK.js +0 -1
- kinto-19.5.0/kinto/plugins/admin/build/assets/ttcn-cfg-BIkV9KBc.js +0 -1
- kinto-19.5.0/kinto/plugins/quotas/__init__.py +0 -21
- kinto-19.5.0/kinto/plugins/quotas/listener.py +0 -226
- kinto-19.5.0/kinto/plugins/quotas/scripts.py +0 -80
- kinto-19.5.0/kinto/plugins/quotas/utils.py +0 -7
- kinto-19.5.0/kinto/scripts.py +0 -41
- kinto-19.5.0/tests/plugins/test_quotas.py +0 -1142
- kinto-19.5.0/tests/test_scripts.py +0 -32
- {kinto-19.5.0 → kinto-20.0.0}/.dockerignore +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/CODE_OF_CONDUCT.md +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/CONTRIBUTING.md +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/dependabot.yml +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/release.yml +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/workflows/labels.yaml +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/workflows/publish.yml +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/workflows/scheduled.yml +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/.github/workflows/test.yml +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/CHANGELOG.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/CONTRIBUTORS.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/LICENSE +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/SECURITY.md +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/app.wsgi +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docker-compose.yml +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/_static/piwik.js +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/_static/theme_overrides.css +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/_templates/footer.html +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/_templates/indexcontent.html +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/_templates/layout.html +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-delete-list.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-delete-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-get-list.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-get-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-head-list.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-patch-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-post-list.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_details-put-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_status-delete-list.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_status-delete-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_status-get-list.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_status-get-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_status-patch-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_status-post-list.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/_status-put-object.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/admin.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/backoff.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/batch.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/buckets.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/collections.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/deprecation.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/errors.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/filtering.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/flush.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/groups.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/history.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/pagination.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/records.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/selecting_fields.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/sorting.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/timestamps.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/1.x/utilities.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/api/versioning.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/changelog.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/configuration/index.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/configuration/production.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/_static/theme_overrides.css +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/api.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/cache.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/decorators.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/errors.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/images/cliquet-base.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/images/cliquet-mozilla.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/index.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/notifications.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/permission.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/quickstart.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/rationale.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/resource.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/storage.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/testing.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/utils.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/core/viewsets.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/alwaysdata-button.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/color-formatter.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/concepts-general.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/concepts-permissions.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/heroku-button.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/kinto-logo.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/kinto-logo.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-admin.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-attachment.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-community.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-history.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-javascript.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-jsonschema.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-multiapps.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-permissions.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-python.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-selfhostable.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/logo-synchronisation.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/overview-deployonce-selfhost.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/overview-features.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/overview-synchronisation.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/overview-use-cases.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/scalingo-button.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/screenshot-kinto-admin-1.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/screenshot-kinto-admin-2.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/screenshot-kinto-admin-3.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/screenshot-kinto-admin-4.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/sequence-storage.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/sync-both.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/sync-newest.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/images/sync-oldest.svg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/index.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/kinto-admin.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/custom-id-generator.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/permission-setups.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/docs/tutorials/synchronisation.rst +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/authorization.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/config/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/authentication.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/authorization.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/cache/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/cache/memcached.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/cache/memory.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/cache/postgresql/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/cache/postgresql/schema.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/cache/testing.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/decorators.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/errors.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/events.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/listeners/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/metrics.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/permission/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/permission/memory.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/permission/postgresql/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/permission/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/permission/postgresql/schema.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/permission/testing.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/resource/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/resource/model.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/resource/schema.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/schema.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/scripts.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/statsd.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/exceptions.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/generators.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/memory.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/client.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_001_002.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_002_003.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_003_004.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_004_005.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_005_006.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_006_007.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_007_008.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_008_009.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_009_010.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_010_011.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_011_012.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_012_013.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_013_014.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_014_015.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_015_016.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_016_017.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_017_018.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_018_019.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_019_020.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_020_021.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrations/migration_021_022.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/migrator.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/postgresql/schema.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/testing.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/storage/utils.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/views/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/views/heartbeat.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/views/hello.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/core/views/version.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/events.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/accounts/scripts.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/README.md +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/build/assets/clojure-BMjYHr_A.js +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/build/assets/css-BnMrqG3P.js +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/build/assets/logo-VBRiKSPX.png +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/build/assets/python-BuPzkPfP.js +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/build/assets/rpm-CTu-6PCP.js +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/public/help.html +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/admin/views.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/default_bucket/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/history/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/history/listener.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/history/views.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/openid/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/openid/utils.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/prometheus.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/plugins/statsd.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/schema_validation.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/admin.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/buckets.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/collections.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/groups.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/permissions.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto/views/records.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto.egg-info/dependency_links.txt +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto.egg-info/entry_points.txt +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/kinto.egg-info/top_level.txt +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/scripts/pull-kinto-admin.sh +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/setup.cfg +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/browser.ini +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/browser.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/listeners.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_base.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_cache_expires.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_filter.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_model.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_object.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_object_permissions.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_pagination.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_partial_response.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_preconditions.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_schema.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_sort.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_sync.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_views.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/resource/test_views_cors.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/schema/postgresql-permission-1.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/schema/postgresql-storage-1.6.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/schema/postgresql-storage-11.sql +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/support.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_authentication.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_authorization.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_cache.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_decorators.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_deprecation.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_errors.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_listeners.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_logging.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_metrics.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_permission.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_schema.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_scripts.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_storage.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_storage_migrations.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_storage_pool.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_utils.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_views_batch.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_views_heartbeat.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_views_hello.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_views_openapi.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_views_postgresql.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/test_views_transaction.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/testapp/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/testapp/static/index.html +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/testapp/views.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/core/testplugin/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/functional.ini +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/functional.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/support.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_plugins.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_resources.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_responses_buckets.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_responses_collections.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_responses_errors.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_responses_groups.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_responses_records.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/openapi/test_validation.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/__init__.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_admin.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_default_bucket.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_flush.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_openid.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_prometheus.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/plugins/test_statsd.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/support.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_authorization.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_config.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_init.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_admin.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_buckets.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_collections.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_collections_cache.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_disable_default.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_groups.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_hello.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_metrics.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_objects_permissions.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_records.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_schema_collection.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_schema_group.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_schema_record.py +0 -0
- {kinto-19.5.0 → kinto-20.0.0}/tests/test_views_version.py +0 -0
|
@@ -20,7 +20,6 @@ RUN cp -r /kinto-admin/kinto/plugins/admin/build kinto/plugins/admin/
|
|
|
20
20
|
RUN pip install ".[postgresql,memcached,monitoring]" -c constraints.txt && pip install kinto-attachment kinto-emailer httpie
|
|
21
21
|
|
|
22
22
|
FROM python:3.10-slim-bullseye
|
|
23
|
-
RUN apt-get update && apt-get install -y --no-install-recommends libpq-dev
|
|
24
23
|
RUN groupadd --gid 10001 app && \
|
|
25
24
|
useradd --uid 10001 --gid 10001 --home /app --create-home app
|
|
26
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: kinto
|
|
3
|
-
Version:
|
|
3
|
+
Version: 20.0.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
|
|
@@ -33,15 +33,12 @@ Description-Content-Type: text/x-rst
|
|
|
33
33
|
License-File: LICENSE
|
|
34
34
|
Requires-Dist: bcrypt
|
|
35
35
|
Requires-Dist: colander
|
|
36
|
-
Requires-Dist: cornice
|
|
37
|
-
Requires-Dist: cornice_swagger
|
|
38
36
|
Requires-Dist: dockerflow
|
|
39
37
|
Requires-Dist: jsonschema
|
|
40
38
|
Requires-Dist: jsonpatch
|
|
41
39
|
Requires-Dist: logging-color-formatter
|
|
42
40
|
Requires-Dist: python-dateutil
|
|
43
41
|
Requires-Dist: pyramid
|
|
44
|
-
Requires-Dist: pyramid_mailer
|
|
45
42
|
Requires-Dist: pyramid_multiauth
|
|
46
43
|
Requires-Dist: transaction
|
|
47
44
|
Requires-Dist: pyramid_tm
|
|
@@ -54,7 +51,7 @@ Provides-Extra: memcached
|
|
|
54
51
|
Requires-Dist: python-memcached; extra == "memcached"
|
|
55
52
|
Provides-Extra: postgresql
|
|
56
53
|
Requires-Dist: SQLAlchemy<3; extra == "postgresql"
|
|
57
|
-
Requires-Dist: psycopg2; extra == "postgresql"
|
|
54
|
+
Requires-Dist: psycopg2-binary; extra == "postgresql"
|
|
58
55
|
Requires-Dist: zope.sqlalchemy; extra == "postgresql"
|
|
59
56
|
Provides-Extra: monitoring
|
|
60
57
|
Requires-Dist: newrelic; extra == "monitoring"
|
|
@@ -108,7 +105,6 @@ Kinto is a minimalist JSON storage service with synchronisation and sharing abil
|
|
|
108
105
|
* `Tutorial <https://kinto.readthedocs.io/en/latest/tutorials/first-steps.html>`_
|
|
109
106
|
* `Issue tracker <https://github.com/Kinto/kinto/issues>`_
|
|
110
107
|
* `Contributing <https://kinto.readthedocs.io/en/latest/community.html#how-to-contribute>`_
|
|
111
|
-
* `Try our daily flushed instance at: https://demo.kinto-storage.org/v1/ <https://demo.kinto-storage.org/v1/>`_
|
|
112
108
|
* `Docker Hub <https://hub.docker.com/r/kinto/kinto-server>`_
|
|
113
109
|
|
|
114
110
|
Requirements
|
|
@@ -32,7 +32,6 @@ Kinto is a minimalist JSON storage service with synchronisation and sharing abil
|
|
|
32
32
|
* `Tutorial <https://kinto.readthedocs.io/en/latest/tutorials/first-steps.html>`_
|
|
33
33
|
* `Issue tracker <https://github.com/Kinto/kinto/issues>`_
|
|
34
34
|
* `Contributing <https://kinto.readthedocs.io/en/latest/community.html#how-to-contribute>`_
|
|
35
|
-
* `Try our daily flushed instance at: https://demo.kinto-storage.org/v1/ <https://demo.kinto-storage.org/v1/>`_
|
|
36
35
|
* `Docker Hub <https://hub.docker.com/r/kinto/kinto-server>`_
|
|
37
36
|
|
|
38
37
|
Requirements
|
kinto-20.0.0/SUPPORT.md
ADDED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
# main dependencies
|
|
2
2
|
bcrypt
|
|
3
3
|
colander
|
|
4
|
-
cornice
|
|
5
|
-
cornice_swagger
|
|
6
4
|
dockerflow
|
|
7
5
|
jsonschema
|
|
8
6
|
jsonpatch
|
|
9
7
|
logging-color-formatter
|
|
10
8
|
python-dateutil
|
|
11
9
|
pyramid
|
|
12
|
-
pyramid_mailer
|
|
13
10
|
pyramid_multiauth
|
|
14
11
|
transaction
|
|
15
12
|
pyramid_tm
|
|
@@ -21,7 +18,7 @@ python-rapidjson
|
|
|
21
18
|
python-memcached
|
|
22
19
|
# postgresql
|
|
23
20
|
SQLAlchemy < 3
|
|
24
|
-
psycopg2
|
|
21
|
+
psycopg2-binary
|
|
25
22
|
zope.sqlalchemy
|
|
26
23
|
# monitoring
|
|
27
24
|
newrelic
|
|
@@ -10,7 +10,7 @@ attrs==23.2.0
|
|
|
10
10
|
# via
|
|
11
11
|
# jsonschema
|
|
12
12
|
# referencing
|
|
13
|
-
bcrypt==4.
|
|
13
|
+
bcrypt==4.3.0
|
|
14
14
|
# via -r constraints.in
|
|
15
15
|
beautifulsoup4==4.12.3
|
|
16
16
|
# via webtest
|
|
@@ -25,17 +25,9 @@ certifi==2024.7.4
|
|
|
25
25
|
charset-normalizer==3.3.2
|
|
26
26
|
# via requests
|
|
27
27
|
colander==2.0
|
|
28
|
-
# via
|
|
29
|
-
# -r constraints.in
|
|
30
|
-
# cornice-swagger
|
|
28
|
+
# via -r constraints.in
|
|
31
29
|
colorama==0.4.6
|
|
32
30
|
# via logging-color-formatter
|
|
33
|
-
cornice==6.0.1
|
|
34
|
-
# via
|
|
35
|
-
# -r constraints.in
|
|
36
|
-
# cornice-swagger
|
|
37
|
-
cornice-swagger==1.0.1
|
|
38
|
-
# via -r constraints.in
|
|
39
31
|
coverage==7.6.4
|
|
40
32
|
# via pytest-cov
|
|
41
33
|
dockerflow==2024.4.2
|
|
@@ -102,7 +94,7 @@ pluggy==1.5.0
|
|
|
102
94
|
# via pytest
|
|
103
95
|
prometheus-client==0.21.1
|
|
104
96
|
# via -r constraints.in
|
|
105
|
-
psycopg2==2.9.10
|
|
97
|
+
psycopg2-binary==2.9.10
|
|
106
98
|
# via -r constraints.in
|
|
107
99
|
pyee==12.0.0
|
|
108
100
|
# via playwright
|
|
@@ -111,17 +103,13 @@ pyproject-hooks==1.0.0
|
|
|
111
103
|
pyramid==2.0.2
|
|
112
104
|
# via
|
|
113
105
|
# -r constraints.in
|
|
114
|
-
# cornice
|
|
115
|
-
# pyramid-mailer
|
|
116
106
|
# pyramid-multiauth
|
|
117
107
|
# pyramid-tm
|
|
118
|
-
pyramid-mailer==0.15.1
|
|
119
|
-
# via -r constraints.in
|
|
120
108
|
pyramid-multiauth==1.0.2
|
|
121
109
|
# via -r constraints.in
|
|
122
110
|
pyramid-tm==2.6
|
|
123
111
|
# via -r constraints.in
|
|
124
|
-
pytest==8.3.
|
|
112
|
+
pytest==8.3.5
|
|
125
113
|
# via
|
|
126
114
|
# -r constraints.in
|
|
127
115
|
# pytest-cache
|
|
@@ -149,8 +137,6 @@ referencing==0.32.1
|
|
|
149
137
|
# via
|
|
150
138
|
# jsonschema
|
|
151
139
|
# jsonschema-specifications
|
|
152
|
-
repoze-sendmail==4.4.1
|
|
153
|
-
# via pyramid-mailer
|
|
154
140
|
requests==2.32.3
|
|
155
141
|
# via
|
|
156
142
|
# -r constraints.in
|
|
@@ -163,7 +149,7 @@ rpds-py==0.17.1
|
|
|
163
149
|
# via
|
|
164
150
|
# jsonschema
|
|
165
151
|
# referencing
|
|
166
|
-
ruff==0.9.
|
|
152
|
+
ruff==0.9.9
|
|
167
153
|
# via -r constraints.in
|
|
168
154
|
sentry-sdk==2.8.0
|
|
169
155
|
# via -r constraints.in
|
|
@@ -172,12 +158,11 @@ simplejson==3.19.2
|
|
|
172
158
|
six==1.16.0
|
|
173
159
|
# via
|
|
174
160
|
# bravado-core
|
|
175
|
-
# cornice-swagger
|
|
176
161
|
# python-dateutil
|
|
177
162
|
# rfc3339-validator
|
|
178
163
|
soupsieve==2.5
|
|
179
164
|
# via beautifulsoup4
|
|
180
|
-
sqlalchemy==2.0.
|
|
165
|
+
sqlalchemy==2.0.38
|
|
181
166
|
# via
|
|
182
167
|
# -r constraints.in
|
|
183
168
|
# sentry-sdk
|
|
@@ -189,9 +174,7 @@ swagger-spec-validator==3.0.3
|
|
|
189
174
|
transaction==5.0
|
|
190
175
|
# via
|
|
191
176
|
# -r constraints.in
|
|
192
|
-
# pyramid-mailer
|
|
193
177
|
# pyramid-tm
|
|
194
|
-
# repoze-sendmail
|
|
195
178
|
# zope-sqlalchemy
|
|
196
179
|
translationstring==1.4
|
|
197
180
|
# via
|
|
@@ -211,9 +194,7 @@ urllib3==2.2.2
|
|
|
211
194
|
# requests
|
|
212
195
|
# sentry-sdk
|
|
213
196
|
venusian==3.1.0
|
|
214
|
-
# via
|
|
215
|
-
# cornice
|
|
216
|
-
# pyramid
|
|
197
|
+
# via pyramid
|
|
217
198
|
waitress==3.0.2
|
|
218
199
|
# via
|
|
219
200
|
# -r constraints.in
|
|
@@ -233,7 +214,6 @@ zope-deprecation==5.0
|
|
|
233
214
|
zope-interface==6.1
|
|
234
215
|
# via
|
|
235
216
|
# pyramid
|
|
236
|
-
# repoze-sendmail
|
|
237
217
|
# transaction
|
|
238
218
|
# zope-sqlalchemy
|
|
239
219
|
zope-sqlalchemy==3.1
|
|
@@ -153,15 +153,6 @@ Alternatively, accounts can be created using POST. Supply the user id and passw
|
|
|
153
153
|
|
|
154
154
|
Depending on the :ref:`configuration <settings-accounts>`, you may not be allowed to create accounts.
|
|
155
155
|
|
|
156
|
-
.. note::
|
|
157
|
-
|
|
158
|
-
If the :ref:`accounts validation <settings-account-validation>` is enabled,
|
|
159
|
-
you might also need to provide an ``email-context`` in the ``data``:
|
|
160
|
-
|
|
161
|
-
.. sourcecode:: bash
|
|
162
|
-
|
|
163
|
-
$ echo '{"data": {"id": "bob@example.com", "password": "azerty123", "email-context": {"name": "Bob Smith", "form-url": "https://example.com/validate/"}}}' | http POST http://localhost:8888/v1/accounts --verbose
|
|
164
|
-
|
|
165
156
|
|
|
166
157
|
.. _accounts-update:
|
|
167
158
|
|
|
@@ -303,125 +294,3 @@ Or delete some account:
|
|
|
303
294
|
::
|
|
304
295
|
|
|
305
296
|
$ http DELETE http://localhost:8888/v1/accounts/sam-body --auth admin:s3cr3t
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
.. _accounts-validate:
|
|
310
|
-
|
|
311
|
-
Validate accounts
|
|
312
|
-
=================
|
|
313
|
-
|
|
314
|
-
When the ``account_validation`` option is enabled in :ref:`the settings
|
|
315
|
-
<settings-account-validation>`, account IDs need to be valid email addresses:
|
|
316
|
-
they need to match the regexp in the ``account_validation.email_regexp``
|
|
317
|
-
setting. The default one is very generic, but you may restrict it to only allow
|
|
318
|
-
certain emails, for example only ones from a specific domain.
|
|
319
|
-
|
|
320
|
-
To make sure the ``account_validation`` is enabled, you can check if the
|
|
321
|
-
``validation_enabled`` flag is ``true`` in the ``"accounts"`` field on the
|
|
322
|
-
:ref:`root URL <api-utilities-hello>`.
|
|
323
|
-
|
|
324
|
-
.. http:post:: /accounts/(user_id)/validate/(activation_key)
|
|
325
|
-
|
|
326
|
-
:synopsis: Activates a newly created account with the ``account_validation`` option enabled.
|
|
327
|
-
|
|
328
|
-
**Anonymous**
|
|
329
|
-
|
|
330
|
-
**Example Request**
|
|
331
|
-
|
|
332
|
-
.. sourcecode:: bash
|
|
333
|
-
|
|
334
|
-
$ http POST http://localhost:8888/v1/accounts/bob@example.com/validate/2fe7a389-3556-4c8f-9513-c26bfc5f160b --verbose
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
.. sourcecode:: http
|
|
338
|
-
|
|
339
|
-
POST /v1/accounts/bob@example.com/validate/2fe7a389-3556-4c8f-9513-c26bfc5f160b HTTP/1.1
|
|
340
|
-
Accept: */*
|
|
341
|
-
Accept-Encoding: gzip, deflate
|
|
342
|
-
Connection: keep-alive
|
|
343
|
-
Content-Length: 0
|
|
344
|
-
Host: localhost:8888
|
|
345
|
-
User-Agent: HTTPie/0.9.8
|
|
346
|
-
|
|
347
|
-
**Example Response**
|
|
348
|
-
|
|
349
|
-
.. sourcecode:: http
|
|
350
|
-
|
|
351
|
-
HTTP/1.1 200 OK
|
|
352
|
-
Access-Control-Expose-Headers: Content-Length, Retry-After, Backoff, Alert
|
|
353
|
-
Content-Length: 195
|
|
354
|
-
Content-Type: application/json
|
|
355
|
-
Date: Mon, 21 Jan 2019 13:41:17 GMT
|
|
356
|
-
Server: waitress
|
|
357
|
-
X-Content-Type-Options: nosniff
|
|
358
|
-
|
|
359
|
-
{
|
|
360
|
-
"id": "bob@example.com",
|
|
361
|
-
"last_modified": 1548077982793,
|
|
362
|
-
"password": "$2b$12$zlTlYet5v.v57ak2gEYyoeqKSGzLvwXF/.v3DGpT/q69LecHv68gm",
|
|
363
|
-
"validated": true
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
.. _accounts-reset-password:
|
|
367
|
-
|
|
368
|
-
Resetting a forgotten password
|
|
369
|
-
==============================
|
|
370
|
-
|
|
371
|
-
If the ``account_validation`` option in :ref:`the settings
|
|
372
|
-
<settings-account-validation>` has been enabled, a temporary reset password may
|
|
373
|
-
be requested through the endpoint available at ``/accounts/(user
|
|
374
|
-
id)/reset-password``.
|
|
375
|
-
|
|
376
|
-
.. http:post:: /accounts/(user_id)/reset-password
|
|
377
|
-
|
|
378
|
-
:synopsis: Request a temporary reset password for an account with the ``account_validation`` option enabled.
|
|
379
|
-
|
|
380
|
-
**Anonymous**
|
|
381
|
-
|
|
382
|
-
**Example Request**
|
|
383
|
-
|
|
384
|
-
.. sourcecode:: bash
|
|
385
|
-
|
|
386
|
-
$ http POST http://localhost:8888/v1/accounts/bob@example.com/reset-password --verbose
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
.. sourcecode:: http
|
|
390
|
-
|
|
391
|
-
POST /v1/accounts/bob@example.com/reset-password HTTP/1.1
|
|
392
|
-
Accept: */*
|
|
393
|
-
Accept-Encoding: gzip, deflate
|
|
394
|
-
Connection: keep-alive
|
|
395
|
-
Content-Length: 0
|
|
396
|
-
Host: localhost:8888
|
|
397
|
-
User-Agent: HTTPie/0.9.8
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
**Example Response**
|
|
401
|
-
|
|
402
|
-
.. sourcecode:: http
|
|
403
|
-
|
|
404
|
-
HTTP/1.1 200 OK
|
|
405
|
-
Access-Control-Expose-Headers: Backoff, Alert, Retry-After, Content-Length
|
|
406
|
-
Content-Length: 62
|
|
407
|
-
Content-Type: application/json
|
|
408
|
-
Date: Fri, 08 Feb 2019 14:04:15 GMT
|
|
409
|
-
Server: waitress
|
|
410
|
-
X-Content-Type-Options: nosniff
|
|
411
|
-
|
|
412
|
-
{
|
|
413
|
-
"message": "A temporary reset password has been sent by mail"
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
.. note::
|
|
417
|
-
|
|
418
|
-
You might also need to provide an ``email-context`` in the ``data`` to fill
|
|
419
|
-
in the holes of the email template defined in the :ref:`settings
|
|
420
|
-
<settings-account-password-reset>`:
|
|
421
|
-
|
|
422
|
-
.. sourcecode:: bash
|
|
423
|
-
|
|
424
|
-
$ echo '{"data": {"email-context": {"name": "Bob Smith"}}}' | http POST http://localhost:8888/v1/accounts/bob@example.com/reset-password --verbose
|
|
425
|
-
|
|
426
|
-
Using this temporary reset password, one can
|
|
427
|
-
:ref:`update the account <accounts-update>` providing the new password.
|
|
@@ -36,7 +36,7 @@ The currently authenticated *user ID* can be obtained on the :ref:`root URL <api
|
|
|
36
36
|
|
|
37
37
|
.. code-block:: bash
|
|
38
38
|
|
|
39
|
-
$ http GET
|
|
39
|
+
$ http GET http://localhost:8888/v1/ --auth admin:s3cr3t
|
|
40
40
|
|
|
41
41
|
.. code-block:: http
|
|
42
42
|
:emphasize-lines: 6
|
|
@@ -44,7 +44,7 @@ The currently authenticated *user ID* can be obtained on the :ref:`root URL <api
|
|
|
44
44
|
HTTP/1.1 200 OK
|
|
45
45
|
|
|
46
46
|
{
|
|
47
|
-
"url": "
|
|
47
|
+
"url": "http://localhost:8888/v1/",
|
|
48
48
|
"user": {
|
|
49
49
|
"bucket": "4399ed6c-802e-3278-5d01-44f261f0bab4",
|
|
50
50
|
"id": "account:admin",
|
|
@@ -76,7 +76,7 @@ In order to know which authentication methods are supported by a *Kinto* server,
|
|
|
76
76
|
|
|
77
77
|
.. code-block:: shell
|
|
78
78
|
|
|
79
|
-
$ http
|
|
79
|
+
$ http http://localhost:8888/v1/
|
|
80
80
|
|
|
81
81
|
.. code-block:: http
|
|
82
82
|
|
|
@@ -68,9 +68,9 @@ One way to interact and explore an API is through interactive documentation.
|
|
|
68
68
|
SwaggerUI is a resource that allows testing and visualizing the behavior
|
|
69
69
|
of an OpenAPI described interface.
|
|
70
70
|
|
|
71
|
-
You can try the instance running on https://
|
|
71
|
+
You can try the instance running on https://your-domain/v1/ from you browser
|
|
72
72
|
accessing this
|
|
73
|
-
`Swagger UI example <http://petstore.swagger.io/?url=https://
|
|
73
|
+
`Swagger UI example <http://petstore.swagger.io/?url=https://your-domain/v1/__api__>`_
|
|
74
74
|
|
|
75
75
|
Automated client generation
|
|
76
76
|
===========================
|
|
@@ -69,7 +69,7 @@ for the configured provider ``name``.
|
|
|
69
69
|
JavaScript example
|
|
70
70
|
------------------
|
|
71
71
|
|
|
72
|
-
Let's go through a simple OpenID login example using the `JavaScript kinto client <https://github.com/Kinto/kinto
|
|
72
|
+
Let's go through a simple OpenID login example using the `JavaScript kinto client <https://github.com/Kinto/kinto.js>`_.
|
|
73
73
|
|
|
74
74
|
When the user clicks a login button, it initiates the login process by redirecting the browser to the
|
|
75
75
|
Identity Provider, which itself redirects it to the application page once successful.
|
|
@@ -283,7 +283,7 @@ itself, using the same :ref:`PATCH <record-patch>` and :ref:`PUT
|
|
|
283
283
|
.. sourcecode:: bash
|
|
284
284
|
|
|
285
285
|
$ echo '{"permissions": {"read": ["system.Authenticated"]}}' | \
|
|
286
|
-
http PATCH
|
|
286
|
+
http PATCH http://localhost:8888/v1/buckets/default/collections/tasks \
|
|
287
287
|
--auth bob:p4ssw0rd
|
|
288
288
|
|
|
289
289
|
.. sourcecode:: http
|
|
@@ -295,7 +295,7 @@ itself, using the same :ref:`PATCH <record-patch>` and :ref:`PUT
|
|
|
295
295
|
Connection: keep-alive
|
|
296
296
|
Content-Length: 52
|
|
297
297
|
Content-Type: application/json; charset=utf-8
|
|
298
|
-
Host:
|
|
298
|
+
Host: localhost:8888
|
|
299
299
|
User-Agent: HTTPie/0.8.0
|
|
300
300
|
|
|
301
301
|
{
|
|
@@ -347,7 +347,7 @@ itself, using the same :ref:`PATCH <record-patch>` and :ref:`PUT
|
|
|
347
347
|
.. sourcecode:: bash
|
|
348
348
|
|
|
349
349
|
$ echo '{"permissions": {"write": ["groups:writers"]}}' | \
|
|
350
|
-
http PUT
|
|
350
|
+
http PUT http://localhost:8888/v1/buckets/default/collections/tasks \
|
|
351
351
|
--auth bob:p4ssw0rd
|
|
352
352
|
|
|
353
353
|
.. sourcecode:: http
|
|
@@ -359,7 +359,7 @@ itself, using the same :ref:`PATCH <record-patch>` and :ref:`PUT
|
|
|
359
359
|
Connection: keep-alive
|
|
360
360
|
Content-Length: 57
|
|
361
361
|
Content-Type: application/json; charset=utf-8
|
|
362
|
-
Host:
|
|
362
|
+
Host: localhost:8888
|
|
363
363
|
User-Agent: HTTPie/0.8.0
|
|
364
364
|
|
|
365
365
|
{
|
|
@@ -414,7 +414,7 @@ List every permissions
|
|
|
414
414
|
|
|
415
415
|
.. sourcecode:: bash
|
|
416
416
|
|
|
417
|
-
$ http GET
|
|
417
|
+
$ http GET http://localhost:8888/v1/permissions --auth bob:p4ssw0rd
|
|
418
418
|
|
|
419
419
|
.. sourcecode:: http
|
|
420
420
|
|
|
@@ -14,12 +14,7 @@ Changelog
|
|
|
14
14
|
1.22 (2019-03-20)
|
|
15
15
|
'''''''''''''''''
|
|
16
16
|
|
|
17
|
-
- New
|
|
18
|
-
created account when the ``account validation`` option is enabled for the
|
|
19
|
-
accounts plugin. See :ref:`account validation <accounts-validate>` (#1973)
|
|
20
|
-
- New ``/accounts/{user id}/reset-password`` endpoint to request a temporary
|
|
21
|
-
reset password by email when the ``account validation`` option is enabled for
|
|
22
|
-
the accounts plugin. See :ref:`account validation <accounts-validate>` (#1973)
|
|
17
|
+
- New endpoints within the ``kinto.plugins.accounts`` plugin (#1973)
|
|
23
18
|
|
|
24
19
|
|
|
25
20
|
1.21 (2019-01-10)
|
|
@@ -12,7 +12,7 @@ A set of «sub commands» are available.
|
|
|
12
12
|
|
|
13
13
|
::
|
|
14
14
|
|
|
15
|
-
usage: kinto [-h] {init,start,migrate,version
|
|
15
|
+
usage: kinto [-h] {init,start,migrate,version} ...
|
|
16
16
|
|
|
17
17
|
Kinto Command-Line Interface
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ A set of «sub commands» are available.
|
|
|
22
22
|
subcommands:
|
|
23
23
|
Main Kinto CLI commands
|
|
24
24
|
|
|
25
|
-
{init,start,migrate,version
|
|
25
|
+
{init,start,migrate,version}
|
|
26
26
|
Choose and run with --help
|
|
27
27
|
|
|
28
28
|
|
|
@@ -82,34 +82,6 @@ Starts Kinto locally using a simple HTTP server.
|
|
|
82
82
|
|
|
83
83
|
This **not** recommended for production. :ref:`See more details <run-production>`.
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
Rebuild quotas
|
|
87
|
-
--------------
|
|
88
|
-
|
|
89
|
-
Recalculate the amount of storage taken up by buckets and collections
|
|
90
|
-
and update quota records to match reality. This can be useful if
|
|
91
|
-
you've been bitten by `bug #1226
|
|
92
|
-
<https://github.com/Kinto/kinto/issues/1226>`_. However, this isn't
|
|
93
|
-
intended to be a reoccurring maintenance task -- if your quota records
|
|
94
|
-
are regularly becoming inaccurate, please file a bug!
|
|
95
|
-
|
|
96
|
-
::
|
|
97
|
-
|
|
98
|
-
usage: kinto rebuild-quotas [-h] [--ini INI_FILE] [-q] [-v] [--dry-run]
|
|
99
|
-
|
|
100
|
-
optional arguments:
|
|
101
|
-
-h, --help show this help message and exit
|
|
102
|
-
--ini INI_FILE Application configuration file
|
|
103
|
-
-q, --quiet Show only critical errors.
|
|
104
|
-
-v, --debug Show all messages, including debug messages.
|
|
105
|
-
--dry-run Simulate the rebuild operation and show information
|
|
106
|
-
|
|
107
|
-
For example:
|
|
108
|
-
|
|
109
|
-
::
|
|
110
|
-
|
|
111
|
-
kinto rebuild-quotas --ini=config/postgresql.ini
|
|
112
|
-
|
|
113
85
|
Flush Cache
|
|
114
86
|
-----------
|
|
115
87
|
|
|
@@ -6,16 +6,6 @@ Community
|
|
|
6
6
|
|
|
7
7
|
You can check out Kinto on GitHub at https://github.com/Kinto/kinto/.
|
|
8
8
|
|
|
9
|
-
.. _communication_channels:
|
|
10
|
-
|
|
11
|
-
Communication channels
|
|
12
|
-
======================
|
|
13
|
-
|
|
14
|
-
* Questions tagged ``kinto`` on `Stack Overflow <http://stackoverflow.com/questions/tagged/kinto>`_.
|
|
15
|
-
* Our `Gitter community <https://gitter.im/Kinto/kinto>`_
|
|
16
|
-
* `The Kinto mailing list <https://mail.mozilla.org/listinfo/kinto>`_.
|
|
17
|
-
* Some `#Kinto <https://twitter.com/search?q=%23Kinto>`_ mentions on Twitter :)
|
|
18
|
-
|
|
19
9
|
.. _how-to-contribute:
|
|
20
10
|
|
|
21
11
|
How to contribute
|
|
@@ -204,7 +194,7 @@ Before we merge a pull request, we check that it meets these guidelines:
|
|
|
204
194
|
Hack core libraries
|
|
205
195
|
-------------------
|
|
206
196
|
|
|
207
|
-
If you want to run *Kinto* with some core libraries under development
|
|
197
|
+
If you want to run *Kinto* with some core libraries under development,
|
|
208
198
|
just install them from your local folder using ``pip``.
|
|
209
199
|
|
|
210
200
|
For example:
|
|
@@ -212,9 +202,9 @@ For example:
|
|
|
212
202
|
::
|
|
213
203
|
|
|
214
204
|
cd ..
|
|
215
|
-
git clone https://github.com/
|
|
205
|
+
git clone https://github.com/Kinto/kinto-attachment.git
|
|
216
206
|
cd kinto/
|
|
217
|
-
.venv/bin/pip install -e ../
|
|
207
|
+
.venv/bin/pip install -e ../kinto-attachment/
|
|
218
208
|
|
|
219
209
|
|
|
220
210
|
Functional Tests
|
|
@@ -293,4 +283,3 @@ Step 3
|
|
|
293
283
|
|
|
294
284
|
- Check that the version in ReadTheDocs was published
|
|
295
285
|
- Check that a Pypi package was published
|
|
296
|
-
- Tweet about it!
|
|
@@ -121,7 +121,7 @@ Technical Architecture
|
|
|
121
121
|
Every concept of bucket, group, collection or record is a REST
|
|
122
122
|
*resource* and behaves according to the conventions of a resource.
|
|
123
123
|
|
|
124
|
-
*Kinto* relies on `
|
|
124
|
+
*Kinto* relies on `Pyramid <https://pyramid.readthedocs.io>`_
|
|
125
125
|
to implement the endpoints and HTTP request/response handling.
|
|
126
126
|
|
|
127
127
|
.. image:: images/architecture.svg
|
|
@@ -109,7 +109,7 @@ nitpick_ignore = [
|
|
|
109
109
|
("py:class", "str"),
|
|
110
110
|
("py:class", "tuple"),
|
|
111
111
|
("py:class", "Exception"),
|
|
112
|
-
("py:class", "cornice.Service"),
|
|
112
|
+
("py:class", "kinto.core.cornice.Service"),
|
|
113
113
|
# Member autodoc fails with those:
|
|
114
114
|
# kinto.core.resource.schema
|
|
115
115
|
("py:class", "Integer"),
|
|
@@ -163,7 +163,6 @@ def setup(app):
|
|
|
163
163
|
|
|
164
164
|
intersphinx_mapping = {
|
|
165
165
|
"colander": ("https://colander.readthedocs.io/en/latest/", None),
|
|
166
|
-
"cornice": ("https://cornice.readthedocs.io/en/latest/", None),
|
|
167
166
|
"pyramid": ("https://pyramid.readthedocs.io/en/latest/", None),
|
|
168
167
|
}
|
|
169
168
|
|
|
@@ -181,26 +181,6 @@ Using Amazon RDS
|
|
|
181
181
|
* Use Route53 for loadbalancing
|
|
182
182
|
|
|
183
183
|
|
|
184
|
-
Authentication service
|
|
185
|
-
======================
|
|
186
|
-
|
|
187
|
-
Each request contains an ``Authorization`` header that needs to be verified by the authentication service.
|
|
188
|
-
|
|
189
|
-
In the case of Mozilla, *Kinto* is plugged with the *Firefox Accounts* OAuth service.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
Fail safe
|
|
193
|
-
---------
|
|
194
|
-
|
|
195
|
-
With the *Firefox Accounts* policy, token verifications are cached for an amount of time.
|
|
196
|
-
|
|
197
|
-
.. code-block:: ini
|
|
198
|
-
|
|
199
|
-
fxa-oauth.cache_ttl_seconds = 300 # 5 minutes
|
|
200
|
-
|
|
201
|
-
If the remote service is down, the cache will allow the authentication of known token for a while. However new tokens will generate a 401 or 503 error response.
|
|
202
|
-
|
|
203
|
-
|
|
204
184
|
Scheduled down time
|
|
205
185
|
===================
|
|
206
186
|
|
|
@@ -257,10 +237,10 @@ always remains the same.
|
|
|
257
237
|
At the database level
|
|
258
238
|
----------------------
|
|
259
239
|
|
|
260
|
-
PostgreSQL
|
|
240
|
+
PostgreSQL has sharding support built-in.
|
|
261
241
|
|
|
262
242
|
The right database node is chosen based on some elements of the data query
|
|
263
|
-
(most probably bucket or collection id) and
|
|
243
|
+
(most probably bucket or collection id) and partioning is then performed
|
|
264
244
|
automatically.
|
|
265
245
|
|
|
266
246
|
As an example, see `pgPool <http://www.pgpool.net/mediawiki/index.php/Main_Page>`_
|