ffbb-data-client 2.4.40__tar.gz → 2.4.41__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.
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/CHANGELOG.md +12 -0
- {ffbb_data_client-2.4.40/src/ffbb_data_client.egg-info → ffbb_data_client-2.4.41}/PKG-INFO +5 -2
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/README.md +4 -1
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/RELEASE_NOTES.md +15 -1
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/api_update_summary.md +13 -1
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/endpoint_discovery.json +18 -12
- {ffbb_data_client-2.4.40/src/ffbb_data_client → ffbb_data_client-2.4.41}/data/indexes.json +8 -9
- ffbb_data_client-2.4.41/data/permission_drift_summary.md +3 -0
- {ffbb_data_client-2.4.40/src/ffbb_data_client → ffbb_data_client-2.4.41}/data/permission_matrix.json +5 -80
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/data_dictionary.rst +7 -10
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/api.py +1 -1
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/config.py +20 -5
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/data/endpoint_discovery.json +18 -12
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41/src/ffbb_data_client}/data/indexes.json +8 -9
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41/src/ffbb_data_client}/data/permission_matrix.json +5 -80
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/helpers/http_requests_utils.py +130 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/retry_utils.py +6 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/token_manager.py +5 -3
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41/src/ffbb_data_client.egg-info}/PKG-INFO +5 -2
- ffbb_data_client-2.4.41/src/ffbb_data_client.egg-info/scm_version.json +8 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/helpers/test_400_http_helpers.py +9 -7
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_304_config.py +9 -1
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_305_token_manager.py +35 -3
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_310_waf_circuit.py +55 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/index.html +4 -4
- ffbb_data_client-2.4.40/data/permission_drift_summary.md +0 -19
- ffbb_data_client-2.4.40/src/ffbb_data_client.egg-info/scm_version.json +0 -8
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.agents/rules/antigravity-rtk-rules.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.coveragerc +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.gitattributes +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/FUNDING.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/dependabot.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/scripts/check_wrapper_parity.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/check_wrapper_parity.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/ci.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/codeql.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/dependabot-automerge.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/deploy-pages.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/keep-ffbb-api-discovery-alive.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/publish.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/release-after-discovery-merge.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.github/workflows/update-ffbb-api-discovery.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.gitignore +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.isort.cfg +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.jules/bolt.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.omc/skills/codeql-security-hardening-expertise.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.omc/skills/pypi-immutable-release-workflow.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.omc/skills/terminal-output-hygiene-expertise.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.pre-commit-config.yaml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/.readthedocs.yml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/AGENTS.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/AUTHORS.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/CODE_OF_CONDUCT.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/CONTRIBUTING.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/DESIGN.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/Dockerfile +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/LICENSE.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/LOCAL_CI_GUIDE.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/SECURITY.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/api.ffbb.app.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/collections.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/field_dictionary.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/meilisearch-prod.ffbb.app.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/openapi.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/openapi_full.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/data/type_discovery_corrections.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/Makefile +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/_static/.gitignore +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/architecture.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/authors.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/changelog.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/conf.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/contributing.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/examples.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/index.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/license.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/migration.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/readme.rst +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/requirements.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/test_strategy.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/docs/testing_conventions.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/examples/README.md +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/examples/complete_usage_example.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/examples/quick_start.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/examples/team_ranking_analysis.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/pyproject.toml +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/run-ci-locally.sh +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/scripts/benchmark_concurrent_pagination.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/scripts/benchmark_search_organisme.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/scripts/discover_endpoints.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/scripts/discover_permissions.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/scripts/discover_types.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/setup.cfg +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/setup.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_helpers.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_mixins/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_mixins/competition.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_mixins/external.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_mixins/getters.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_mixins/list_methods.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_mixins/organisme.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_rest_facade.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/_search_facade.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/ffbb_data_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/meilisearch_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/clients/meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/data/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/data/collections.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/data/field_dictionary.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/data/openapi.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/exceptions.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/helpers/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/helpers/http_requests_helper.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/helpers/meilisearch_client_extension.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/helpers/meilisearch_fallback.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/helpers/multi_search_query_helper.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/helpers/normalization.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/affiche.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/cartographie.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/categorie.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/categorie_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/clock.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/club_contacts.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/code.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/commune.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_fields.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_id.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_id_categorie.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_id_sexe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_origine.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_origine_type_competition.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competition_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competitions_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competitions_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competitions_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competitions_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/competitions_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/configuration_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/contact_info.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/content_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/coordonnees.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/coordonnees_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/document_flyer.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/document_flyer_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/engagement_contacts.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/engagements_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/engagements_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/engagements_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/engagements_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/etat.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/external_competition_id.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/external_id.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/field_set.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/folder.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/formation_session.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/formations_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/formations_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/formations_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/formations_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/game_stats_model.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/game_stats_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/generic_search.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/geo.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/geo_sort_order.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_commune_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_competition_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_configuration_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_engagement_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_entraineur_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_formation_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_officiel_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_organisme_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_poule_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_pratique_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_rencontre_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_saisons_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_salle_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_terrain_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/get_tournoi_response.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/gradient_color.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/id_poule.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/jour.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/label.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/labellisation.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/live.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/lives.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/logo.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_queries.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_competitions.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_engagements.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_formations.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_organismes.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_pratiques.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_rencontres.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_salles.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_terrains.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_result_tournois.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_results.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/multi_search_results_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/nature_sol.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/niveau.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/niveau_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/niveau_extractor.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/niveau_info.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/niveau_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/niveau_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/objectif.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organisateur.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organisateur_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organisme_fields.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organisme_id_pere.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organismes_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organismes_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organismes_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organismes_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/organismes_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/phase_code.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/poule.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/poule_fields.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/poule_rencontre_item_model.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/poules_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/poules_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/pratique.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/pratiques_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/pratiques_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/pratiques_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/pratiques_hit_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/pratiques_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/pratiques_type_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/publication_internet.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/purple_logo.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/query_fields_manager.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/ranking_engagement.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/rankings_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/rencontres_engagement.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/rencontres_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/rencontres_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/rencontres_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/rencontres_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/saison.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/saison_fields.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/saisons_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/saisons_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/salle.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/salles_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/salles_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/salles_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/salles_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/sexe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/sexe_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/source.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/status.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/team_engagement.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/team_ranking.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_categorie_championnat_3x3_libelle.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_name.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_sexe_enum.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/terrains_storage.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournoi_type_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournoi_type_enum.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournoi_types_3x3.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournoi_types_3x3_libelle.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournoi_types_3x3_libelle_enum.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournois_facet_distribution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournois_facet_stats.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournois_hit.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournois_hit_type.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournois_libelle.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/tournois_multi_search_query.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/type_association.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/type_association_libelle.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/type_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/type_competition.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/type_enum.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/models/type_league.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/py.typed +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/cache_manager.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/concurrency_utils.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/converter_utils.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/input_validation.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/secure_logging.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client/utils/web_probe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client.egg-info/SOURCES.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client.egg-info/dependency_links.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client.egg-info/not-zip-safe +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client.egg-info/requires.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client.egg-info/scm_file_list.json +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/src/ffbb_data_client.egg-info/top_level.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/conftest.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/e2e/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/e2e/conftest.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/conftest.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/test_500_user_journey.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/test_501_user_journey_v3.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/test_502_enhanced_integration.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/test_503_secure_logging.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/test_504_input_validation.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/test_505_retry_timeout.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/integration/test_506_raw_json_model_conversion.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_200_api_ffbb_app_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_201_unit_tests_core.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_202_meilisearch_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_203_meilisearch_client_extension.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_204_ffbb_data_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_205_meilisearch_ffbb_client.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_206_coverage_gaps_clients.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_207_coverage_clients_extended.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_208_new_methods_coverage.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_209_automatic_token_resolution.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_210_targeted_clients_helpers_coverage.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_api_optimizations.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_async_methods.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_meilisearch_async.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_search_many.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_v2_backport_search.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_v3_new_features.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_v4_aiter_and_contacts.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/clients/test_warm_cache.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/conftest.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/helpers/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/helpers/test_meilisearch_client_extension_recursive_pagination.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/helpers/test_meilisearch_pagination_concurrent.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/helpers/test_normalization.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_100_competition_id_categorie.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_101_competition_id_sexe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_102_competition_id_type_competition.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_103_competition_id_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_104_competition_origine_categorie.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_105_competition_origine_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_106_competition_origine.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_107_id_engagement_equipe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_108_id_organisme_equipe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_109_id_organisme_equipe1_logo.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_110_labellisation.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_111_niveau_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_112_purple_logo.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_113_salle.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_114_tournoi_type_class.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_115_type_association_libelle.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_116_type_competition_generique.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_117_organisateur.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_118_competition_id.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_119_terrains_inner_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_120_pratiques_inner_models.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_121_to_dict_round_trip.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_122_coverage_gaps.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_123_missing_coverage.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_123_v2_backport.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_124_targeted_coverage_gains.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/models/test_dx_aliases.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/test_310_discover_endpoints.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/test_311_normalize_team_name.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/test_312_api_cors.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/test_313_api_metrics.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/test_314_api_endpoints.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/test_314_discover_permissions.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/__init__.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_300_secure_logging.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_301_input_validation.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_302_retry_utils.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_303_cache_manager.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_306_converter_utils.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_307_coverage_gaps_utils.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_308_converter_utils_extended.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_309_concurrency_utils.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tests/unit/utils/test_web_probe.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tools/update_agents_md.py +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/tox.ini +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/assets/apple-touch-icon.png +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/assets/favicon-192x192.png +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/assets/favicon-48x48.png +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/assets/favicon-96x96.png +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/assets/favicon.ico +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/assets/logo.webp +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/css/style.css +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/favicon.ico +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/llms-full.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/llms.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/robots.txt +0 -0
- {ffbb_data_client-2.4.40 → ffbb_data_client-2.4.41}/website/sitemap.xml +0 -0
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.4.41] - 2026-10-30
|
|
11
|
+
|
|
12
|
+
### Resilience & WAF Bypass (Mobile App Discovery)
|
|
13
|
+
- **User-Agents mobiles officiels FFBB** : Intégration des User-Agents authentiques issus du reverse-engineering de l'application officielle FFBB React Native (moteur Hermes) :
|
|
14
|
+
- Android : `FFBB/1.6.7.42 Dalvik/2.1.0 (Linux; U; Android 5.1.1; Android SDK built for x86 Build/LMY48X)` (par défaut)
|
|
15
|
+
- iOS : `FFBB/1.6.4.176 CFNetwork/897.15 Darwin/17.5.0 (iPhone/6s iOS/11.3)`
|
|
16
|
+
- Safari iOS : `Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15`
|
|
17
|
+
- **Rotation ciblée `FALLBACK_USER_AGENTS` & réarmement du disjoncteur** :
|
|
18
|
+
- Réintroduction de la boucle de fallback automatique sur `FALLBACK_USER_AGENTS` dans `http_get`, `http_post`, `http_get_async` et `http_post_async` lors d'un code HTTP 403 HTML BunnyCDN.
|
|
19
|
+
- Ajout de `reset_host_waf_block(url_or_host)` permettant d'essayer chirurgicalement chaque User-Agent candidat sans que le premier échec ne verrouille immédiatement le disjoncteur pour 600s.
|
|
20
|
+
- Prise en charge dans `TokenManager._fetch_configuration` pour tenter l'ensemble des User-Agents mobiles officiels avant de basculer sur les jetons résilients par défaut.
|
|
21
|
+
|
|
10
22
|
## [2.4.40] - 2026-10-24
|
|
11
23
|
|
|
12
24
|
### Resilience (BunnyCDN WAF)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ffbb-data-client
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.41
|
|
4
4
|
Summary: API FFBB — SDK Python moderne & asynchrone pour les donnees officielles de la Federation Francaise de BasketBall (clubs, classements, calendriers, lives, Meilisearch). Alternative moderne a ffbb-api-client.
|
|
5
5
|
Home-page: https://github.com/nickdesi/ffbb-data-client
|
|
6
6
|
Author: nickdesi
|
|
@@ -97,6 +97,9 @@ Dynamic: license-file
|
|
|
97
97
|
> 🔄 **Cartographie API synchronisée** : `162` collections Directus OpenAPI cartographiées, `17` index Meilisearch surveillés.
|
|
98
98
|
<!-- DISCOVERY_METRICS:END -->
|
|
99
99
|
|
|
100
|
+
> [!WARNING]
|
|
101
|
+
> **Mode dégradé — blocage WAF BunnyCDN (octobre 2026)** : l'origine Directus (`bo.ffbb.com` / `bo.ffbb.app`) est actuellement bloquée en 403 par le WAF BunnyCDN, y compris avec un jeton valide. Les clubs, équipes et matchs récents restent servis via Meilisearch. En revanche, **les classements de poule resteront vides (avec `degraded: true`) tant que Directus est bloqué**, car Meilisearch n'en contient pas. La seule issue durable reste un accès officiel auprès de la FFBB.
|
|
102
|
+
|
|
100
103
|
---
|
|
101
104
|
|
|
102
105
|
## 🏆 Pourquoi choisir `ffbb-data-client` ?
|
|
@@ -356,7 +359,7 @@ Le SDK fonctionne instantanément sans configuration. Des variables d'environnem
|
|
|
356
359
|
| Variable | Description | Valeur par défaut |
|
|
357
360
|
| :--- | :--- | :--- |
|
|
358
361
|
| `API_FFBB_BASE_URL` | URL de base du backend Directus | `https://bo.ffbb.com/` |
|
|
359
|
-
| `FFBB_USER_AGENT` | En-tête User-Agent transmis aux requêtes |
|
|
362
|
+
| `FFBB_USER_AGENT` | En-tête User-Agent transmis aux requêtes | FFBB Android Mobile (1.6.7.42) |
|
|
360
363
|
| `API_FFBB_APP_BEARER_TOKEN` | Jeton Directus explicite (override l'auto-résolution) | Auto-résolu dynamiquement |
|
|
361
364
|
| `MEILISEARCH_BEARER_TOKEN` | Jeton Meilisearch explicite (override l'auto-résolution) | Auto-résolu dynamiquement |
|
|
362
365
|
| `HTTP_PROXY` / `HTTPS_PROXY` | Proxy HTTP/HTTPS sortant (ex: swarm / environnement conteneurisé) | Aucun |
|
|
@@ -41,6 +41,9 @@
|
|
|
41
41
|
> 🔄 **Cartographie API synchronisée** : `162` collections Directus OpenAPI cartographiées, `17` index Meilisearch surveillés.
|
|
42
42
|
<!-- DISCOVERY_METRICS:END -->
|
|
43
43
|
|
|
44
|
+
> [!WARNING]
|
|
45
|
+
> **Mode dégradé — blocage WAF BunnyCDN (octobre 2026)** : l'origine Directus (`bo.ffbb.com` / `bo.ffbb.app`) est actuellement bloquée en 403 par le WAF BunnyCDN, y compris avec un jeton valide. Les clubs, équipes et matchs récents restent servis via Meilisearch. En revanche, **les classements de poule resteront vides (avec `degraded: true`) tant que Directus est bloqué**, car Meilisearch n'en contient pas. La seule issue durable reste un accès officiel auprès de la FFBB.
|
|
46
|
+
|
|
44
47
|
---
|
|
45
48
|
|
|
46
49
|
## 🏆 Pourquoi choisir `ffbb-data-client` ?
|
|
@@ -300,7 +303,7 @@ Le SDK fonctionne instantanément sans configuration. Des variables d'environnem
|
|
|
300
303
|
| Variable | Description | Valeur par défaut |
|
|
301
304
|
| :--- | :--- | :--- |
|
|
302
305
|
| `API_FFBB_BASE_URL` | URL de base du backend Directus | `https://bo.ffbb.com/` |
|
|
303
|
-
| `FFBB_USER_AGENT` | En-tête User-Agent transmis aux requêtes |
|
|
306
|
+
| `FFBB_USER_AGENT` | En-tête User-Agent transmis aux requêtes | FFBB Android Mobile (1.6.7.42) |
|
|
304
307
|
| `API_FFBB_APP_BEARER_TOKEN` | Jeton Directus explicite (override l'auto-résolution) | Auto-résolu dynamiquement |
|
|
305
308
|
| `MEILISEARCH_BEARER_TOKEN` | Jeton Meilisearch explicite (override l'auto-résolution) | Auto-résolu dynamiquement |
|
|
306
309
|
| `HTTP_PROXY` / `HTTPS_PROXY` | Proxy HTTP/HTTPS sortant (ex: swarm / environnement conteneurisé) | Aucun |
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
# Release Notes - FFBB Data Client
|
|
2
2
|
|
|
3
|
-
## Version 2.4.
|
|
3
|
+
## Version 2.4.41 (Latest Release)
|
|
4
|
+
|
|
5
|
+
### 📱 Official FFBB Mobile App User-Agents & Targeted WAF Fallback
|
|
6
|
+
- **Official Mobile User-Agents**: Added authentic User-Agents extracted from the official FFBB React Native mobile application (Hermes bytecode):
|
|
7
|
+
- Android: `FFBB/1.6.7.42 Dalvik/2.1.0 (Linux; U; Android 5.1.1; Android SDK built for x86 Build/LMY48X)` (now default)
|
|
8
|
+
- iOS: `FFBB/1.6.4.176 CFNetwork/897.15 Darwin/17.5.0 (iPhone/6s iOS/11.3)`
|
|
9
|
+
- Safari iOS: `Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15`
|
|
10
|
+
- **Targeted Fallback Rotation & Circuit Unlocking**:
|
|
11
|
+
- Re-introduced resilient `FALLBACK_USER_AGENTS` rotation in `http_get`, `http_post`, `http_get_async`, and `http_post_async` upon receiving BunnyCDN 403 HTML.
|
|
12
|
+
- Added `reset_host_waf_block()` to ensure each candidate User-Agent gets executed without premature tripping of the 600s circuit breaker.
|
|
13
|
+
- Full support in `TokenManager._fetch_configuration` across Directus origins.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Version 2.4.40
|
|
4
18
|
|
|
5
19
|
### 🛡️ BunnyCDN WAF: circuit breaker instead of evasion
|
|
6
20
|
- **Per-host WAF circuit breaker**: a BunnyCDN 403 opens the circuit for `FFBB_WAF_COOLDOWN_SECONDS` (default 600 s). Subsequent calls fail instantly with no network traffic, then the host is probed again.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# FFBB API update summary
|
|
2
2
|
|
|
3
|
-
- Timestamp: `2026-10-
|
|
3
|
+
- Timestamp: `2026-10-27T10:37:32.761487+00:00`
|
|
4
4
|
- API base URL: `https://bo.ffbb.com/`
|
|
5
5
|
- Meilisearch base URL: `https://meilisearch-prod.ffbb.app/`
|
|
6
6
|
- OpenAPI version: `4aa55950ce1db53a17db2c04c935dc112989a92c`
|
|
@@ -21,6 +21,18 @@
|
|
|
21
21
|
- Added: None
|
|
22
22
|
- Removed: None
|
|
23
23
|
|
|
24
|
+
## Meilisearch index attributes drift
|
|
25
|
+
- **ffbbserver_rencontres** :
|
|
26
|
+
- Removed attributes: `officiels_string`
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 📖 Analyse & Contexte Métier des Nouveautés
|
|
31
|
+
|
|
32
|
+
### Index Meilisearch
|
|
33
|
+
- **`ffbbserver_rencontres` → Champ `officiels_string`** (supprimé) :
|
|
34
|
+
- *Nouvel attribut non documenté dans le dictionnaire de référence.*
|
|
35
|
+
|
|
24
36
|
## 🌐 Next.js Web Origin Probe
|
|
25
37
|
- Meilisearch public URL: `https://meilisearch-prod.ffbb.app`
|
|
26
38
|
- Scanned Next.js chunks: 17
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
"metadata": {
|
|
332
332
|
"openapi_version": "4aa55950ce1db53a17db2c04c935dc112989a92c",
|
|
333
333
|
"source": "https://bo.ffbb.com/server/specs/oas",
|
|
334
|
-
"timestamp": "2026-10-
|
|
334
|
+
"timestamp": "2026-10-27T10:37:32.761487+00:00"
|
|
335
335
|
},
|
|
336
336
|
"paths": {
|
|
337
337
|
"items/configuration": [
|
|
@@ -1356,7 +1356,14 @@
|
|
|
1356
1356
|
"modified_schemas": {},
|
|
1357
1357
|
"removed_schemas": []
|
|
1358
1358
|
},
|
|
1359
|
-
"meilisearch_indexes": {
|
|
1359
|
+
"meilisearch_indexes": {
|
|
1360
|
+
"ffbbserver_rencontres": {
|
|
1361
|
+
"added": [],
|
|
1362
|
+
"removed": [
|
|
1363
|
+
"officiels_string"
|
|
1364
|
+
]
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1360
1367
|
},
|
|
1361
1368
|
"meilisearch": {
|
|
1362
1369
|
"available_indexes": [
|
|
@@ -1404,7 +1411,7 @@
|
|
|
1404
1411
|
},
|
|
1405
1412
|
{
|
|
1406
1413
|
"available": true,
|
|
1407
|
-
"estimatedTotalHits":
|
|
1414
|
+
"estimatedTotalHits": 639,
|
|
1408
1415
|
"indexUid": "ffbbnational_pratiques",
|
|
1409
1416
|
"sampleKeys": [
|
|
1410
1417
|
"_geo",
|
|
@@ -1461,7 +1468,7 @@
|
|
|
1461
1468
|
},
|
|
1462
1469
|
{
|
|
1463
1470
|
"available": true,
|
|
1464
|
-
"estimatedTotalHits":
|
|
1471
|
+
"estimatedTotalHits": 4444,
|
|
1465
1472
|
"indexUid": "ffbbnational_rss",
|
|
1466
1473
|
"sampleKeys": [
|
|
1467
1474
|
"categories",
|
|
@@ -1491,7 +1498,7 @@
|
|
|
1491
1498
|
},
|
|
1492
1499
|
{
|
|
1493
1500
|
"available": true,
|
|
1494
|
-
"estimatedTotalHits":
|
|
1501
|
+
"estimatedTotalHits": 3607,
|
|
1495
1502
|
"indexUid": "ffbbserver_competitions",
|
|
1496
1503
|
"sampleKeys": [
|
|
1497
1504
|
"age",
|
|
@@ -1571,7 +1578,7 @@
|
|
|
1571
1578
|
},
|
|
1572
1579
|
{
|
|
1573
1580
|
"available": true,
|
|
1574
|
-
"estimatedTotalHits":
|
|
1581
|
+
"estimatedTotalHits": 121,
|
|
1575
1582
|
"indexUid": "ffbbserver_formations",
|
|
1576
1583
|
"sampleKeys": [
|
|
1577
1584
|
"certification",
|
|
@@ -1642,7 +1649,7 @@
|
|
|
1642
1649
|
},
|
|
1643
1650
|
{
|
|
1644
1651
|
"available": true,
|
|
1645
|
-
"estimatedTotalHits":
|
|
1652
|
+
"estimatedTotalHits": 3280,
|
|
1646
1653
|
"indexUid": "ffbbserver_rencontres",
|
|
1647
1654
|
"sampleKeys": [
|
|
1648
1655
|
"_geo",
|
|
@@ -1670,7 +1677,6 @@
|
|
|
1670
1677
|
"nomEquipe2",
|
|
1671
1678
|
"numeroJournee",
|
|
1672
1679
|
"officiels",
|
|
1673
|
-
"officiels_string",
|
|
1674
1680
|
"organisateur",
|
|
1675
1681
|
"pratique",
|
|
1676
1682
|
"rematch_videos",
|
|
@@ -1734,7 +1740,7 @@
|
|
|
1734
1740
|
},
|
|
1735
1741
|
{
|
|
1736
1742
|
"available": true,
|
|
1737
|
-
"estimatedTotalHits":
|
|
1743
|
+
"estimatedTotalHits": 24,
|
|
1738
1744
|
"indexUid": "ffbbserver_tournois",
|
|
1739
1745
|
"sampleKeys": [
|
|
1740
1746
|
"_geo",
|
|
@@ -1834,7 +1840,7 @@
|
|
|
1834
1840
|
},
|
|
1835
1841
|
{
|
|
1836
1842
|
"available": true,
|
|
1837
|
-
"estimatedTotalHits":
|
|
1843
|
+
"estimatedTotalHits": 6446,
|
|
1838
1844
|
"indexUid": "ffbbsite_news",
|
|
1839
1845
|
"sampleKeys": [
|
|
1840
1846
|
"author",
|
|
@@ -1926,7 +1932,7 @@
|
|
|
1926
1932
|
],
|
|
1927
1933
|
"metadata": {
|
|
1928
1934
|
"source": "https://meilisearch-prod.ffbb.app/multi-search",
|
|
1929
|
-
"timestamp": "2026-10-
|
|
1935
|
+
"timestamp": "2026-10-27T10:37:32.761487+00:00"
|
|
1930
1936
|
},
|
|
1931
1937
|
"unavailable_indexes": [
|
|
1932
1938
|
{
|
|
@@ -2670,7 +2676,7 @@
|
|
|
2670
2676
|
"openapi_sha256": "023cee7b018aed058369ca6757cfa08c823328ebe64f1e055dca22387b862bce",
|
|
2671
2677
|
"openapi_snapshot_sha256": "023cee7b018aed058369ca6757cfa08c823328ebe64f1e055dca22387b862bce",
|
|
2672
2678
|
"openapi_version": "4aa55950ce1db53a17db2c04c935dc112989a92c",
|
|
2673
|
-
"timestamp": "2026-10-
|
|
2679
|
+
"timestamp": "2026-10-27T10:37:32.761487+00:00",
|
|
2674
2680
|
"web_probe": {
|
|
2675
2681
|
"all_ffbb_hosts": [
|
|
2676
2682
|
"https://api.ffbb.app",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"available": true,
|
|
47
|
-
"estimatedTotalHits":
|
|
47
|
+
"estimatedTotalHits": 639,
|
|
48
48
|
"indexUid": "ffbbnational_pratiques",
|
|
49
49
|
"sampleKeys": [
|
|
50
50
|
"_geo",
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"available": true,
|
|
104
|
-
"estimatedTotalHits":
|
|
104
|
+
"estimatedTotalHits": 4444,
|
|
105
105
|
"indexUid": "ffbbnational_rss",
|
|
106
106
|
"sampleKeys": [
|
|
107
107
|
"categories",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"available": true,
|
|
134
|
-
"estimatedTotalHits":
|
|
134
|
+
"estimatedTotalHits": 3607,
|
|
135
135
|
"indexUid": "ffbbserver_competitions",
|
|
136
136
|
"sampleKeys": [
|
|
137
137
|
"age",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"available": true,
|
|
214
|
-
"estimatedTotalHits":
|
|
214
|
+
"estimatedTotalHits": 121,
|
|
215
215
|
"indexUid": "ffbbserver_formations",
|
|
216
216
|
"sampleKeys": [
|
|
217
217
|
"certification",
|
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
},
|
|
283
283
|
{
|
|
284
284
|
"available": true,
|
|
285
|
-
"estimatedTotalHits":
|
|
285
|
+
"estimatedTotalHits": 3280,
|
|
286
286
|
"indexUid": "ffbbserver_rencontres",
|
|
287
287
|
"sampleKeys": [
|
|
288
288
|
"_geo",
|
|
@@ -310,7 +310,6 @@
|
|
|
310
310
|
"nomEquipe2",
|
|
311
311
|
"numeroJournee",
|
|
312
312
|
"officiels",
|
|
313
|
-
"officiels_string",
|
|
314
313
|
"organisateur",
|
|
315
314
|
"pratique",
|
|
316
315
|
"rematch_videos",
|
|
@@ -374,7 +373,7 @@
|
|
|
374
373
|
},
|
|
375
374
|
{
|
|
376
375
|
"available": true,
|
|
377
|
-
"estimatedTotalHits":
|
|
376
|
+
"estimatedTotalHits": 24,
|
|
378
377
|
"indexUid": "ffbbserver_tournois",
|
|
379
378
|
"sampleKeys": [
|
|
380
379
|
"_geo",
|
|
@@ -474,7 +473,7 @@
|
|
|
474
473
|
},
|
|
475
474
|
{
|
|
476
475
|
"available": true,
|
|
477
|
-
"estimatedTotalHits":
|
|
476
|
+
"estimatedTotalHits": 6446,
|
|
478
477
|
"indexUid": "ffbbsite_news",
|
|
479
478
|
"sampleKeys": [
|
|
480
479
|
"author",
|
|
@@ -566,7 +565,7 @@
|
|
|
566
565
|
],
|
|
567
566
|
"metadata": {
|
|
568
567
|
"source": "https://meilisearch-prod.ffbb.app/multi-search",
|
|
569
|
-
"timestamp": "2026-10-
|
|
568
|
+
"timestamp": "2026-10-27T10:37:32.761487+00:00"
|
|
570
569
|
},
|
|
571
570
|
"unavailable_indexes": [
|
|
572
571
|
{
|
{ffbb_data_client-2.4.40/src/ffbb_data_client → ffbb_data_client-2.4.41}/data/permission_matrix.json
RENAMED
|
@@ -1,83 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"drift": {
|
|
3
3
|
"added": [],
|
|
4
|
-
"flips": [
|
|
5
|
-
{
|
|
6
|
-
"after": "blocked_cdn",
|
|
7
|
-
"before": "forbidden_directus",
|
|
8
|
-
"probe": "competition_archived_direct"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
"after": "blocked_cdn",
|
|
12
|
-
"before": "empty",
|
|
13
|
-
"probe": "competition_archived_filter"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"after": "blocked_cdn",
|
|
17
|
-
"before": "ok",
|
|
18
|
-
"probe": "competition_current_direct"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"after": "blocked_cdn",
|
|
22
|
-
"before": "ok",
|
|
23
|
-
"probe": "competition_current_filter"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"after": "blocked_cdn",
|
|
27
|
-
"before": "ok",
|
|
28
|
-
"probe": "competitions_listing"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
"after": "blocked_cdn",
|
|
32
|
-
"before": "ok",
|
|
33
|
-
"probe": "config_noauth"
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"after": "blocked_cdn",
|
|
37
|
-
"before": "ok",
|
|
38
|
-
"probe": "config_noauth_ipv4"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"after": "blocked_cdn",
|
|
42
|
-
"before": "error:ConnectError",
|
|
43
|
-
"probe": "config_noauth_ipv6"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"after": "blocked_cdn",
|
|
47
|
-
"before": "ok",
|
|
48
|
-
"probe": "config_tripwire_okhttp_ipv4"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"after": "blocked_cdn",
|
|
52
|
-
"before": "ok",
|
|
53
|
-
"probe": "engagements_listing"
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
"after": "blocked_cdn",
|
|
57
|
-
"before": "ok",
|
|
58
|
-
"probe": "organismes_listing"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"after": "blocked_cdn",
|
|
62
|
-
"before": "ok",
|
|
63
|
-
"probe": "relational_nested_expand"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"after": "blocked_cdn",
|
|
67
|
-
"before": "ok",
|
|
68
|
-
"probe": "rencontres_listing"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"after": "blocked_cdn",
|
|
72
|
-
"before": "ok",
|
|
73
|
-
"probe": "saisons_id_field"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"after": "blocked_cdn",
|
|
77
|
-
"before": "forbidden_directus",
|
|
78
|
-
"probe": "saisons_nom_field"
|
|
79
|
-
}
|
|
80
|
-
],
|
|
4
|
+
"flips": [],
|
|
81
5
|
"removed": []
|
|
82
6
|
},
|
|
83
7
|
"metadata": {
|
|
@@ -85,7 +9,7 @@
|
|
|
85
9
|
"archived_competition_id": "200000002872733",
|
|
86
10
|
"canary_season": "2026-2027",
|
|
87
11
|
"current_competition_id": "200000002900744",
|
|
88
|
-
"timestamp": "2026-10-
|
|
12
|
+
"timestamp": "2026-10-27T10:37:39.458428+00:00",
|
|
89
13
|
"token_source": "public-fallback"
|
|
90
14
|
},
|
|
91
15
|
"probes": [
|
|
@@ -104,10 +28,11 @@
|
|
|
104
28
|
"url": "https://bo.ffbb.com/items/configuration"
|
|
105
29
|
},
|
|
106
30
|
{
|
|
31
|
+
"detail": "[Errno 101] Network is unreachable",
|
|
107
32
|
"name": "config_noauth_ipv6",
|
|
108
33
|
"notes": "Public endpoint sans auth en IPv6 strict.",
|
|
109
|
-
"outcome": "
|
|
110
|
-
"status":
|
|
34
|
+
"outcome": "error:ConnectError",
|
|
35
|
+
"status": null,
|
|
111
36
|
"url": "https://bo.ffbb.com/items/configuration"
|
|
112
37
|
},
|
|
113
38
|
{
|
|
@@ -75,7 +75,7 @@ Index ``ffbbnational_galeries``
|
|
|
75
75
|
Index ``ffbbnational_pratiques``
|
|
76
76
|
--------------------------------
|
|
77
77
|
|
|
78
|
-
- **Nombre d'enregistrements estimés** : ``
|
|
78
|
+
- **Nombre d'enregistrements estimés** : ``639``
|
|
79
79
|
|
|
80
80
|
.. list-table::
|
|
81
81
|
:header-rows: 1
|
|
@@ -235,7 +235,7 @@ Index ``ffbbnational_pratiques``
|
|
|
235
235
|
Index ``ffbbnational_rss``
|
|
236
236
|
--------------------------
|
|
237
237
|
|
|
238
|
-
- **Nombre d'enregistrements estimés** : ``
|
|
238
|
+
- **Nombre d'enregistrements estimés** : ``4444``
|
|
239
239
|
|
|
240
240
|
.. list-table::
|
|
241
241
|
:header-rows: 1
|
|
@@ -314,7 +314,7 @@ Index ``ffbbnational_rss``
|
|
|
314
314
|
Index ``ffbbserver_competitions``
|
|
315
315
|
---------------------------------
|
|
316
316
|
|
|
317
|
-
- **Nombre d'enregistrements estimés** : ``
|
|
317
|
+
- **Nombre d'enregistrements estimés** : ``3607``
|
|
318
318
|
|
|
319
319
|
.. list-table::
|
|
320
320
|
:header-rows: 1
|
|
@@ -532,7 +532,7 @@ Index ``ffbbserver_engagements``
|
|
|
532
532
|
Index ``ffbbserver_formations``
|
|
533
533
|
-------------------------------
|
|
534
534
|
|
|
535
|
-
- **Nombre d'enregistrements estimés** : ``
|
|
535
|
+
- **Nombre d'enregistrements estimés** : ``121``
|
|
536
536
|
|
|
537
537
|
.. list-table::
|
|
538
538
|
:header-rows: 1
|
|
@@ -723,7 +723,7 @@ Index ``ffbbserver_organismes``
|
|
|
723
723
|
Index ``ffbbserver_rencontres``
|
|
724
724
|
-------------------------------
|
|
725
725
|
|
|
726
|
-
- **Nombre d'enregistrements estimés** : ``
|
|
726
|
+
- **Nombre d'enregistrements estimés** : ``3280``
|
|
727
727
|
|
|
728
728
|
.. list-table::
|
|
729
729
|
:header-rows: 1
|
|
@@ -807,9 +807,6 @@ Index ``ffbbserver_rencontres``
|
|
|
807
807
|
* - ``officiels``
|
|
808
808
|
- ``général``
|
|
809
809
|
- Attribut exposé dans l'index.
|
|
810
|
-
* - ``officiels_string``
|
|
811
|
-
- ``général``
|
|
812
|
-
- Attribut exposé dans l'index.
|
|
813
810
|
* - ``organisateur``
|
|
814
811
|
- ``général``
|
|
815
812
|
- Attribut exposé dans l'index.
|
|
@@ -966,7 +963,7 @@ Index ``ffbbserver_terrains``
|
|
|
966
963
|
Index ``ffbbserver_tournois``
|
|
967
964
|
-----------------------------
|
|
968
965
|
|
|
969
|
-
- **Nombre d'enregistrements estimés** : ``
|
|
966
|
+
- **Nombre d'enregistrements estimés** : ``24``
|
|
970
967
|
|
|
971
968
|
.. list-table::
|
|
972
969
|
:header-rows: 1
|
|
@@ -1233,7 +1230,7 @@ Index ``ffbbsite_jobs``
|
|
|
1233
1230
|
Index ``ffbbsite_news``
|
|
1234
1231
|
-----------------------
|
|
1235
1232
|
|
|
1236
|
-
- **Nombre d'enregistrements estimés** : ``
|
|
1233
|
+
- **Nombre d'enregistrements estimés** : ``6446``
|
|
1237
1234
|
|
|
1238
1235
|
.. list-table::
|
|
1239
1236
|
:header-rows: 1
|
|
@@ -159,7 +159,7 @@ l'ensemble des données publiques de la **Fédération Française de BasketBall*
|
|
|
159
159
|
- ⭐ **Code Source GitHub** : [`https://github.com/nickdesi/ffbb-data-client`](https://github.com/nickdesi/ffbb-data-client)
|
|
160
160
|
- 📖 **Documentation Sphinx complète** : [`https://nickdesi.github.io/ffbb-data-client/`](https://nickdesi.github.io/ffbb-data-client/)
|
|
161
161
|
""",
|
|
162
|
-
version="2.4.
|
|
162
|
+
version="2.4.41",
|
|
163
163
|
contact={
|
|
164
164
|
"name": "FFBB Data Client — Support & Open Data",
|
|
165
165
|
"url": "https://github.com/nickdesi/ffbb-data-client/issues",
|
|
@@ -9,11 +9,26 @@ API_FFBB_BASE_URL = (
|
|
|
9
9
|
MEILISEARCH_BASE_URL = "https://meilisearch-prod.ffbb.app/"
|
|
10
10
|
|
|
11
11
|
# HTTP Headers
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
"
|
|
16
|
-
|
|
12
|
+
# User-Agents officiels décompilés depuis l'application mobile React Native officielle (Hermes)
|
|
13
|
+
DEFAULT_ANDROID_USER_AGENT = "FFBB/1.6.7.42 Dalvik/2.1.0 (Linux; U; Android 5.1.1; Android SDK built for x86 Build/LMY48X)"
|
|
14
|
+
DEFAULT_IOS_USER_AGENT = (
|
|
15
|
+
"FFBB/1.6.4.176 CFNetwork/897.15 Darwin/17.5.0 (iPhone/6s iOS/11.3)"
|
|
16
|
+
)
|
|
17
|
+
DEFAULT_SAFARI_USER_AGENT = "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148"
|
|
18
|
+
|
|
19
|
+
# Use official FFBB Android mobile app User-Agent by default, overridable via FFBB_USER_AGENT.
|
|
20
|
+
DEFAULT_USER_AGENT = os.getenv("FFBB_USER_AGENT", DEFAULT_ANDROID_USER_AGENT)
|
|
21
|
+
|
|
22
|
+
# Liste ordonnée de repli en cas de blocage WAF BunnyCDN
|
|
23
|
+
FALLBACK_USER_AGENTS: list[str] = list(
|
|
24
|
+
dict.fromkeys(
|
|
25
|
+
[
|
|
26
|
+
DEFAULT_USER_AGENT,
|
|
27
|
+
DEFAULT_ANDROID_USER_AGENT,
|
|
28
|
+
DEFAULT_IOS_USER_AGENT,
|
|
29
|
+
DEFAULT_SAFARI_USER_AGENT,
|
|
30
|
+
]
|
|
31
|
+
)
|
|
17
32
|
)
|
|
18
33
|
|
|
19
34
|
# Environment variable names for tokens
|
|
@@ -331,7 +331,7 @@
|
|
|
331
331
|
"metadata": {
|
|
332
332
|
"openapi_version": "4aa55950ce1db53a17db2c04c935dc112989a92c",
|
|
333
333
|
"source": "https://bo.ffbb.com/server/specs/oas",
|
|
334
|
-
"timestamp": "2026-10-
|
|
334
|
+
"timestamp": "2026-10-27T10:37:32.761487+00:00"
|
|
335
335
|
},
|
|
336
336
|
"paths": {
|
|
337
337
|
"items/configuration": [
|
|
@@ -1356,7 +1356,14 @@
|
|
|
1356
1356
|
"modified_schemas": {},
|
|
1357
1357
|
"removed_schemas": []
|
|
1358
1358
|
},
|
|
1359
|
-
"meilisearch_indexes": {
|
|
1359
|
+
"meilisearch_indexes": {
|
|
1360
|
+
"ffbbserver_rencontres": {
|
|
1361
|
+
"added": [],
|
|
1362
|
+
"removed": [
|
|
1363
|
+
"officiels_string"
|
|
1364
|
+
]
|
|
1365
|
+
}
|
|
1366
|
+
}
|
|
1360
1367
|
},
|
|
1361
1368
|
"meilisearch": {
|
|
1362
1369
|
"available_indexes": [
|
|
@@ -1404,7 +1411,7 @@
|
|
|
1404
1411
|
},
|
|
1405
1412
|
{
|
|
1406
1413
|
"available": true,
|
|
1407
|
-
"estimatedTotalHits":
|
|
1414
|
+
"estimatedTotalHits": 639,
|
|
1408
1415
|
"indexUid": "ffbbnational_pratiques",
|
|
1409
1416
|
"sampleKeys": [
|
|
1410
1417
|
"_geo",
|
|
@@ -1461,7 +1468,7 @@
|
|
|
1461
1468
|
},
|
|
1462
1469
|
{
|
|
1463
1470
|
"available": true,
|
|
1464
|
-
"estimatedTotalHits":
|
|
1471
|
+
"estimatedTotalHits": 4444,
|
|
1465
1472
|
"indexUid": "ffbbnational_rss",
|
|
1466
1473
|
"sampleKeys": [
|
|
1467
1474
|
"categories",
|
|
@@ -1491,7 +1498,7 @@
|
|
|
1491
1498
|
},
|
|
1492
1499
|
{
|
|
1493
1500
|
"available": true,
|
|
1494
|
-
"estimatedTotalHits":
|
|
1501
|
+
"estimatedTotalHits": 3607,
|
|
1495
1502
|
"indexUid": "ffbbserver_competitions",
|
|
1496
1503
|
"sampleKeys": [
|
|
1497
1504
|
"age",
|
|
@@ -1571,7 +1578,7 @@
|
|
|
1571
1578
|
},
|
|
1572
1579
|
{
|
|
1573
1580
|
"available": true,
|
|
1574
|
-
"estimatedTotalHits":
|
|
1581
|
+
"estimatedTotalHits": 121,
|
|
1575
1582
|
"indexUid": "ffbbserver_formations",
|
|
1576
1583
|
"sampleKeys": [
|
|
1577
1584
|
"certification",
|
|
@@ -1642,7 +1649,7 @@
|
|
|
1642
1649
|
},
|
|
1643
1650
|
{
|
|
1644
1651
|
"available": true,
|
|
1645
|
-
"estimatedTotalHits":
|
|
1652
|
+
"estimatedTotalHits": 3280,
|
|
1646
1653
|
"indexUid": "ffbbserver_rencontres",
|
|
1647
1654
|
"sampleKeys": [
|
|
1648
1655
|
"_geo",
|
|
@@ -1670,7 +1677,6 @@
|
|
|
1670
1677
|
"nomEquipe2",
|
|
1671
1678
|
"numeroJournee",
|
|
1672
1679
|
"officiels",
|
|
1673
|
-
"officiels_string",
|
|
1674
1680
|
"organisateur",
|
|
1675
1681
|
"pratique",
|
|
1676
1682
|
"rematch_videos",
|
|
@@ -1734,7 +1740,7 @@
|
|
|
1734
1740
|
},
|
|
1735
1741
|
{
|
|
1736
1742
|
"available": true,
|
|
1737
|
-
"estimatedTotalHits":
|
|
1743
|
+
"estimatedTotalHits": 24,
|
|
1738
1744
|
"indexUid": "ffbbserver_tournois",
|
|
1739
1745
|
"sampleKeys": [
|
|
1740
1746
|
"_geo",
|
|
@@ -1834,7 +1840,7 @@
|
|
|
1834
1840
|
},
|
|
1835
1841
|
{
|
|
1836
1842
|
"available": true,
|
|
1837
|
-
"estimatedTotalHits":
|
|
1843
|
+
"estimatedTotalHits": 6446,
|
|
1838
1844
|
"indexUid": "ffbbsite_news",
|
|
1839
1845
|
"sampleKeys": [
|
|
1840
1846
|
"author",
|
|
@@ -1926,7 +1932,7 @@
|
|
|
1926
1932
|
],
|
|
1927
1933
|
"metadata": {
|
|
1928
1934
|
"source": "https://meilisearch-prod.ffbb.app/multi-search",
|
|
1929
|
-
"timestamp": "2026-10-
|
|
1935
|
+
"timestamp": "2026-10-27T10:37:32.761487+00:00"
|
|
1930
1936
|
},
|
|
1931
1937
|
"unavailable_indexes": [
|
|
1932
1938
|
{
|
|
@@ -2670,7 +2676,7 @@
|
|
|
2670
2676
|
"openapi_sha256": "023cee7b018aed058369ca6757cfa08c823328ebe64f1e055dca22387b862bce",
|
|
2671
2677
|
"openapi_snapshot_sha256": "023cee7b018aed058369ca6757cfa08c823328ebe64f1e055dca22387b862bce",
|
|
2672
2678
|
"openapi_version": "4aa55950ce1db53a17db2c04c935dc112989a92c",
|
|
2673
|
-
"timestamp": "2026-10-
|
|
2679
|
+
"timestamp": "2026-10-27T10:37:32.761487+00:00",
|
|
2674
2680
|
"web_probe": {
|
|
2675
2681
|
"all_ffbb_hosts": [
|
|
2676
2682
|
"https://api.ffbb.app",
|