appwrite 24.2.0__tar.gz → 24.3.1__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.
- {appwrite-24.2.0 → appwrite-24.3.1}/PKG-INFO +2 -2
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/client.py +2 -2
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_auth_method_id.py +1 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_policy_id.py +1 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/__init__.py +10 -0
- appwrite-24.3.1/appwrite/models/passkey.py +29 -0
- appwrite-24.3.1/appwrite/models/passkey_challenge.py +29 -0
- appwrite-24.3.1/appwrite/models/passkey_list.py +21 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_list.py +3 -1
- appwrite-24.3.1/appwrite/models/policy_passkey.py +23 -0
- appwrite-24.3.1/appwrite/models/token_secret.py +32 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/account.py +347 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/project.py +47 -1
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/users.py +198 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/PKG-INFO +2 -2
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/SOURCES.txt +5 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/pyproject.toml +1 -1
- {appwrite-24.2.0 → appwrite-24.3.1}/setup.py +2 -2
- {appwrite-24.2.0 → appwrite-24.3.1}/LICENSE +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/README.md +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/encoders/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/encoders/value_class_encoder.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/adapter.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/attribute_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/authentication_factor.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/authenticator_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/backup_services.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/billing_plan_group.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/browser.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/browser_permission.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/browser_theme.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/build_runtime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/column_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/compression.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/credit_card.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/database_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/database_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/databases_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/deployment_download_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/deployment_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/documents_db_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/embedding_model.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_method.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_resource_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/execution_trigger.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/flag.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/framework.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/image_format.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/image_gravity.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/index_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/invalidation_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/message_priority.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/message_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/messaging_provider_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/o_auth2_google_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/o_auth2_oidc_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/o_auth_provider.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/order_by.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/organization_key_scopes.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/password_hash.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/platform_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_email_template_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_email_template_locale.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_key_scopes.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_o_auth2_google_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_o_auth2_oidc_prompt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_o_auth_provider_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_protocol_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_service_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/project_smtp_secure.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/proxy_resource_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/proxy_rule_deployment_resource_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/proxy_rule_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/region.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/relation_mutate.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/relationship_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/runtime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/smtp_encryption.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/status_code.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/tables_db_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/template_reference_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/timezone.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/vcs_reference_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/enums/vectors_db_index_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/exception.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/input_file.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/activity_event.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/activity_event_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/additional_resource.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_argon2.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_bcrypt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_md5.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_phpass.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_scrypt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_scrypt_modified.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/algo_sha.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_installation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_installation_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_key_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_scope.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_scope_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_secret.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_secret_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/app_secret_plaintext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/apps_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_bigint.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_boolean.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_datetime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_enum.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_float.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_integer.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_ip.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_line.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_longtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_mediumtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_object.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_point.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_polygon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_relationship.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_string.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_text.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_url.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_varchar.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/attribute_vector.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_archive.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_archive_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_policy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_policy_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_restoration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/backup_restoration_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/base_model.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_limits.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_addon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_addon_details.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_dedicated_database_limits.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_limits.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/billing_plan_supported_addons.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/block.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/bucket.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/bucket_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/collection.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/collection_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_bigint.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_boolean.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_datetime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_enum.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_float.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_index.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_index_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_integer.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_ip.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_line.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_longtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_mediumtext.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_point.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_polygon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_relationship.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_string.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_text.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_url.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/column_varchar.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/continent.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/continent_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/country.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/country_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/currency.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/currency_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_migration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_migration_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status_connections.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status_replica.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/database_status_volume.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_backup.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_backup_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_backup_storage.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_branch.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_branch_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_execution.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_execution_column.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_extensions.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_member.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_operation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_operation_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_pitr_windows.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_pooler.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_replicas.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_restoration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_restoration_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_specification.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_specification_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dedicated_database_specification_pricing.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/deployment.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/deployment_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/dev_key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/document.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/document_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/email_template.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/email_template_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/embedding.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/embedding_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/ephemeral_key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/execution.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/execution_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/file.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/file_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/framework.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/framework_adapter.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/framework_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/function.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/function_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/headers.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/identity.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/identity_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/index.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/index_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/insight.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/insight_cta.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/insight_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/jwt.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/key.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/key_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/language.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/language_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/locale.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/locale_code.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/locale_code_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/log.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/log_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/membership.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/membership_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/message.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/message_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_challenge.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_challenge_secret.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_factors.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_recovery_codes.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mfa_type.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mock_number.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/mock_number_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_amazon.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_apple.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_appwrite.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_auth0.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_authentik.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_autodesk.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_bitbucket.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_bitly.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_box.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_cloudflare.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_dailymotion.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_discord.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_disqus.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_dropbox.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_etsy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_facebook.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_figma.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_fusion_auth.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_github.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_gitlab.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_google.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_hugging_face.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_keycloak.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_kick.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_linkedin.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_microsoft.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_notion.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_oidc.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_okta.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_paypal.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_podio.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_provider_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_resend.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_salesforce.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_slack.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_spotify.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_stripe.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_tradeshift.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_twitch.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_word_press.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_x.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_yahoo.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_yandex.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_zoho.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/o_auth2_zoom.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_approve.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_authorize.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent_token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_consent_token_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_device_authorization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_grant.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_organization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_organization_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_par.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_project.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_project_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_reject.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/oauth2_token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/organization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/phone.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/phone_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_android.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_apple.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_linux.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_web.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/platform_windows.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_aliased_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_corporate_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_disposable_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_deny_free_email.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_membership_privacy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_mfa_factors.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_dictionary.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_history.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_personal_data.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_password_strength.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_alert.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_duration.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_invalidation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_session_limit.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/policy_user_limit.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/postgres_extension.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/preferences.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/presence.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/presence_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/program.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_auth_method.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_protocol.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/project_service.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/provider.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/provider_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/proxy_invalidation.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/proxy_rule.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/proxy_rule_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/report.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/report_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/resource_token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/resource_token_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/row.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/row_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/runtime.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/runtime_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/session.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/session_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/site.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/site_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/specification.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/specification_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/subscriber.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/subscriber_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/table.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/table_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/target.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/target_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/team.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/team_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/token.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/topic.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/topic_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/transaction.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/transaction_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/usage_billing_plan.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/user.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/user_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/variable.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/variable_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/vectorsdb_collection.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/vectorsdb_collection_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/webhook.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/models/webhook_list.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/operator.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/permission.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/query.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/role.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/service.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/activities.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/advisor.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/apps.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/avatars.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/backups.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/databases.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/documents_db.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/embeddings.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/functions.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/graphql.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/locale.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/messaging.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/mongo.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/mysql.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/oauth2.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/organization.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/postgresql.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/presences.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/proxy.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/sites.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/storage.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/tables_db.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/teams.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/tokens.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/vectors_db.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/services/webhooks.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/utils/__init__.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite/utils/deprecated.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/dependency_links.txt +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/requires.txt +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/appwrite.egg-info/top_level.txt +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/setup.cfg +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/test/test_id.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/test/test_operator.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/test/test_permission.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/test/test_query.py +0 -0
- {appwrite-24.2.0 → appwrite-24.3.1}/test/test_role.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: appwrite
|
|
3
|
-
Version: 24.
|
|
3
|
+
Version: 24.3.1
|
|
4
4
|
Summary: Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API
|
|
5
5
|
Home-page: https://appwrite.io/support
|
|
6
|
-
Download-URL: https://github.com/appwrite/sdk-for-python/archive/24.
|
|
6
|
+
Download-URL: https://github.com/appwrite/sdk-for-python/archive/24.3.1.tar.gz
|
|
7
7
|
Author: Appwrite Team
|
|
8
8
|
Author-email: Appwrite Team <team@appwrite.io>
|
|
9
9
|
Maintainer: Appwrite Team
|
|
@@ -18,11 +18,11 @@ class Client:
|
|
|
18
18
|
self._endpoint = 'https://cloud.appwrite.io/v1'
|
|
19
19
|
self._global_headers = {
|
|
20
20
|
'content-type': '',
|
|
21
|
-
'user-agent': f'AppwritePythonSDK/24.
|
|
21
|
+
'user-agent': f'AppwritePythonSDK/24.3.1 ({platform.uname().system}; {platform.uname().version}; {platform.uname().machine})',
|
|
22
22
|
'x-sdk-name': 'Python',
|
|
23
23
|
'x-sdk-platform': 'server',
|
|
24
24
|
'x-sdk-language': 'python',
|
|
25
|
-
'x-sdk-version': '24.
|
|
25
|
+
'x-sdk-version': '24.3.1',
|
|
26
26
|
'X-Appwrite-Response-Format': '2.0.0',
|
|
27
27
|
}
|
|
28
28
|
self._config = {}
|
|
@@ -190,6 +190,7 @@ from .policy_session_limit import PolicySessionLimit
|
|
|
190
190
|
from .policy_user_limit import PolicyUserLimit
|
|
191
191
|
from .policy_membership_privacy import PolicyMembershipPrivacy
|
|
192
192
|
from .policy_mfa_factors import PolicyMfaFactors
|
|
193
|
+
from .policy_passkey import PolicyPasskey
|
|
193
194
|
from .platform_web import PlatformWeb
|
|
194
195
|
from .platform_apple import PlatformApple
|
|
195
196
|
from .platform_android import PlatformAndroid
|
|
@@ -208,6 +209,10 @@ from .proxy_rule import ProxyRule
|
|
|
208
209
|
from .email_template import EmailTemplate
|
|
209
210
|
from .mfa_challenge import MfaChallenge
|
|
210
211
|
from .mfa_challenge_secret import MfaChallengeSecret
|
|
212
|
+
from .token_secret import TokenSecret
|
|
213
|
+
from .passkey import Passkey
|
|
214
|
+
from .passkey_challenge import PasskeyChallenge
|
|
215
|
+
from .passkey_list import PasskeyList
|
|
211
216
|
from .mfa_recovery_codes import MfaRecoveryCodes
|
|
212
217
|
from .mfa_type import MfaType
|
|
213
218
|
from .mfa_factors import MfaFactors
|
|
@@ -493,6 +498,7 @@ __all__ = [
|
|
|
493
498
|
'PolicyUserLimit',
|
|
494
499
|
'PolicyMembershipPrivacy',
|
|
495
500
|
'PolicyMfaFactors',
|
|
501
|
+
'PolicyPasskey',
|
|
496
502
|
'PlatformWeb',
|
|
497
503
|
'PlatformApple',
|
|
498
504
|
'PlatformAndroid',
|
|
@@ -511,6 +517,10 @@ __all__ = [
|
|
|
511
517
|
'EmailTemplate',
|
|
512
518
|
'MfaChallenge',
|
|
513
519
|
'MfaChallengeSecret',
|
|
520
|
+
'TokenSecret',
|
|
521
|
+
'Passkey',
|
|
522
|
+
'PasskeyChallenge',
|
|
523
|
+
'PasskeyList',
|
|
514
524
|
'MfaRecoveryCodes',
|
|
515
525
|
'MfaType',
|
|
516
526
|
'MfaFactors',
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union, cast
|
|
2
|
+
from pydantic import Field, PrivateAttr
|
|
3
|
+
|
|
4
|
+
from .base_model import AppwriteModel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Passkey(AppwriteModel):
|
|
8
|
+
"""
|
|
9
|
+
Passkey
|
|
10
|
+
|
|
11
|
+
Attributes
|
|
12
|
+
----------
|
|
13
|
+
id : str
|
|
14
|
+
Passkey ID.
|
|
15
|
+
createdat : str
|
|
16
|
+
Passkey creation date in ISO 8601 format.
|
|
17
|
+
updatedat : str
|
|
18
|
+
Passkey update date in ISO 8601 format.
|
|
19
|
+
name : str
|
|
20
|
+
Passkey name.
|
|
21
|
+
accessedat : str
|
|
22
|
+
Most recent sign-in with this passkey in ISO 8601 format. Empty until the passkey is used to sign in.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
id: str = Field(..., alias='$id')
|
|
26
|
+
createdat: str = Field(..., alias='$createdAt')
|
|
27
|
+
updatedat: str = Field(..., alias='$updatedAt')
|
|
28
|
+
name: str = Field(..., alias='name')
|
|
29
|
+
accessedat: str = Field(..., alias='accessedAt')
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union, cast
|
|
2
|
+
from pydantic import Field, PrivateAttr
|
|
3
|
+
|
|
4
|
+
from .base_model import AppwriteModel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class PasskeyChallenge(AppwriteModel):
|
|
8
|
+
"""
|
|
9
|
+
Passkey Challenge
|
|
10
|
+
|
|
11
|
+
Attributes
|
|
12
|
+
----------
|
|
13
|
+
id : str
|
|
14
|
+
Challenge ID. When signing in, pass it back with the credential to receive a token.
|
|
15
|
+
createdat : str
|
|
16
|
+
Challenge creation date in ISO 8601 format.
|
|
17
|
+
passkeyid : str
|
|
18
|
+
ID of the passkey being registered. Empty for sign-in challenges.
|
|
19
|
+
expire : str
|
|
20
|
+
Challenge expiration date in ISO 8601 format.
|
|
21
|
+
publickey : Dict[str, Any]
|
|
22
|
+
WebAuthn options in JSON form. Pass them to `PublicKeyCredential.parseCreationOptionsFromJSON()` when registering, or `PublicKeyCredential.parseRequestOptionsFromJSON()` when signing in.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
id: str = Field(..., alias='$id')
|
|
26
|
+
createdat: str = Field(..., alias='$createdAt')
|
|
27
|
+
passkeyid: str = Field(..., alias='passkeyId')
|
|
28
|
+
expire: str = Field(..., alias='expire')
|
|
29
|
+
publickey: Dict[str, Any] = Field(..., alias='publicKey')
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union, cast
|
|
2
|
+
from pydantic import Field, PrivateAttr
|
|
3
|
+
|
|
4
|
+
from .base_model import AppwriteModel
|
|
5
|
+
from .passkey import Passkey
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class PasskeyList(AppwriteModel):
|
|
9
|
+
"""
|
|
10
|
+
Passkeys List
|
|
11
|
+
|
|
12
|
+
Attributes
|
|
13
|
+
----------
|
|
14
|
+
total : float
|
|
15
|
+
Total number of passkeys that matched your query.
|
|
16
|
+
passkeys : List[Passkey]
|
|
17
|
+
List of passkeys.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
total: float = Field(..., alias='total')
|
|
21
|
+
passkeys: List[Passkey] = Field(..., alias='passkeys')
|
|
@@ -17,6 +17,7 @@ from .policy_deny_aliased_email import PolicyDenyAliasedEmail
|
|
|
17
17
|
from .policy_deny_disposable_email import PolicyDenyDisposableEmail
|
|
18
18
|
from .policy_deny_free_email import PolicyDenyFreeEmail
|
|
19
19
|
from .policy_deny_corporate_email import PolicyDenyCorporateEmail
|
|
20
|
+
from .policy_passkey import PolicyPasskey
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class PolicyList(AppwriteModel):
|
|
@@ -27,7 +28,7 @@ class PolicyList(AppwriteModel):
|
|
|
27
28
|
----------
|
|
28
29
|
total : float
|
|
29
30
|
Total number of policies in the given project.
|
|
30
|
-
policies : List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyMfaFactors, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail, PolicyDenyCorporateEmail]]
|
|
31
|
+
policies : List[Union[PolicyPasswordDictionary, PolicyPasswordHistory, PolicyPasswordStrength, PolicyPasswordPersonalData, PolicySessionAlert, PolicySessionDuration, PolicySessionInvalidation, PolicySessionLimit, PolicyUserLimit, PolicyMembershipPrivacy, PolicyMfaFactors, PolicyDenyAliasedEmail, PolicyDenyDisposableEmail, PolicyDenyFreeEmail, PolicyDenyCorporateEmail, PolicyPasskey]]
|
|
31
32
|
List of policies.
|
|
32
33
|
"""
|
|
33
34
|
|
|
@@ -49,5 +50,6 @@ class PolicyList(AppwriteModel):
|
|
|
49
50
|
PolicyDenyDisposableEmail,
|
|
50
51
|
PolicyDenyFreeEmail,
|
|
51
52
|
PolicyDenyCorporateEmail,
|
|
53
|
+
PolicyPasskey,
|
|
52
54
|
]
|
|
53
55
|
] = Field(..., alias='policies')
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union, cast
|
|
2
|
+
from pydantic import Field, PrivateAttr
|
|
3
|
+
|
|
4
|
+
from .base_model import AppwriteModel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class PolicyPasskey(AppwriteModel):
|
|
8
|
+
"""
|
|
9
|
+
Policy Passkey
|
|
10
|
+
|
|
11
|
+
Attributes
|
|
12
|
+
----------
|
|
13
|
+
id : str
|
|
14
|
+
Policy ID.
|
|
15
|
+
rpid : str
|
|
16
|
+
Relying party ID passkeys are bound to. Empty until configured.
|
|
17
|
+
origins : List[Any]
|
|
18
|
+
Web origins passkeys work on, from the project's platforms on the relying party ID and a localhost web platform. Read-only.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
id: str = Field(..., alias='$id')
|
|
22
|
+
rpid: str = Field(..., alias='rpId')
|
|
23
|
+
origins: List[Any] = Field(..., alias='origins')
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union, cast
|
|
2
|
+
from pydantic import Field, PrivateAttr
|
|
3
|
+
|
|
4
|
+
from .base_model import AppwriteModel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TokenSecret(AppwriteModel):
|
|
8
|
+
"""
|
|
9
|
+
Token Secret
|
|
10
|
+
|
|
11
|
+
Attributes
|
|
12
|
+
----------
|
|
13
|
+
id : str
|
|
14
|
+
Token ID.
|
|
15
|
+
createdat : str
|
|
16
|
+
Token creation date in ISO 8601 format.
|
|
17
|
+
userid : str
|
|
18
|
+
User ID.
|
|
19
|
+
secret : str
|
|
20
|
+
Token secret key. Exchange it for a session with the create session endpoint.
|
|
21
|
+
expire : str
|
|
22
|
+
Token expiration date in ISO 8601 format.
|
|
23
|
+
phrase : str
|
|
24
|
+
Security phrase of a token. Empty if security phrase was not requested when creating a token. It includes randomly generated phrase which is also sent in the external resource such as email.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
id: str = Field(..., alias='$id')
|
|
28
|
+
createdat: str = Field(..., alias='$createdAt')
|
|
29
|
+
userid: str = Field(..., alias='userId')
|
|
30
|
+
secret: str = Field(..., alias='secret')
|
|
31
|
+
expire: str = Field(..., alias='expire')
|
|
32
|
+
phrase: str = Field(..., alias='phrase')
|
|
@@ -17,10 +17,14 @@ from ..models.mfa_challenge import MfaChallenge
|
|
|
17
17
|
from ..models.session import Session
|
|
18
18
|
from ..models.mfa_factors import MfaFactors
|
|
19
19
|
from ..models.mfa_recovery_codes import MfaRecoveryCodes
|
|
20
|
+
from ..models.passkey_list import PasskeyList
|
|
21
|
+
from ..models.passkey_challenge import PasskeyChallenge
|
|
22
|
+
from ..models.passkey import Passkey
|
|
20
23
|
from ..models.preferences import Preferences
|
|
21
24
|
from ..models.token import Token
|
|
22
25
|
from ..models.session_list import SessionList
|
|
23
26
|
from ..enums.o_auth_provider import OAuthProvider
|
|
27
|
+
from ..models.token_secret import TokenSecret
|
|
24
28
|
|
|
25
29
|
T = TypeVar('T')
|
|
26
30
|
|
|
@@ -1014,6 +1018,270 @@ class Account(Service):
|
|
|
1014
1018
|
|
|
1015
1019
|
return User.with_data(response, model_type)
|
|
1016
1020
|
|
|
1021
|
+
def list_passkeys(
|
|
1022
|
+
self,
|
|
1023
|
+
queries: Optional[List[str]] = None,
|
|
1024
|
+
total: Optional[bool] = None,
|
|
1025
|
+
) -> PasskeyList:
|
|
1026
|
+
"""
|
|
1027
|
+
Get the list of verified passkeys registered by the currently logged in user.
|
|
1028
|
+
|
|
1029
|
+
Parameters
|
|
1030
|
+
----------
|
|
1031
|
+
queries : Optional[List[str]]
|
|
1032
|
+
Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https://appwrite.io/docs/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter and order on the following attributes: $id, $createdAt, $updatedAt, name, accessedAt
|
|
1033
|
+
total : Optional[bool]
|
|
1034
|
+
When set to false, the total count returned will be 0 and will not be calculated.
|
|
1035
|
+
Returns
|
|
1036
|
+
-------
|
|
1037
|
+
PasskeyList
|
|
1038
|
+
API response as a typed Pydantic model
|
|
1039
|
+
|
|
1040
|
+
Raises
|
|
1041
|
+
------
|
|
1042
|
+
AppwriteException
|
|
1043
|
+
If API request fails
|
|
1044
|
+
"""
|
|
1045
|
+
|
|
1046
|
+
api_path = '/account/passkeys'
|
|
1047
|
+
api_params = {}
|
|
1048
|
+
if queries is not None:
|
|
1049
|
+
api_params['queries'] = self._normalize_value(queries)
|
|
1050
|
+
if total is not None:
|
|
1051
|
+
api_params['total'] = self._normalize_value(total)
|
|
1052
|
+
|
|
1053
|
+
response = self.client.call(
|
|
1054
|
+
'get',
|
|
1055
|
+
api_path,
|
|
1056
|
+
{
|
|
1057
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
1058
|
+
'accept': 'application/json',
|
|
1059
|
+
},
|
|
1060
|
+
api_params,
|
|
1061
|
+
)
|
|
1062
|
+
|
|
1063
|
+
return self._parse_response(response, model=PasskeyList)
|
|
1064
|
+
|
|
1065
|
+
def create_passkey(
|
|
1066
|
+
self,
|
|
1067
|
+
passkey_id: Optional[str] = None,
|
|
1068
|
+
name: Optional[str] = None,
|
|
1069
|
+
) -> PasskeyChallenge:
|
|
1070
|
+
"""
|
|
1071
|
+
Start registering a passkey for the currently logged in user. The session must have signed in or completed an MFA challenge within the last 10 minutes. Pass the returned `publicKey` options to `navigator.credentials.create()`, then complete the registration with [Update passkey verification](/docs/references/cloud/client-web/account#updatePasskeyVerification). The passkey stays pending until verified, and the challenge expires after 5 minutes.
|
|
1072
|
+
|
|
1073
|
+
Parameters
|
|
1074
|
+
----------
|
|
1075
|
+
passkey_id : Optional[str]
|
|
1076
|
+
Passkey ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.
|
|
1077
|
+
name : Optional[str]
|
|
1078
|
+
Passkey name, shown when listing passkeys. Max length: 128 chars.
|
|
1079
|
+
Returns
|
|
1080
|
+
-------
|
|
1081
|
+
PasskeyChallenge
|
|
1082
|
+
API response as a typed Pydantic model
|
|
1083
|
+
|
|
1084
|
+
Raises
|
|
1085
|
+
------
|
|
1086
|
+
AppwriteException
|
|
1087
|
+
If API request fails
|
|
1088
|
+
"""
|
|
1089
|
+
|
|
1090
|
+
api_path = '/account/passkeys'
|
|
1091
|
+
api_params = {}
|
|
1092
|
+
if passkey_id is not None:
|
|
1093
|
+
api_params['passkeyId'] = self._normalize_value(passkey_id)
|
|
1094
|
+
if name is not None:
|
|
1095
|
+
api_params['name'] = self._normalize_value(name)
|
|
1096
|
+
|
|
1097
|
+
response = self.client.call(
|
|
1098
|
+
'post',
|
|
1099
|
+
api_path,
|
|
1100
|
+
{
|
|
1101
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
1102
|
+
'content-type': 'application/json',
|
|
1103
|
+
'accept': 'application/json',
|
|
1104
|
+
},
|
|
1105
|
+
api_params,
|
|
1106
|
+
)
|
|
1107
|
+
|
|
1108
|
+
return self._parse_response(response, model=PasskeyChallenge)
|
|
1109
|
+
|
|
1110
|
+
def get_passkey(
|
|
1111
|
+
self,
|
|
1112
|
+
passkey_id: str,
|
|
1113
|
+
) -> Passkey:
|
|
1114
|
+
"""
|
|
1115
|
+
Get a verified passkey of the currently logged in user by its unique ID.
|
|
1116
|
+
|
|
1117
|
+
Parameters
|
|
1118
|
+
----------
|
|
1119
|
+
passkey_id : str
|
|
1120
|
+
Passkey ID.
|
|
1121
|
+
Returns
|
|
1122
|
+
-------
|
|
1123
|
+
Passkey
|
|
1124
|
+
API response as a typed Pydantic model
|
|
1125
|
+
|
|
1126
|
+
Raises
|
|
1127
|
+
------
|
|
1128
|
+
AppwriteException
|
|
1129
|
+
If API request fails
|
|
1130
|
+
"""
|
|
1131
|
+
|
|
1132
|
+
api_path = '/account/passkeys/{passkeyId}'
|
|
1133
|
+
api_params = {}
|
|
1134
|
+
if passkey_id is None or passkey_id == '':
|
|
1135
|
+
raise AppwriteException('Missing required parameter: "passkey_id"')
|
|
1136
|
+
api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
|
|
1137
|
+
|
|
1138
|
+
response = self.client.call(
|
|
1139
|
+
'get',
|
|
1140
|
+
api_path,
|
|
1141
|
+
{
|
|
1142
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
1143
|
+
'accept': 'application/json',
|
|
1144
|
+
},
|
|
1145
|
+
api_params,
|
|
1146
|
+
)
|
|
1147
|
+
|
|
1148
|
+
return self._parse_response(response, model=Passkey)
|
|
1149
|
+
|
|
1150
|
+
def update_passkey(
|
|
1151
|
+
self,
|
|
1152
|
+
passkey_id: str,
|
|
1153
|
+
name: str,
|
|
1154
|
+
) -> Passkey:
|
|
1155
|
+
"""
|
|
1156
|
+
Rename a passkey of the currently logged in user.
|
|
1157
|
+
|
|
1158
|
+
Parameters
|
|
1159
|
+
----------
|
|
1160
|
+
passkey_id : str
|
|
1161
|
+
Passkey ID.
|
|
1162
|
+
name : str
|
|
1163
|
+
Passkey name. Max length: 128 chars.
|
|
1164
|
+
Returns
|
|
1165
|
+
-------
|
|
1166
|
+
Passkey
|
|
1167
|
+
API response as a typed Pydantic model
|
|
1168
|
+
|
|
1169
|
+
Raises
|
|
1170
|
+
------
|
|
1171
|
+
AppwriteException
|
|
1172
|
+
If API request fails
|
|
1173
|
+
"""
|
|
1174
|
+
|
|
1175
|
+
api_path = '/account/passkeys/{passkeyId}'
|
|
1176
|
+
api_params = {}
|
|
1177
|
+
if passkey_id is None or passkey_id == '':
|
|
1178
|
+
raise AppwriteException('Missing required parameter: "passkey_id"')
|
|
1179
|
+
if name is None:
|
|
1180
|
+
raise AppwriteException('Missing required parameter: "name"')
|
|
1181
|
+
api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
|
|
1182
|
+
api_params['name'] = self._normalize_value(name)
|
|
1183
|
+
|
|
1184
|
+
response = self.client.call(
|
|
1185
|
+
'patch',
|
|
1186
|
+
api_path,
|
|
1187
|
+
{
|
|
1188
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
1189
|
+
'content-type': 'application/json',
|
|
1190
|
+
'accept': 'application/json',
|
|
1191
|
+
},
|
|
1192
|
+
api_params,
|
|
1193
|
+
)
|
|
1194
|
+
|
|
1195
|
+
return self._parse_response(response, model=Passkey)
|
|
1196
|
+
|
|
1197
|
+
def delete_passkey(
|
|
1198
|
+
self,
|
|
1199
|
+
passkey_id: str,
|
|
1200
|
+
) -> Dict[str, Any]:
|
|
1201
|
+
"""
|
|
1202
|
+
Delete a passkey from the currently logged in user. The passkey can no longer be used to sign in, although it may remain stored on the user's device. The session must have signed in or completed an MFA challenge within the last 10 minutes.
|
|
1203
|
+
|
|
1204
|
+
Parameters
|
|
1205
|
+
----------
|
|
1206
|
+
passkey_id : str
|
|
1207
|
+
Passkey ID.
|
|
1208
|
+
Returns
|
|
1209
|
+
-------
|
|
1210
|
+
Dict[str, Any]
|
|
1211
|
+
API response as a dictionary
|
|
1212
|
+
|
|
1213
|
+
Raises
|
|
1214
|
+
------
|
|
1215
|
+
AppwriteException
|
|
1216
|
+
If API request fails
|
|
1217
|
+
"""
|
|
1218
|
+
|
|
1219
|
+
api_path = '/account/passkeys/{passkeyId}'
|
|
1220
|
+
api_params = {}
|
|
1221
|
+
if passkey_id is None or passkey_id == '':
|
|
1222
|
+
raise AppwriteException('Missing required parameter: "passkey_id"')
|
|
1223
|
+
api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
|
|
1224
|
+
|
|
1225
|
+
response = self.client.call(
|
|
1226
|
+
'delete',
|
|
1227
|
+
api_path,
|
|
1228
|
+
{
|
|
1229
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
1230
|
+
'content-type': 'application/json',
|
|
1231
|
+
'accept': 'application/json',
|
|
1232
|
+
},
|
|
1233
|
+
api_params,
|
|
1234
|
+
)
|
|
1235
|
+
|
|
1236
|
+
return response
|
|
1237
|
+
|
|
1238
|
+
def update_passkey_verification(
|
|
1239
|
+
self,
|
|
1240
|
+
passkey_id: str,
|
|
1241
|
+
credential: Dict[str, Any],
|
|
1242
|
+
) -> Passkey:
|
|
1243
|
+
"""
|
|
1244
|
+
Complete a passkey registration started with [Create passkey](/docs/references/cloud/client-web/account#createPasskey). Pass the JSON form of the credential returned by `navigator.credentials.create()`, for example `credential.toJSON()`. Each registration can be verified once; a failed attempt requires starting it again.
|
|
1245
|
+
|
|
1246
|
+
Parameters
|
|
1247
|
+
----------
|
|
1248
|
+
passkey_id : str
|
|
1249
|
+
Passkey ID.
|
|
1250
|
+
credential : Dict[str, Any]
|
|
1251
|
+
Registration credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.
|
|
1252
|
+
Returns
|
|
1253
|
+
-------
|
|
1254
|
+
Passkey
|
|
1255
|
+
API response as a typed Pydantic model
|
|
1256
|
+
|
|
1257
|
+
Raises
|
|
1258
|
+
------
|
|
1259
|
+
AppwriteException
|
|
1260
|
+
If API request fails
|
|
1261
|
+
"""
|
|
1262
|
+
|
|
1263
|
+
api_path = '/account/passkeys/{passkeyId}/verification'
|
|
1264
|
+
api_params = {}
|
|
1265
|
+
if passkey_id is None or passkey_id == '':
|
|
1266
|
+
raise AppwriteException('Missing required parameter: "passkey_id"')
|
|
1267
|
+
if credential is None:
|
|
1268
|
+
raise AppwriteException('Missing required parameter: "credential"')
|
|
1269
|
+
api_path = api_path.replace('{passkeyId}', str(self._normalize_value(passkey_id)))
|
|
1270
|
+
api_params['credential'] = self._normalize_value(credential)
|
|
1271
|
+
|
|
1272
|
+
response = self.client.call(
|
|
1273
|
+
'put',
|
|
1274
|
+
api_path,
|
|
1275
|
+
{
|
|
1276
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
1277
|
+
'content-type': 'application/json',
|
|
1278
|
+
'accept': 'application/json',
|
|
1279
|
+
},
|
|
1280
|
+
api_params,
|
|
1281
|
+
)
|
|
1282
|
+
|
|
1283
|
+
return self._parse_response(response, model=Passkey)
|
|
1284
|
+
|
|
1017
1285
|
def update_password(
|
|
1018
1286
|
self,
|
|
1019
1287
|
password: str,
|
|
@@ -1928,6 +2196,85 @@ class Account(Service):
|
|
|
1928
2196
|
|
|
1929
2197
|
return response
|
|
1930
2198
|
|
|
2199
|
+
def create_passkey_token(
|
|
2200
|
+
self,
|
|
2201
|
+
) -> PasskeyChallenge:
|
|
2202
|
+
"""
|
|
2203
|
+
Start signing in with a passkey. No email or user ID is needed: pass the returned `publicKey` options to `navigator.credentials.get()` and the user picks one of their passkeys. Then call [Update passkey token](/docs/references/cloud/client-web/account#updatePasskeyToken) with the credential to receive a token, and exchange it with [Create session](/docs/references/cloud/client-web/account#createSession). The challenge expires after 5 minutes.
|
|
2204
|
+
Returns
|
|
2205
|
+
-------
|
|
2206
|
+
PasskeyChallenge
|
|
2207
|
+
API response as a typed Pydantic model
|
|
2208
|
+
|
|
2209
|
+
Raises
|
|
2210
|
+
------
|
|
2211
|
+
AppwriteException
|
|
2212
|
+
If API request fails
|
|
2213
|
+
"""
|
|
2214
|
+
|
|
2215
|
+
api_path = '/account/tokens/passkey'
|
|
2216
|
+
api_params = {}
|
|
2217
|
+
|
|
2218
|
+
response = self.client.call(
|
|
2219
|
+
'post',
|
|
2220
|
+
api_path,
|
|
2221
|
+
{
|
|
2222
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
2223
|
+
'content-type': 'application/json',
|
|
2224
|
+
'accept': 'application/json',
|
|
2225
|
+
},
|
|
2226
|
+
api_params,
|
|
2227
|
+
)
|
|
2228
|
+
|
|
2229
|
+
return self._parse_response(response, model=PasskeyChallenge)
|
|
2230
|
+
|
|
2231
|
+
def update_passkey_token(
|
|
2232
|
+
self,
|
|
2233
|
+
challenge_id: str,
|
|
2234
|
+
credential: Dict[str, Any],
|
|
2235
|
+
) -> TokenSecret:
|
|
2236
|
+
"""
|
|
2237
|
+
Complete a passkey sign-in started with [Create passkey token](/docs/references/cloud/client-web/account#createPasskeyToken). Pass the challenge ID and the JSON form of the credential returned by `navigator.credentials.get()`, for example `credential.toJSON()`. The returned token includes its secret and expires after 1 minute: exchange it for a session with [Create session](/docs/references/cloud/client-web/account#createSession). Passkeys require user verification, so the session also satisfies MFA. Each challenge can only be used once.
|
|
2238
|
+
|
|
2239
|
+
Parameters
|
|
2240
|
+
----------
|
|
2241
|
+
challenge_id : str
|
|
2242
|
+
Challenge ID returned by createPasskeyToken.
|
|
2243
|
+
credential : Dict[str, Any]
|
|
2244
|
+
Authentication credential returned by the authenticator, in the JSON form produced by `PublicKeyCredential.toJSON()`.
|
|
2245
|
+
Returns
|
|
2246
|
+
-------
|
|
2247
|
+
TokenSecret
|
|
2248
|
+
API response as a typed Pydantic model
|
|
2249
|
+
|
|
2250
|
+
Raises
|
|
2251
|
+
------
|
|
2252
|
+
AppwriteException
|
|
2253
|
+
If API request fails
|
|
2254
|
+
"""
|
|
2255
|
+
|
|
2256
|
+
api_path = '/account/tokens/passkey'
|
|
2257
|
+
api_params = {}
|
|
2258
|
+
if challenge_id is None:
|
|
2259
|
+
raise AppwriteException('Missing required parameter: "challenge_id"')
|
|
2260
|
+
if credential is None:
|
|
2261
|
+
raise AppwriteException('Missing required parameter: "credential"')
|
|
2262
|
+
api_params['challengeId'] = self._normalize_value(challenge_id)
|
|
2263
|
+
api_params['credential'] = self._normalize_value(credential)
|
|
2264
|
+
|
|
2265
|
+
response = self.client.call(
|
|
2266
|
+
'put',
|
|
2267
|
+
api_path,
|
|
2268
|
+
{
|
|
2269
|
+
'X-Appwrite-Project': self.client.get_config('project'),
|
|
2270
|
+
'content-type': 'application/json',
|
|
2271
|
+
'accept': 'application/json',
|
|
2272
|
+
},
|
|
2273
|
+
api_params,
|
|
2274
|
+
)
|
|
2275
|
+
|
|
2276
|
+
return self._parse_response(response, model=TokenSecret)
|
|
2277
|
+
|
|
1931
2278
|
def create_phone_token(
|
|
1932
2279
|
self,
|
|
1933
2280
|
user_id: str,
|