Files.com 1.6.481__tar.gz → 1.6.482__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.
- {files_com-1.6.481/files_com.egg-info → files_com-1.6.482}/PKG-INFO +1 -1
- files_com-1.6.482/_VERSION +1 -0
- {files_com-1.6.481 → files_com-1.6.482/files_com.egg-info}/PKG-INFO +1 -1
- {files_com-1.6.481 → files_com-1.6.482}/files_com.egg-info/SOURCES.txt +1 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/__init__.py +1 -1
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/api_client.py +27 -2
- {files_com-1.6.481 → files_com-1.6.482}/pyproject.toml +1 -1
- files_com-1.6.482/tests/test_redirect_auth.py +92 -0
- files_com-1.6.481/_VERSION +0 -1
- {files_com-1.6.481 → files_com-1.6.482}/LICENSE +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/README.md +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_com.egg-info/dependency_links.txt +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_com.egg-info/requires.txt +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_com.egg-info/top_level.txt +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/api.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/error.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/list_obj.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/__init__.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/account_line_item.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/action.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/action_notification_export.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/action_notification_export_result.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/agent_node.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/agent_node_connection.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/agent_node_instance.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/agent_push_update.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/ai_assistant_personality.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/ai_task.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/api_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/api_request_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/app.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/as2_incoming_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/as2_outgoing_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/as2_partner.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/as2_station.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/auto.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/automation.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/automation_authoring_schema.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/automation_execution_node.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/automation_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/automation_run.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bandwidth_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/behavior.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bundle.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bundle_action.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bundle_download.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bundle_notification.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bundle_path.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bundle_recipient.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/bundle_registration.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/chat_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/chat_session.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/child_site_management_policy.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/clickwrap.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/custom_domain.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/desktop_configuration_profile.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/direct_connection_info.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/dns_record.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/email_incoming_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/email_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/errors.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/event_channel.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/event_delivery_attempt.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/event_record.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/event_subscription.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/event_target.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/exavault_api_request_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/expectation.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/expectation_evaluation.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/expectation_incident.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/external_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/file.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/file_action.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/file_comment.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/file_comment_reaction.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/file_migration.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/file_migration_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/file_upload_part.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/folder.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/form_field.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/form_field_set.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/ftp_action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/gpg_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/group.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/group_user.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/history.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/history_export.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/history_export_result.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/holiday_calendar.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/holiday_region.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/image.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/inbound_s3_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/inbox_recipient.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/inbox_registration.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/inbox_upload.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/integration_centric_profile.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/invoice.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/invoice_line_item.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/ip_address.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/key_lifecycle_rule.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/lock.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/metadata_category.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/notification.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/outbound_connection_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/partner.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/partner_channel.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/partner_channel_template.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/partner_connection.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/partner_site.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/partner_site_request.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/payment.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/payment_line_item.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/pending_work_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/permission.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/preview.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/public_hosting_request_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/public_ip_address.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/public_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/remote_bandwidth_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/remote_mount_backend.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/remote_server.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/remote_server_configuration_file.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/remote_server_credential.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/request.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/restore.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/schedule.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/scheduled_export.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/scim_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/secret.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/session.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/settings_change.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sftp_action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sftp_host_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/share_group.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/share_group_member.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/siem_http_destination.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/siem_http_destination_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/site.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/site_subdomain_redirect.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sso_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sso_strategy.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/status.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/style.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sync.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sync_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sync_run.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/sync_run_live_transfer.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/usage_by_top_level_dir.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/usage_daily_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/usage_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/user.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/user_additional_email_recipient.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/user_cipher_use.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/user_lifecycle_rule.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/user_request.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/user_security_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/user_sftp_client_use.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/web_dav_action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/webhook_test.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/workspace.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/zip_list_entry.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/path_util.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/files_sdk/util.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/setup.cfg +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_account_line_item.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_action.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_action_notification_export.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_action_notification_export_result.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_agent_node.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_agent_node_connection.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_agent_node_instance.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_agent_push_update.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_ai_assistant_personality.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_ai_task.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_api_errors.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_api_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_api_request_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_app.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_as2_incoming_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_as2_outgoing_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_as2_partner.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_as2_station.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_auto.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_automation.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_automation_authoring_schema.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_automation_execution_node.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_automation_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_automation_run.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bandwidth_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_behavior.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bundle.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bundle_action.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bundle_download.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bundle_notification.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bundle_path.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bundle_recipient.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_bundle_registration.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_chat_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_chat_session.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_child_site_management_policy.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_clickwrap.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_connection_adapter.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_custom_domain.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_decimal_contract.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_desktop_configuration_profile.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_direct_connection_info.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_dns_record.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_email_incoming_message.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_email_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_errors.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_event_channel.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_event_delivery_attempt.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_event_record.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_event_subscription.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_event_target.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_exavault_api_request_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_expectation.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_expectation_evaluation.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_expectation_incident.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_external_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file_action.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file_comment.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file_comment_reaction.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file_migration.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file_migration_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file_underscore_destinations.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_file_upload_part.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_folder.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_form_field.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_form_field_set.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_ftp_action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_gpg_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_group.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_group_user.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_history.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_history_export.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_history_export_result.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_holiday_calendar.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_holiday_region.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_image.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_inbound_s3_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_inbox_recipient.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_inbox_registration.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_inbox_upload.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_integration_centric_profile.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_invoice.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_invoice_line_item.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_ip_address.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_key_lifecycle_rule.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_lock.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_metadata_category.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_notification.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_outbound_connection_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_partner.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_partner_channel.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_partner_channel_template.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_partner_connection.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_partner_site.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_partner_site_request.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_path_parameter_encoding.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_path_util.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_payment.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_payment_line_item.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_pending_work_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_permission.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_preview.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_public_hosting_request_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_public_ip_address.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_public_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_remote_bandwidth_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_remote_mount_backend.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_remote_server.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_remote_server_configuration_file.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_remote_server_credential.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_request.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_restore.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_schedule.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_scheduled_export.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_scim_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_secret.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_session.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_settings_change.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sftp_action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sftp_host_key.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_share_group.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_share_group_member.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_siem_http_destination.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_siem_http_destination_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_site.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_site_subdomain_redirect.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sso_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sso_strategy.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_status.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_stream_download.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_style.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sync.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sync_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sync_run.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_sync_run_live_transfer.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_usage_by_top_level_dir.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_usage_daily_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_usage_snapshot.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_user.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_user_additional_email_recipient.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_user_cipher_use.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_user_lifecycle_rule.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_user_request.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_user_security_event.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_user_sftp_client_use.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_web_dav_action_log.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_webhook_test.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_workspace.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_workspace_id.py +0 -0
- {files_com-1.6.481 → files_com-1.6.482}/tests/test_zip_list_entry.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6.482
|
|
@@ -268,6 +268,7 @@ tests/test_preview.py
|
|
|
268
268
|
tests/test_public_hosting_request_log.py
|
|
269
269
|
tests/test_public_ip_address.py
|
|
270
270
|
tests/test_public_key.py
|
|
271
|
+
tests/test_redirect_auth.py
|
|
271
272
|
tests/test_remote_bandwidth_snapshot.py
|
|
272
273
|
tests/test_remote_mount_backend.py
|
|
273
274
|
tests/test_remote_server.py
|
|
@@ -2,7 +2,7 @@ import json
|
|
|
2
2
|
import random
|
|
3
3
|
import requests
|
|
4
4
|
import time
|
|
5
|
-
from urllib.parse import urljoin
|
|
5
|
+
from urllib.parse import urljoin, urlparse
|
|
6
6
|
from decimal import Decimal
|
|
7
7
|
|
|
8
8
|
import files_sdk
|
|
@@ -16,6 +16,31 @@ import files_sdk.util as util
|
|
|
16
16
|
from requests_toolbelt.adapters import source
|
|
17
17
|
|
|
18
18
|
|
|
19
|
+
FILES_AUTH_HEADERS = (
|
|
20
|
+
"X-FilesAPI-Key",
|
|
21
|
+
"X-FilesAPI-Auth",
|
|
22
|
+
"X-Files-Workspace-Id",
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _url_origin(url):
|
|
27
|
+
parsed = urlparse(url)
|
|
28
|
+
port = parsed.port
|
|
29
|
+
if port is None:
|
|
30
|
+
port = 443 if parsed.scheme.lower() == "https" else 80
|
|
31
|
+
return parsed.scheme.lower(), (parsed.hostname or "").lower(), port
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class FilesSession(requests.Session):
|
|
35
|
+
def rebuild_auth(self, prepared_request, response):
|
|
36
|
+
super().rebuild_auth(prepared_request, response)
|
|
37
|
+
if _url_origin(response.request.url) != _url_origin(
|
|
38
|
+
prepared_request.url
|
|
39
|
+
):
|
|
40
|
+
for header in FILES_AUTH_HEADERS:
|
|
41
|
+
prepared_request.headers.pop(header, None)
|
|
42
|
+
|
|
43
|
+
|
|
19
44
|
class ApiClient:
|
|
20
45
|
"""
|
|
21
46
|
The Files.com API Client.
|
|
@@ -24,7 +49,7 @@ class ApiClient:
|
|
|
24
49
|
def __init__(self):
|
|
25
50
|
pass
|
|
26
51
|
|
|
27
|
-
self.session =
|
|
52
|
+
self.session = FilesSession()
|
|
28
53
|
|
|
29
54
|
if (
|
|
30
55
|
files_sdk.get_source_ip() is not None
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import threading
|
|
2
|
+
import unittest
|
|
3
|
+
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
|
4
|
+
|
|
5
|
+
import files_sdk
|
|
6
|
+
from files_sdk.api_client import ApiClient
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class RedirectHandler(BaseHTTPRequestHandler):
|
|
10
|
+
def do_GET(self):
|
|
11
|
+
if self.path == "/api/rest/v1/cross-origin":
|
|
12
|
+
self.send_response(302)
|
|
13
|
+
self.send_header("Location", self.server.cross_origin_url + "/download")
|
|
14
|
+
self.end_headers()
|
|
15
|
+
return
|
|
16
|
+
if self.path == "/api/rest/v1/same-origin":
|
|
17
|
+
self.send_response(302)
|
|
18
|
+
self.send_header("Location", "/api/rest/v1/final")
|
|
19
|
+
self.end_headers()
|
|
20
|
+
return
|
|
21
|
+
|
|
22
|
+
self.server.received_headers.append(self.headers)
|
|
23
|
+
self.send_response(204)
|
|
24
|
+
self.end_headers()
|
|
25
|
+
|
|
26
|
+
def log_message(self, *args):
|
|
27
|
+
pass
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class TestRedirectAuth(unittest.TestCase):
|
|
31
|
+
def setUp(self):
|
|
32
|
+
self.api_server = ThreadingHTTPServer(("127.0.0.1", 0), RedirectHandler)
|
|
33
|
+
self.storage_server = ThreadingHTTPServer(("127.0.0.1", 0), RedirectHandler)
|
|
34
|
+
self.api_server.received_headers = []
|
|
35
|
+
self.storage_server.received_headers = []
|
|
36
|
+
self.api_url = "http://127.0.0.1:{}".format(self.api_server.server_port)
|
|
37
|
+
self.storage_url = "http://127.0.0.1:{}".format(
|
|
38
|
+
self.storage_server.server_port
|
|
39
|
+
)
|
|
40
|
+
self.api_server.cross_origin_url = self.storage_url
|
|
41
|
+
self.storage_server.cross_origin_url = self.api_url
|
|
42
|
+
self.threads = [
|
|
43
|
+
threading.Thread(target=self.api_server.serve_forever),
|
|
44
|
+
threading.Thread(target=self.storage_server.serve_forever),
|
|
45
|
+
]
|
|
46
|
+
for thread in self.threads:
|
|
47
|
+
thread.start()
|
|
48
|
+
|
|
49
|
+
self.original_base_url = files_sdk.base_url
|
|
50
|
+
files_sdk.base_url = self.api_url
|
|
51
|
+
|
|
52
|
+
def tearDown(self):
|
|
53
|
+
files_sdk.base_url = self.original_base_url
|
|
54
|
+
files_sdk.set_workspace_id(None)
|
|
55
|
+
for server in (self.api_server, self.storage_server):
|
|
56
|
+
server.shutdown()
|
|
57
|
+
server.server_close()
|
|
58
|
+
for thread in self.threads:
|
|
59
|
+
thread.join()
|
|
60
|
+
|
|
61
|
+
def test_cross_origin_redirect_strips_files_auth_headers(self):
|
|
62
|
+
client = ApiClient()
|
|
63
|
+
client.send_request(
|
|
64
|
+
"GET",
|
|
65
|
+
"/cross-origin",
|
|
66
|
+
session_id="testsession",
|
|
67
|
+
workspace_id=123,
|
|
68
|
+
params={},
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
redirected_headers = self.storage_server.received_headers[0]
|
|
72
|
+
self.assertNotIn("X-FilesAPI-Key", redirected_headers)
|
|
73
|
+
self.assertNotIn("X-FilesAPI-Auth", redirected_headers)
|
|
74
|
+
self.assertNotIn("X-Files-Workspace-Id", redirected_headers)
|
|
75
|
+
|
|
76
|
+
def test_same_origin_redirect_keeps_files_auth_headers(self):
|
|
77
|
+
client = ApiClient()
|
|
78
|
+
client.send_request(
|
|
79
|
+
"GET",
|
|
80
|
+
"/same-origin",
|
|
81
|
+
api_key="testkey",
|
|
82
|
+
workspace_id=123,
|
|
83
|
+
params={},
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
redirected_headers = self.api_server.received_headers[0]
|
|
87
|
+
self.assertEqual("testkey", redirected_headers["X-FilesAPI-Key"])
|
|
88
|
+
self.assertEqual("123", redirected_headers["X-Files-Workspace-Id"])
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
if __name__ == "__main__":
|
|
92
|
+
unittest.main()
|
files_com-1.6.481/_VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.6.481
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/action_notification_export_result.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{files_com-1.6.481 → files_com-1.6.482}/files_sdk/models/remote_server_configuration_file.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|