girder 3.2.9.dev8__tar.gz → 3.2.9.dev12__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 changed (776) hide show
  1. {girder-3.2.9.dev8/girder.egg-info → girder-3.2.9.dev12}/PKG-INFO +1 -1
  2. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/assetstore.py +12 -3
  3. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/file.py +15 -7
  4. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/item.py +3 -3
  5. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/assetstore.py +3 -2
  6. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/file.py +1 -1
  7. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/upload.py +8 -5
  8. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/abstract_assetstore_adapter.py +6 -3
  9. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/filesystem_assetstore_adapter.py +2 -2
  10. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/gridfs_assetstore_adapter.py +2 -2
  11. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/s3_assetstore_adapter.py +39 -13
  12. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editAssetstoreWidget.pug +4 -0
  13. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/newAssetstore.pug +4 -0
  14. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditAssetstoreWidget.js +4 -1
  15. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/NewAssetstoreWidget.js +2 -1
  16. {girder-3.2.9.dev8 → girder-3.2.9.dev12/girder.egg-info}/PKG-INFO +1 -1
  17. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/constants.py +1 -0
  18. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/job_rest.py +4 -4
  19. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/jobs_test.py +4 -4
  20. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/publicNames.txt +1 -0
  21. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/Dockerfile +0 -0
  22. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/config.yml +0 -0
  23. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/create_ansible_subtree.sh +0 -0
  24. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/generatePyEnvChecksum.sh +0 -0
  25. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/publish_npm.sh +0 -0
  26. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.circleci/publish_pypi.sh +0 -0
  27. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.codecov.yml +0 -0
  28. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.dockerignore +0 -0
  29. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.editorconfig +0 -0
  30. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.github/workflows/codespell.yml +0 -0
  31. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.gitignore +0 -0
  32. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/.readthedocs.yml +0 -0
  33. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/CHANGELOG.rst +0 -0
  34. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/CMakeLists.txt +0 -0
  35. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/CONTRIBUTING.rst +0 -0
  36. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/Dockerfile +0 -0
  37. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/LICENSE +0 -0
  38. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/MANIFEST.in +0 -0
  39. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/README.rst +0 -0
  40. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/Vagrantfile +0 -0
  41. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/README.rst +0 -0
  42. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/girder_client/__init__.py +0 -0
  43. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/girder_client/cli.py +0 -0
  44. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/clients/python/setup.py +0 -0
  45. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/.yamllint +0 -0
  46. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/LICENSE +0 -0
  47. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/README.md +0 -0
  48. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/defaults/main.yml +0 -0
  49. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/handlers/main.yml +0 -0
  50. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/library/.gitignore +0 -0
  51. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/library/README.md +0 -0
  52. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/library/girder.py +0 -0
  53. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/meta/main.yml +0 -0
  54. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/converge.yml +0 -0
  55. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/data/test1.txt +0 -0
  56. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/data/test2.txt +0 -0
  57. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/data/test3.txt +0 -0
  58. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/molecule.yml +0 -0
  59. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/prepare.yml +0 -0
  60. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/requirements.yml +0 -0
  61. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_access.yml +0 -0
  62. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_apikey.yml +0 -0
  63. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_assetstore.yml +0 -0
  64. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_files.yml +0 -0
  65. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_hierarchy.yml +0 -0
  66. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_resources.yml +0 -0
  67. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_setting.yml +0 -0
  68. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/ansible-module/test_user.yml +0 -0
  69. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/converge.yml +0 -0
  70. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/molecule.yml +0 -0
  71. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/prepare.yml +0 -0
  72. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/pytest.ini +0 -0
  73. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/molecule/default/tests/test_default.py +0 -0
  74. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/tasks/main.yml +0 -0
  75. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/tasks/nodejs.yml +0 -0
  76. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/ansible-role-girder/templates/daemon/girder.service.j2 +0 -0
  77. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/hosts.yml +0 -0
  78. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/playbook.yml +0 -0
  79. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/provision.sh +0 -0
  80. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/deployment-template/requirements.yml +0 -0
  81. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/.gitignore +0 -0
  82. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/ansible.cfg +0 -0
  83. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/vagrant-playbook.yml +0 -0
  84. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/devops/vagrant/vagrant-requirements.yml +0 -0
  85. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docker-compose.yml +0 -0
  86. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/admin-docs.rst +0 -0
  87. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/api-docs.rst +0 -0
  88. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/build-docs.rst +0 -0
  89. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/changelog.rst +0 -0
  90. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/conf.py +0 -0
  91. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/configuration.rst +0 -0
  92. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/dependencies.rst +0 -0
  93. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/deployment-alternatives.rst +0 -0
  94. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/deployment.rst +0 -0
  95. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/dev-installation.rst +0 -0
  96. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/developer-cookbook.rst +0 -0
  97. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/developer-docs.rst +0 -0
  98. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/development.rst +0 -0
  99. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/external-web-clients.rst +0 -0
  100. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/favicon.ico +0 -0
  101. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/images/dicom-viewer.png +0 -0
  102. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/index.rst +0 -0
  103. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/license.png +0 -0
  104. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/migration-guide.rst +0 -0
  105. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/mount.rst +0 -0
  106. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/plugin-development.rst +0 -0
  107. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/plugins.rst +0 -0
  108. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/python-client.rst +0 -0
  109. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/requirements-docs.txt +0 -0
  110. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/security.rst +0 -0
  111. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/sftp.rst +0 -0
  112. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/user-docs.rst +0 -0
  113. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/docs/user-guide.rst +0 -0
  114. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/__init__.py +0 -0
  115. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/__init__.py +0 -0
  116. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/access.py +0 -0
  117. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/api_docs.mako +0 -0
  118. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/api_main.py +0 -0
  119. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/describe.py +0 -0
  120. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/docs.py +0 -0
  121. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/filter_logging.py +0 -0
  122. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/rest.py +0 -0
  123. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/sftp.py +0 -0
  124. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/__init__.py +0 -0
  125. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/api_key.py +0 -0
  126. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/collection.py +0 -0
  127. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/folder.py +0 -0
  128. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/group.py +0 -0
  129. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/notification.py +0 -0
  130. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/resource.py +0 -0
  131. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/system.py +0 -0
  132. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/token.py +0 -0
  133. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/api/v1/user.py +0 -0
  134. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/__init__.py +0 -0
  135. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/build.py +0 -0
  136. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/mount.py +0 -0
  137. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/serve.py +0 -0
  138. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/sftpd.py +0 -0
  139. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/cli/shell.py +0 -0
  140. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/conf/girder.dist.cfg +0 -0
  141. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/constants.py +0 -0
  142. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/events.py +0 -0
  143. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/exceptions.py +0 -0
  144. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/_footer.mako +0 -0
  145. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/_header.mako +0 -0
  146. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/accountApproval.mako +0 -0
  147. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/accountApproved.mako +0 -0
  148. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/emailVerification.mako +0 -0
  149. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/groupInvite.mako +0 -0
  150. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/mail_templates/temporaryAccess.mako +0 -0
  151. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/__init__.py +0 -0
  152. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/api_key.py +0 -0
  153. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/collection.py +0 -0
  154. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/folder.py +0 -0
  155. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/group.py +0 -0
  156. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/item.py +0 -0
  157. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/model_base.py +0 -0
  158. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/notification.py +0 -0
  159. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/setting.py +0 -0
  160. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/token.py +0 -0
  161. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/models/user.py +0 -0
  162. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/plugin.py +0 -0
  163. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/settings.py +0 -0
  164. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/__init__.py +0 -0
  165. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/_cache.py +0 -0
  166. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/_hash_state.py +0 -0
  167. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/acl_mixin.py +0 -0
  168. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/assetstore_utilities.py +0 -0
  169. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/config.py +0 -0
  170. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/error.mako +0 -0
  171. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/mail_utils.py +0 -0
  172. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/model_importer.py +0 -0
  173. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/path.py +0 -0
  174. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/progress.py +0 -0
  175. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/search.py +0 -0
  176. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/server.py +0 -0
  177. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/setting_utilities.py +0 -0
  178. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/system.py +0 -0
  179. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/webroot.mako +0 -0
  180. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/webroot.py +0 -0
  181. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/utility/ziputil.py +0 -0
  182. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/.gitignore +0 -0
  183. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/Gruntfile.js +0 -0
  184. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/.gitignore +0 -0
  185. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/.npmignore +0 -0
  186. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/README.md +0 -0
  187. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/index.js +0 -0
  188. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/package-lock.json +0 -0
  189. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/eslint-config/package.json +0 -0
  190. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/.gitignore +0 -0
  191. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/.npmignore +0 -0
  192. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/Gruntfile.js +0 -0
  193. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/README.md +0 -0
  194. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/fontello.config.json +0 -0
  195. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/package-lock.json +0 -0
  196. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/fontello/package.json +0 -0
  197. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/build.js +0 -0
  198. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/swagger.js +0 -0
  199. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/test.js +0 -0
  200. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/webpack.config.js +0 -0
  201. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/webpack.paths.js +0 -0
  202. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/grunt_tasks/webpack.plugins.js +0 -0
  203. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/package.json.template +0 -0
  204. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/.gitignore +0 -0
  205. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/.npmignore +0 -0
  206. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/README.md +0 -0
  207. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/index.js +0 -0
  208. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/package-lock.json +0 -0
  209. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/pug-lint-config/package.json +0 -0
  210. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/assets/Girder_Mark.png +0 -0
  211. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/auth.js +0 -0
  212. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/ApiKeyCollection.js +0 -0
  213. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/AssetstoreCollection.js +0 -0
  214. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/Collection.js +0 -0
  215. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/CollectionCollection.js +0 -0
  216. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/FileCollection.js +0 -0
  217. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/FolderCollection.js +0 -0
  218. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/GroupCollection.js +0 -0
  219. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/ItemCollection.js +0 -0
  220. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/UserCollection.js +0 -0
  221. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/collections/index.js +0 -0
  222. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/constants.js +0 -0
  223. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/dialog.js +0 -0
  224. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/events.js +0 -0
  225. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/index.js +0 -0
  226. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/main.js +0 -0
  227. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/misc.js +0 -0
  228. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/AccessControlledModel.js +0 -0
  229. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/ApiKeyModel.js +0 -0
  230. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/AssetstoreModel.js +0 -0
  231. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/CollectionCreationPolicyModel.js +0 -0
  232. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/CollectionModel.js +0 -0
  233. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/FileModel.js +0 -0
  234. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/FolderModel.js +0 -0
  235. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/GroupModel.js +0 -0
  236. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/ItemModel.js +0 -0
  237. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/MetadataMixin.js +0 -0
  238. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/Model.js +0 -0
  239. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/UserModel.js +0 -0
  240. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/models/index.js +0 -0
  241. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/package.json +0 -0
  242. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/pluginUtils.js +0 -0
  243. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/rest.js +0 -0
  244. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/router.js +0 -0
  245. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/routes.js +0 -0
  246. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/apidocs/apidocs.styl +0 -0
  247. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/adminConsole.styl +0 -0
  248. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/assetstores.styl +0 -0
  249. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/collectionList.styl +0 -0
  250. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/collectionPage.styl +0 -0
  251. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/frontPage.styl +0 -0
  252. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/groupList.styl +0 -0
  253. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/groupPage.styl +0 -0
  254. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/itemPage.styl +0 -0
  255. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/plugins.styl +0 -0
  256. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/searchResultsList.styl +0 -0
  257. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/systemConfig.styl +0 -0
  258. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/userAccount.styl +0 -0
  259. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/userList.styl +0 -0
  260. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/body/userPage.styl +0 -0
  261. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/footer.styl +0 -0
  262. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/global.styl +0 -0
  263. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/globalNav.styl +0 -0
  264. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/header.styl +0 -0
  265. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/headerUser.styl +0 -0
  266. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/layout.styl +0 -0
  267. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/layoutVars.styl +0 -0
  268. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/loading.styl +0 -0
  269. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/layout/progressArea.styl +0 -0
  270. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/accessWidget.styl +0 -0
  271. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/browserWidget.styl +0 -0
  272. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/hierarchyWidget.styl +0 -0
  273. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/markdownWidget.styl +0 -0
  274. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/metadataWidget.styl +0 -0
  275. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/searchFieldWidget.styl +0 -0
  276. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/taskProgress.styl +0 -0
  277. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/timelineWidget.styl +0 -0
  278. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/uploadWidget.styl +0 -0
  279. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/stylesheets/widgets/userOtpManagementWidget.styl +0 -0
  280. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/adminConsole.pug +0 -0
  281. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/assetstores.pug +0 -0
  282. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/collectionList.pug +0 -0
  283. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/collectionPage.pug +0 -0
  284. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/filesystemImport.pug +0 -0
  285. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/frontPage.pug +0 -0
  286. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/groupList.pug +0 -0
  287. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/groupPage.pug +0 -0
  288. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/itemPage.pug +0 -0
  289. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/plugins.pug +0 -0
  290. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/s3Import.pug +0 -0
  291. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/searchResults.pug +0 -0
  292. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/searchResultsType.pug +0 -0
  293. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/systemConfiguration.pug +0 -0
  294. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/userAccount.pug +0 -0
  295. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/userList.pug +0 -0
  296. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/body/userPage.pug +0 -0
  297. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/alert.pug +0 -0
  298. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layout.pug +0 -0
  299. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutFooter.pug +0 -0
  300. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutGlobalNav.pug +0 -0
  301. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutHeader.pug +0 -0
  302. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutHeaderUser.pug +0 -0
  303. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/layoutProgressArea.pug +0 -0
  304. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/loginDialog.pug +0 -0
  305. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/registerDialog.pug +0 -0
  306. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/layout/resetPasswordDialog.pug +0 -0
  307. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEditor.pug +0 -0
  308. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEditorMixins.pug +0 -0
  309. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEditorNonModal.pug +0 -0
  310. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/accessEntry.pug +0 -0
  311. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/apiKeyList.pug +0 -0
  312. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/browserWidget.pug +0 -0
  313. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/checkedActionsMenu.pug +0 -0
  314. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/collectionInfoDialog.pug +0 -0
  315. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/confirmDialog.pug +0 -0
  316. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/dateTimeRangeWidget.pug +0 -0
  317. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/dateTimeWidget.pug +0 -0
  318. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editApiKeyWidget.pug +0 -0
  319. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editCollectionWidget.pug +0 -0
  320. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editFileWidget.pug +0 -0
  321. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editFolderWidget.pug +0 -0
  322. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editGroupWidget.pug +0 -0
  323. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/editItemWidget.pug +0 -0
  324. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/fileInfoDialog.pug +0 -0
  325. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/fileList.pug +0 -0
  326. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/folderInfoDialog.pug +0 -0
  327. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/folderList.pug +0 -0
  328. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupAdminList.pug +0 -0
  329. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupInviteDialog.pug +0 -0
  330. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupInviteList.pug +0 -0
  331. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupMemberList.pug +0 -0
  332. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/groupModList.pug +0 -0
  333. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/hierarchyBreadcrumb.pug +0 -0
  334. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/hierarchyPaginated.pug +0 -0
  335. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/hierarchyWidget.pug +0 -0
  336. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/itemBreadcrumb.pug +0 -0
  337. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/itemList.pug +0 -0
  338. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/jsonMetadatumEditWidget.pug +0 -0
  339. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/jsonMetadatumView.pug +0 -0
  340. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/loadingAnimation.pug +0 -0
  341. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/markdownWidget.pug +0 -0
  342. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/metadataWidget.pug +0 -0
  343. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/metadatumEditWidget.pug +0 -0
  344. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/metadatumView.pug +0 -0
  345. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/paginateWidget.pug +0 -0
  346. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/pluginConfigBreadcrumb.pug +0 -0
  347. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/rootSelectorWidget.pug +0 -0
  348. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchField.pug +0 -0
  349. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchHelp.pug +0 -0
  350. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchModeSelect.pug +0 -0
  351. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/searchResults.pug +0 -0
  352. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/sortCollectionWidget.pug +0 -0
  353. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/taskProgress.pug +0 -0
  354. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/timeline.pug +0 -0
  355. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/uploadWidget.pug +0 -0
  356. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/uploadWidgetMixins.pug +0 -0
  357. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/uploadWidgetNonModal.pug +0 -0
  358. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/userOtpBegin.pug +0 -0
  359. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/userOtpDisable.pug +0 -0
  360. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/templates/widgets/userOtpEnable.pug +0 -0
  361. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/EventStream.js +0 -0
  362. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/PluginUtils.js +0 -0
  363. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/S3UploadHandler.js +0 -0
  364. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/index.js +0 -0
  365. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/jquery/girderEnable.js +0 -0
  366. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/utilities/jquery/girderModal.js +0 -0
  367. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/version.js +0 -0
  368. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/App.js +0 -0
  369. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/View.js +0 -0
  370. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/AdminView.js +0 -0
  371. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/AssetstoresView.js +0 -0
  372. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/CollectionView.js +0 -0
  373. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/CollectionsView.js +0 -0
  374. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/FilesystemImportView.js +0 -0
  375. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/FolderView.js +0 -0
  376. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/FrontPageView.js +0 -0
  377. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/GroupView.js +0 -0
  378. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/GroupsView.js +0 -0
  379. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/ItemView.js +0 -0
  380. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/PluginsView.js +0 -0
  381. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/S3ImportView.js +0 -0
  382. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/SearchResultsView.js +0 -0
  383. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/SystemConfigurationView.js +0 -0
  384. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/UserAccountView.js +0 -0
  385. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/UserView.js +0 -0
  386. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/UsersView.js +0 -0
  387. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/body/index.js +0 -0
  388. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/index.js +0 -0
  389. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/FooterView.js +0 -0
  390. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/GlobalNavView.js +0 -0
  391. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/HeaderUserView.js +0 -0
  392. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/HeaderView.js +0 -0
  393. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/LoginView.js +0 -0
  394. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/ProgressListView.js +0 -0
  395. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/RegisterView.js +0 -0
  396. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/ResetPasswordView.js +0 -0
  397. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/layout/index.js +0 -0
  398. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/AccessWidget.js +0 -0
  399. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/ApiKeyListWidget.js +0 -0
  400. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/BrowserWidget.js +0 -0
  401. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/CheckedMenuWidget.js +0 -0
  402. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/CollectionInfoWidget.js +0 -0
  403. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/DateTimeRangeWidget.js +0 -0
  404. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/DateTimeWidget.js +0 -0
  405. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditApiKeyWidget.js +0 -0
  406. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditCollectionWidget.js +0 -0
  407. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditFileWidget.js +0 -0
  408. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditFolderWidget.js +0 -0
  409. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditGroupWidget.js +0 -0
  410. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/EditItemWidget.js +0 -0
  411. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FileInfoWidget.js +0 -0
  412. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FileListWidget.js +0 -0
  413. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FolderInfoWidget.js +0 -0
  414. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/FolderListWidget.js +0 -0
  415. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupAdminsWidget.js +0 -0
  416. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupInvitesWidget.js +0 -0
  417. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupMembersWidget.js +0 -0
  418. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/GroupModsWidget.js +0 -0
  419. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/HierarchyWidget.js +0 -0
  420. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/ItemBreadcrumbWidget.js +0 -0
  421. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/ItemListWidget.js +0 -0
  422. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/LoadingAnimation.js +0 -0
  423. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/MarkdownWidget.js +0 -0
  424. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/MetadataWidget.js +0 -0
  425. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/PaginateWidget.js +0 -0
  426. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/PluginConfigBreadcrumbWidget.js +0 -0
  427. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/RootSelectorWidget.js +0 -0
  428. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/SearchFieldWidget.js +0 -0
  429. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/SearchPaginateWidget.js +0 -0
  430. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/SortCollectionWidget.js +0 -0
  431. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/TaskProgressWidget.js +0 -0
  432. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/TimelineWidget.js +0 -0
  433. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/UploadWidget.js +0 -0
  434. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/UserOtpManagementWidget.js +0 -0
  435. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/src/views/widgets/index.js +0 -0
  436. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/.gitignore +0 -0
  437. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/built/.gitignore +0 -0
  438. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/girder-swagger.js +0 -0
  439. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/static/img/Girder_Favicon.png +0 -0
  440. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/fake.jpg +0 -0
  441. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/ConsoleReporter.js +0 -0
  442. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/MIT.LICENSE.txt +0 -0
  443. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.css +0 -0
  444. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/lib/jasmine-1.3.1/jasmine.js +0 -0
  445. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/specRunner.js +0 -0
  446. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testEnv.pug +0 -0
  447. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile.csv +0 -0
  448. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile.tsv +0 -0
  449. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile.txt +0 -0
  450. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testFile2 +0 -0
  451. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder/web_client/test/testUtils.js +0 -0
  452. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/SOURCES.txt +0 -0
  453. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/dependency_links.txt +0 -0
  454. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/entry_points.txt +0 -0
  455. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/not-zip-safe +0 -0
  456. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/requires.txt +0 -0
  457. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/girder.egg-info/top_level.txt +0 -0
  458. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/package-lock.json +0 -0
  459. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/package.json +0 -0
  460. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/.gitignore +0 -0
  461. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/girder_audit_logs/__init__.py +0 -0
  462. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/girder_audit_logs/cleanup.py +0 -0
  463. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/girder_audit_logs/report.py +0 -0
  464. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/audit_logs/setup.py +0 -0
  465. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/__init__.py +0 -0
  466. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/constants.py +0 -0
  467. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/mail_templates/authorized_upload.uploadFinished.mako +0 -0
  468. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/rest.py +0 -0
  469. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/main.js +0 -0
  470. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/package.json +0 -0
  471. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/routes.js +0 -0
  472. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizeUpload.styl +0 -0
  473. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/stylesheets/authorizedUpload.styl +0 -0
  474. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizeUpload.pug +0 -0
  475. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/authorizedUpload.pug +0 -0
  476. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/templates/folderActions.pug +0 -0
  477. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizeUploadView.js +0 -0
  478. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/girder_authorized_upload/web_client/views/AuthorizedUploadView.js +0 -0
  479. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/plugin_tests/__init__.py +0 -0
  480. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/plugin_tests/authorizedUploadSpec.js +0 -0
  481. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/plugin_tests/upload_test.py +0 -0
  482. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/authorized_upload/setup.py +0 -0
  483. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/__init__.py +0 -0
  484. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/settings.py +0 -0
  485. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/main.js +0 -0
  486. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/package.json +0 -0
  487. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/routes.js +0 -0
  488. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/stylesheets/configView.styl +0 -0
  489. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/templates/configView.pug +0 -0
  490. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/girder_autojoin/web_client/views/ConfigView.js +0 -0
  491. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/plugin_tests/__init__.py +0 -0
  492. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/plugin_tests/autojoinSpec.js +0 -0
  493. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/plugin_tests/autojoin_test.py +0 -0
  494. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/autojoin/setup.py +0 -0
  495. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/__init__.py +0 -0
  496. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/event_helper.py +0 -0
  497. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/main.js +0 -0
  498. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/package.json +0 -0
  499. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomItem.styl +0 -0
  500. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/stylesheets/dicomSliceMetadata.styl +0 -0
  501. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomItem.pug +0 -0
  502. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/dicomSliceMetadata.pug +0 -0
  503. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/templates/parseDicomItem.pug +0 -0
  504. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/views/DicomView.js +0 -0
  505. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/girder_dicom_viewer/web_client/webpack.helper.js +0 -0
  506. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/__init__.py +0 -0
  507. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000000.dcm.sha512 +0 -0
  508. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000001.dcm.sha512 +0 -0
  509. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000002.dcm.sha512 +0 -0
  510. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/data/000003.dcm.sha512 +0 -0
  511. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/plugin_tests/dicom_viewer_test.py +0 -0
  512. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/dicom_viewer/setup.py +0 -0
  513. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/girder_download_statistics/__init__.py +0 -0
  514. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/__init__.py +0 -0
  515. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/download_statistics_test.py +0 -0
  516. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/files/txt1.txt +0 -0
  517. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/plugin_tests/files/txt2.txt +0 -0
  518. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/download_statistics/setup.py +0 -0
  519. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/__init__.py +0 -0
  520. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/rest.py +0 -0
  521. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/settings.py +0 -0
  522. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/main.js +0 -0
  523. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/package.json +0 -0
  524. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/routes.js +0 -0
  525. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/stylesheets/configView.styl +0 -0
  526. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/templates/configView.pug +0 -0
  527. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/girder_google_analytics/web_client/views/ConfigView.js +0 -0
  528. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/plugin_tests/__init__.py +0 -0
  529. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/plugin_tests/google_analytics_test.py +0 -0
  530. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/google_analytics/setup.py +0 -0
  531. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/__init__.py +0 -0
  532. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/settings.py +0 -0
  533. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/main.js +0 -0
  534. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/models/UserModel.js +0 -0
  535. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/package.json +0 -0
  536. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/routes.js +0 -0
  537. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/templates/configView.pug +0 -0
  538. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/girder_gravatar/web_client/views/ConfigView.js +0 -0
  539. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/plugin_tests/__init__.py +0 -0
  540. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/plugin_tests/gravatar_test.py +0 -0
  541. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/gravatar/setup.py +0 -0
  542. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/__init__.py +0 -0
  543. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/settings.py +0 -0
  544. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/main.js +0 -0
  545. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/package.json +0 -0
  546. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/stylesheets/hashsumDownloadFileInfoWidget.styl +0 -0
  547. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/config.pug +0 -0
  548. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/templates/hashsumDownloadFileInfoWidget.pug +0 -0
  549. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/views/ConfigView.js +0 -0
  550. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/girder_hashsum_download/web_client/views/FileInfoWidget.js +0 -0
  551. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/plugin_tests/__init__.py +0 -0
  552. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/plugin_tests/hashsumSpec.js +0 -0
  553. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/plugin_tests/hashsum_download_test.py +0 -0
  554. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/hashsum_download/setup.py +0 -0
  555. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/__init__.py +0 -0
  556. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/constants.py +0 -0
  557. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/rest.py +0 -0
  558. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/settings.py +0 -0
  559. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/main.js +0 -0
  560. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/package.json +0 -0
  561. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/routes.js +0 -0
  562. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/stylesheets/configView.styl +0 -0
  563. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/templates/configView.pug +0 -0
  564. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/views/ConfigView.js +0 -0
  565. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/girder_homepage/web_client/views/FrontPageView.js +0 -0
  566. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/plugin_tests/__init__.py +0 -0
  567. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/plugin_tests/homepageSpec.js +0 -0
  568. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/plugin_tests/homepage_test.py +0 -0
  569. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/homepage/setup.py +0 -0
  570. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/__init__.py +0 -0
  571. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/rest.py +0 -0
  572. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/settings.py +0 -0
  573. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/main.js +0 -0
  574. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/package.json +0 -0
  575. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/routes.js +0 -0
  576. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/stylesheets/configView.styl +0 -0
  577. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/templates/configView.pug +0 -0
  578. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/templates/itemLicenseWidget.pug +0 -0
  579. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/templates/selectLicenseWidget.pug +0 -0
  580. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/ConfigView.js +0 -0
  581. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/EditItemWidget.js +0 -0
  582. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/HierarchyWidget.js +0 -0
  583. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemLicenseWidget.js +0 -0
  584. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/ItemView.js +0 -0
  585. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/SelectLicenseWidget.js +0 -0
  586. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/girder_item_licenses/web_client/views/UploadWidget.js +0 -0
  587. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/plugin_tests/__init__.py +0 -0
  588. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/plugin_tests/itemLicensesSpec.js +0 -0
  589. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/plugin_tests/item_licenses_test.py +0 -0
  590. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/item_licenses/setup.py +0 -0
  591. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/__init__.py +0 -0
  592. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/models/__init__.py +0 -0
  593. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/models/job.py +0 -0
  594. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/JobStatus.js +0 -0
  595. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/collections/JobCollection.js +0 -0
  596. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/collections/index.js +0 -0
  597. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/index.js +0 -0
  598. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/main.js +0 -0
  599. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/models/JobModel.js +0 -0
  600. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/models/index.js +0 -0
  601. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/package.json +0 -0
  602. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/routes.js +0 -0
  603. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/stylesheets/jobDetailsWidget.styl +0 -0
  604. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/stylesheets/jobListWidget.styl +0 -0
  605. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/adminViewMenuItem.pug +0 -0
  606. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/headerUserViewMenu.pug +0 -0
  607. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxContent.pug +0 -0
  608. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobCheckBoxMenu.pug +0 -0
  609. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobDetailsWidget.pug +0 -0
  610. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobList.pug +0 -0
  611. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobListWidget.pug +0 -0
  612. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/templates/jobsGraphWidget.pug +0 -0
  613. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/AdminView.js +0 -0
  614. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/CheckBoxMenu.js +0 -0
  615. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/HeaderUserView.js +0 -0
  616. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/JobDetailsWidget.js +0 -0
  617. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/JobGraphWidget.js +0 -0
  618. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/JobListWidget.js +0 -0
  619. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/index.js +0 -0
  620. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/timeChartConfig.js +0 -0
  621. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/girder_jobs/web_client/views/timingHistoryChartConfig.js +0 -0
  622. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/__init__.py +0 -0
  623. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/jobsSpec.js +0 -0
  624. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/plugin_tests/local_job_impl.py +0 -0
  625. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/jobs/setup.py +0 -0
  626. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/__init__.py +0 -0
  627. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/settings.py +0 -0
  628. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/main.js +0 -0
  629. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/package.json +0 -0
  630. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/routes.js +0 -0
  631. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/stylesheets/configView.styl +0 -0
  632. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/templates/configView.pug +0 -0
  633. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/templates/editServerMixin.pug +0 -0
  634. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/templates/newServerTemplate.pug +0 -0
  635. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/girder_ldap/web_client/views/ConfigView.js +0 -0
  636. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/plugin_tests/__init__.py +0 -0
  637. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/plugin_tests/ldap_test.py +0 -0
  638. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/ldap/setup.py +0 -0
  639. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/__init__.py +0 -0
  640. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/__init__.py +0 -0
  641. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/base.py +0 -0
  642. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/bitbucket.py +0 -0
  643. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/box.py +0 -0
  644. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/cilogon.py +0 -0
  645. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/github.py +0 -0
  646. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/globus.py +0 -0
  647. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/google.py +0 -0
  648. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/linkedin.py +0 -0
  649. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/providers/microsoft.py +0 -0
  650. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/rest.py +0 -0
  651. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/settings.py +0 -0
  652. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/main.js +0 -0
  653. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/package.json +0 -0
  654. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/routes.js +0 -0
  655. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/stylesheets/configView.styl +0 -0
  656. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/stylesheets/oauthLoginView.styl +0 -0
  657. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/templates/configView.pug +0 -0
  658. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/templates/oauthLoginView.pug +0 -0
  659. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/ConfigView.js +0 -0
  660. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/LoginView.js +0 -0
  661. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/OAuthLoginView.js +0 -0
  662. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/girder_oauth/web_client/views/RegisterView.js +0 -0
  663. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/plugin_tests/__init__.py +0 -0
  664. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/plugin_tests/oauth_test.py +0 -0
  665. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/oauth/setup.py +0 -0
  666. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/__init__.py +0 -0
  667. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/rest.py +0 -0
  668. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/main.js +0 -0
  669. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/package.json +0 -0
  670. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/stylesheets/readmeWidget.styl +0 -0
  671. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/templates/readmeWidget.pug +0 -0
  672. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/girder_readme/web_client/views/HierarchyWidget.js +0 -0
  673. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/plugin_tests/data/README.md +0 -0
  674. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/plugin_tests/readmeSpec.js +0 -0
  675. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/readme/setup.py +0 -0
  676. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/__init__.py +0 -0
  677. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/rest.py +0 -0
  678. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/settings.py +0 -0
  679. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/main.js +0 -0
  680. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/package.json +0 -0
  681. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/routes.js +0 -0
  682. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/stylesheets/configView.styl +0 -0
  683. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/templates/configView.pug +0 -0
  684. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/girder_sentry/web_client/views/ConfigView.js +0 -0
  685. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/sentry/setup.py +0 -0
  686. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/__init__.py +0 -0
  687. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/main.js +0 -0
  688. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/models/CollectionModel.js +0 -0
  689. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/package.json +0 -0
  690. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/routes.js +0 -0
  691. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/stylesheets/collectionInfoWidget.styl +0 -0
  692. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/stylesheets/editCollectionTermsWidget.styl +0 -0
  693. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/stylesheets/termsAcceptance.styl +0 -0
  694. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/templates/collectionInfoWidget.pug +0 -0
  695. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/templates/editCollectionTermsWidget.pug +0 -0
  696. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/templates/termsAcceptance.pug +0 -0
  697. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/views/CollectionInfoWidget.js +0 -0
  698. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/views/EditCollectionWidget.js +0 -0
  699. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/girder_terms/web_client/views/TermsAcceptanceView.js +0 -0
  700. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/plugin_tests/__init__.py +0 -0
  701. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/plugin_tests/termsSpec.js +0 -0
  702. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/plugin_tests/terms_test.py +0 -0
  703. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/terms/setup.py +0 -0
  704. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/__init__.py +0 -0
  705. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/rest.py +0 -0
  706. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/utils.py +0 -0
  707. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/main.js +0 -0
  708. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/models/ThumbnailModel.js +0 -0
  709. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/package.json +0 -0
  710. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/createThumbnailView.styl +0 -0
  711. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/stylesheets/flowView.styl +0 -0
  712. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewDialog.pug +0 -0
  713. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/createThumbnailViewTargetDescription.pug +0 -0
  714. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/fileListWidgetCreateButton.pug +0 -0
  715. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/flowView.pug +0 -0
  716. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/templates/itemView.pug +0 -0
  717. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/CreateThumbnailView.js +0 -0
  718. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/FileListWidget.js +0 -0
  719. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/FlowView.js +0 -0
  720. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/web_client/views/ItemView.js +0 -0
  721. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/girder_thumbnails/worker.py +0 -0
  722. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/__init__.py +0 -0
  723. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/data/sample_dicom.dcm +0 -0
  724. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/thumbnail_test.py +0 -0
  725. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/plugin_tests/thumbnailsSpec.js +0 -0
  726. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/thumbnails/setup.py +0 -0
  727. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/__init__.py +0 -0
  728. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/quota.py +0 -0
  729. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/settings.py +0 -0
  730. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/main.js +0 -0
  731. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/models/CollectionModel.js +0 -0
  732. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/models/UserModel.js +0 -0
  733. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/models/extendModel.js +0 -0
  734. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/package.json +0 -0
  735. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/routes.js +0 -0
  736. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/stylesheets/userQuota.styl +0 -0
  737. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/collectionViewPoliciesMenu.pug +0 -0
  738. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/configView.pug +0 -0
  739. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/quotaPoliciesWidget.pug +0 -0
  740. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/templates/userViewPoliciesMenu.pug +0 -0
  741. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/utilities/Conversions.js +0 -0
  742. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/CollectionView.js +0 -0
  743. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/ConfigView.js +0 -0
  744. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/QuotaPoliciesWidget.js +0 -0
  745. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/UploadWidget.js +0 -0
  746. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/UserView.js +0 -0
  747. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/girder_user_quota/web_client/views/extendView.js +0 -0
  748. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/plugin_tests/__init__.py +0 -0
  749. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/plugin_tests/userQuotaSpec.js +0 -0
  750. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/plugin_tests/user_quota_test.py +0 -0
  751. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/user_quota/setup.py +0 -0
  752. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/girder_virtual_folders/__init__.py +0 -0
  753. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/plugin_tests/__init__.py +0 -0
  754. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/plugin_tests/virtual_folders_test.py +0 -0
  755. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/plugins/virtual_folders/setup.py +0 -0
  756. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/LICENSE +0 -0
  757. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/MANIFEST.in +0 -0
  758. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/__init__.py +0 -0
  759. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/assertions.py +0 -0
  760. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/fixtures.py +0 -0
  761. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/plugin.py +0 -0
  762. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/plugin_registry.py +0 -0
  763. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/utils.py +0 -0
  764. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/pytest_girder/web_client.py +0 -0
  765. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/pytest_girder/setup.py +0 -0
  766. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/requirements-dev.txt +0 -0
  767. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/README.rst +0 -0
  768. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/migrate.py +0 -0
  769. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/requirements.txt +0 -0
  770. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/walk_girder.py +0 -0
  771. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/midas/walk_midas.py +0 -0
  772. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/publicNames.py +0 -0
  773. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/scripts/test_names.sh +0 -0
  774. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/setup.cfg +0 -0
  775. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/setup.py +0 -0
  776. {girder-3.2.9.dev8 → girder-3.2.9.dev12}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: girder
3
- Version: 3.2.9.dev8
3
+ Version: 3.2.9.dev12
4
4
  Summary: Web-based data management platform
5
5
  Home-page: https://girder.readthedocs.org
6
6
  Author: Kitware, Inc.
@@ -82,12 +82,15 @@ class Assetstore(Resource):
82
82
  'ignore accessKeyId and secret.', dataType='boolean', required=False)
83
83
  .param('serverSideEncryption', 'Whether to use S3 SSE to encrypt the objects uploaded to '
84
84
  'this bucket (for S3 type).', dataType='boolean', required=False, default=False)
85
+ .param('allowS3AcceleratedTransfer', 'Whether to allow clients to requests a data '
86
+ 'transfer using S3 transfer acceleration.', dataType='boolean', required=False,
87
+ default=False)
85
88
  .errorResponse()
86
89
  .errorResponse('You are not an administrator.', 403)
87
90
  )
88
91
  def createAssetstore(self, name, type, root, perms, db, mongohost, replicaset, bucket,
89
92
  prefix, accessKeyId, secret, service, readOnly, region, inferCredentials,
90
- serverSideEncryption):
93
+ serverSideEncryption, allowS3AcceleratedTransfer):
91
94
  if type == AssetstoreType.FILESYSTEM:
92
95
  self.requireParams({'root': root})
93
96
  return self._model.createFilesystemAssetstore(
@@ -101,7 +104,8 @@ class Assetstore(Resource):
101
104
  return self._model.createS3Assetstore(
102
105
  name=name, bucket=bucket, prefix=prefix, secret=secret,
103
106
  accessKeyId=accessKeyId, service=service, readOnly=readOnly, region=region,
104
- inferCredentials=inferCredentials, serverSideEncryption=serverSideEncryption)
107
+ inferCredentials=inferCredentials, serverSideEncryption=serverSideEncryption,
108
+ allowS3AcceleratedTransfer=allowS3AcceleratedTransfer)
105
109
  else:
106
110
  raise RestException('Invalid type parameter')
107
111
 
@@ -181,12 +185,16 @@ class Assetstore(Resource):
181
185
  'ignore accessKeyId and secret.', dataType='boolean', required=False)
182
186
  .param('serverSideEncryption', 'Whether to use S3 SSE to encrypt the objects uploaded to '
183
187
  'this bucket (for S3 type).', dataType='boolean', required=False, default=False)
188
+ .param('allowS3AcceleratedTransfer', 'Whether to allow clients to requests a data '
189
+ 'transfer using S3 transfer acceleration.', dataType='boolean', required=False,
190
+ default=False)
184
191
  .errorResponse()
185
192
  .errorResponse('You are not an administrator.', 403)
186
193
  )
187
194
  def updateAssetstore(self, assetstore, name, root, perms, db, mongohost, replicaset,
188
195
  bucket, prefix, accessKeyId, secret, service, readOnly, region, current,
189
- inferCredentials, serverSideEncryption, params):
196
+ inferCredentials, serverSideEncryption, allowS3AcceleratedTransfer,
197
+ params):
190
198
  assetstore['name'] = name
191
199
  assetstore['current'] = current
192
200
 
@@ -214,6 +222,7 @@ class Assetstore(Resource):
214
222
  assetstore['region'] = region
215
223
  assetstore['inferCredentials'] = inferCredentials
216
224
  assetstore['serverSideEncryption'] = serverSideEncryption
225
+ assetstore['allowS3AcceleratedTransfer'] = allowS3AcceleratedTransfer
217
226
  if readOnly is not None:
218
227
  assetstore['readOnly'] = readOnly
219
228
  else:
@@ -73,12 +73,14 @@ class File(Resource):
73
73
  required=False)
74
74
  .param('assetstoreId', 'Direct the upload to a specific assetstore (admin-only).',
75
75
  required=False)
76
+ .jsonParam('uploadExtraParameters', 'Arbitrary data to send along with the upload request.',
77
+ required=False)
76
78
  .errorResponse()
77
79
  .errorResponse('Write access was denied on the parent folder.', 403)
78
80
  .errorResponse('Failed to create upload.', 500)
79
81
  )
80
82
  def initUpload(self, parentType, parentId, name, size, mimeType, linkUrl, reference,
81
- assetstoreId):
83
+ assetstoreId, uploadExtraParameters):
82
84
  """
83
85
  Before any bytes of the actual file are sent, a request should be made
84
86
  to initialize the upload. This creates the temporary record of the
@@ -120,7 +122,8 @@ class File(Resource):
120
122
  # version upgrade.
121
123
  upload = Upload().createUpload(
122
124
  user=user, name=name, parentType=parentType, parent=parent, size=size,
123
- mimeType=mimeType, reference=reference, assetstore=assetstore)
125
+ mimeType=mimeType, reference=reference, assetstore=assetstore,
126
+ uploadExtraParameters=uploadExtraParameters)
124
127
  except OSError as exc:
125
128
  if exc.errno == errno.EACCES:
126
129
  raise GirderException(
@@ -128,7 +131,9 @@ class File(Resource):
128
131
  raise
129
132
  if upload['size'] > 0:
130
133
  if chunk:
131
- return Upload().handleChunk(upload, chunk, filter=True, user=user)
134
+ return Upload().handleChunk(
135
+ upload, chunk, filter=True, user=user,
136
+ uploadExtraParameters=uploadExtraParameters)
132
137
 
133
138
  return upload
134
139
  else:
@@ -195,13 +200,15 @@ class File(Resource):
195
200
  .modelParam('uploadId', paramType='formData', model=Upload)
196
201
  .param('offset', 'Offset of the chunk in the file.', dataType='integer',
197
202
  paramType='query', required=False, default=0)
203
+ .jsonParam('uploadExtraParameters', 'Arbitrary data to send along with the upload request.',
204
+ required=False)
198
205
  .errorResponse(('ID was invalid.',
199
206
  'Received too many bytes.',
200
207
  'Chunk is smaller than the minimum size.'))
201
208
  .errorResponse('You are not the user who initiated the upload.', 403)
202
209
  .errorResponse('Failed to store upload.', 500)
203
210
  )
204
- def readChunk(self, upload, offset, params):
211
+ def readChunk(self, upload, offset, uploadExtraParameters, params):
205
212
  """
206
213
  After the temporary upload record has been created (see initUpload),
207
214
  the bytes themselves should be passed up in ordered chunks. The user
@@ -231,7 +238,8 @@ class File(Resource):
231
238
  'Server has received %s bytes, but client sent offset %s.' % (
232
239
  upload['received'], offset))
233
240
  try:
234
- return Upload().handleChunk(upload, chunk, filter=True, user=user)
241
+ return Upload().handleChunk(
242
+ upload, chunk, filter=True, user=user, uploadExtraParameters=uploadExtraParameters)
235
243
  except OSError as exc:
236
244
  if exc.errno == errno.EACCES:
237
245
  raise Exception('Failed to store upload.')
@@ -254,8 +262,8 @@ class File(Resource):
254
262
  .param('contentDisposition', 'Specify the Content-Disposition response '
255
263
  'header disposition-type value.', required=False,
256
264
  enum=['inline', 'attachment'], default='attachment')
257
- .param('extraParameters', 'Arbitrary data to send along with the download request.',
258
- required=False)
265
+ .jsonParam('extraParameters', 'Arbitrary data to send along with the download request.',
266
+ required=False)
259
267
  .errorResponse('ID was invalid.')
260
268
  .errorResponse('Read access was denied on the parent folder.', 403)
261
269
  )
@@ -272,9 +272,9 @@ class Item(Resource):
272
272
  'header disposition-type value, only applied for single file '
273
273
  'items.', required=False, enum=['inline', 'attachment'],
274
274
  default='attachment')
275
- .param('extraParameters', 'Arbitrary data to send along with the '
276
- 'download request, only applied for single file '
277
- 'items.', required=False)
275
+ .jsonParam('extraParameters', 'Arbitrary data to send along with the '
276
+ 'download request, only applied for single file '
277
+ 'items.', required=False)
278
278
  # single file items could produce other types, too.
279
279
  .produces(['application/zip', 'application/octet-stream'])
280
280
  .errorResponse('ID was invalid.')
@@ -132,7 +132,7 @@ class Assetstore(Model):
132
132
 
133
133
  def createS3Assetstore(self, name, bucket, accessKeyId, secret, prefix='',
134
134
  service='', readOnly=False, region=None, inferCredentials=False,
135
- serverSideEncryption=False):
135
+ serverSideEncryption=False, allowS3AcceleratedTransfer=False):
136
136
  return self.save({
137
137
  'type': AssetstoreType.S3,
138
138
  'created': datetime.datetime.utcnow(),
@@ -145,7 +145,8 @@ class Assetstore(Model):
145
145
  'service': service,
146
146
  'region': region,
147
147
  'inferCredentials': inferCredentials,
148
- 'serverSideEncryption': serverSideEncryption
148
+ 'serverSideEncryption': serverSideEncryption,
149
+ 'allowS3AcceleratedTransfer': allowS3AcceleratedTransfer
149
150
  })
150
151
 
151
152
  def getCurrent(self):
@@ -86,7 +86,7 @@ class File(acl_mixin.AccessControlMixin, Model):
86
86
  :param contentDisposition: Content-Disposition response header
87
87
  disposition-type value.
88
88
  :type contentDisposition: str or None
89
- :type extraParameters: str or None
89
+ :type extraParameters: dict or None
90
90
  """
91
91
  events.trigger('model.file.download.request', info={
92
92
  'file': file,
@@ -106,7 +106,7 @@ class Upload(Model):
106
106
 
107
107
  return doc
108
108
 
109
- def handleChunk(self, upload, chunk, filter=False, user=None):
109
+ def handleChunk(self, upload, chunk, filter=False, user=None, uploadExtraParameters=None):
110
110
  """
111
111
  When a chunk is uploaded, this should be called to process the chunk.
112
112
  If this is the final chunk of the upload, this method will finalize
@@ -126,6 +126,9 @@ class Upload(Model):
126
126
  :type filter: bool
127
127
  :param user: The current user. Only affects behavior if filter=True.
128
128
  :type user: dict or None
129
+ :param uploadExtraParameters: A dict of parameters that will be given to the assetstore
130
+ adapter for customization of the upload request.
131
+ :type uploadExtraParameters: Optional[dict]
129
132
  """
130
133
  from .assetstore import Assetstore
131
134
  from .file import File
@@ -134,7 +137,7 @@ class Upload(Model):
134
137
  assetstore = Assetstore().load(upload['assetstoreId'])
135
138
  adapter = assetstore_utilities.getAssetstoreAdapter(assetstore)
136
139
 
137
- upload = adapter.uploadChunk(upload, chunk)
140
+ upload = adapter.uploadChunk(upload, chunk, uploadExtraParameters)
138
141
  if '_id' in upload or upload['received'] != upload['size']:
139
142
  upload = self.save(upload)
140
143
 
@@ -319,12 +322,12 @@ class Upload(Model):
319
322
  }
320
323
  if reference is not None:
321
324
  upload['reference'] = reference
322
- upload = adapter.initUpload(upload)
325
+ upload = adapter.initUpload(upload, uploadExtraParameters=None)
323
326
  return self.save(upload)
324
327
 
325
328
  def createUpload(self, user, name, parentType, parent, size, mimeType=None,
326
329
  reference=None, assetstore=None, attachParent=False,
327
- save=True):
330
+ save=True, uploadExtraParameters=None):
328
331
  """
329
332
  Creates a new upload record, and creates its temporary file
330
333
  that the chunks will be written into. Chunks should then be sent
@@ -392,7 +395,7 @@ class Upload(Model):
392
395
  else:
393
396
  upload['userId'] = None
394
397
 
395
- upload = adapter.initUpload(upload)
398
+ upload = adapter.initUpload(upload, uploadExtraParameters)
396
399
  if save:
397
400
  upload = self.save(upload)
398
401
  return upload
@@ -154,7 +154,7 @@ class AbstractAssetstoreAdapter:
154
154
  'total': None
155
155
  }
156
156
 
157
- def initUpload(self, upload):
157
+ def initUpload(self, upload, uploadExtraParameters):
158
158
  """
159
159
  This must be called before any chunks are uploaded to do any
160
160
  additional behavior and optionally augment the upload document. The
@@ -166,7 +166,7 @@ class AbstractAssetstoreAdapter:
166
166
  """
167
167
  return upload
168
168
 
169
- def uploadChunk(self, upload, chunk):
169
+ def uploadChunk(self, upload, chunk, uploadExtraParameters):
170
170
  """
171
171
  Call this method to process each chunk of an upload.
172
172
 
@@ -174,6 +174,9 @@ class AbstractAssetstoreAdapter:
174
174
  :type upload: dict
175
175
  :param chunk: The file object representing the chunk that was uploaded.
176
176
  :type chunk: file
177
+ :param uploadExtraParameters: A dict of parameters that will be given to the assetstore
178
+ adapter for customization of the upload request.
179
+ :type uploadExtraParameters: Optional[dict]
177
180
  :returns: Must return the upload document with any optional changes.
178
181
  """
179
182
  raise NotImplementedError('Must override processChunk in %s.' %
@@ -272,7 +275,7 @@ class AbstractAssetstoreAdapter:
272
275
  :param contentDisposition: Value for Content-Disposition response
273
276
  header disposition-type value.
274
277
  :type contentDisposition: str or None
275
- :type extraParameters: str or None
278
+ :type extraParameters: dict or None
276
279
  """
277
280
  raise NotImplementedError('Must override downloadFile in %s.' %
278
281
  self.__class__.__name__)
@@ -121,7 +121,7 @@ class FilesystemAssetstoreAdapter(AbstractAssetstoreAdapter):
121
121
  'total': None
122
122
  }
123
123
 
124
- def initUpload(self, upload):
124
+ def initUpload(self, upload, uploadExtraParameters):
125
125
  """
126
126
  Generates a temporary file and sets its location in the upload document
127
127
  as tempFile. This is the file that the chunks will be appended to.
@@ -132,7 +132,7 @@ class FilesystemAssetstoreAdapter(AbstractAssetstoreAdapter):
132
132
  upload['sha512state'] = _hash_state.serializeHex(sha512())
133
133
  return upload
134
134
 
135
- def uploadChunk(self, upload, chunk):
135
+ def uploadChunk(self, upload, chunk, uploadExtraParameters):
136
136
  """
137
137
  Appends the chunk into the temporary file.
138
138
  """
@@ -111,7 +111,7 @@ class GridFsAssetstoreAdapter(AbstractAssetstoreAdapter):
111
111
  self.chunkColl = 'Failed to configure'
112
112
  self.unavailable = True
113
113
 
114
- def initUpload(self, upload):
114
+ def initUpload(self, upload, uploadExtraParameters):
115
115
  """
116
116
  Creates a UUID that will be used to uniquely link each chunk to
117
117
  """
@@ -119,7 +119,7 @@ class GridFsAssetstoreAdapter(AbstractAssetstoreAdapter):
119
119
  upload['sha512state'] = _hash_state.serializeHex(sha512())
120
120
  return upload
121
121
 
122
- def uploadChunk(self, upload, chunk):
122
+ def uploadChunk(self, upload, chunk, uploadExtraParameters):
123
123
  """
124
124
  Stores the uploaded chunk in fixed-sized pieces in the chunks
125
125
  collection of this assetstore's database.
@@ -11,7 +11,7 @@ import requests
11
11
 
12
12
  from girder import events, logger
13
13
  from girder.api.rest import setContentDisposition
14
- from girder.exceptions import GirderException, ValidationException
14
+ from girder.exceptions import GirderException, RestException, ValidationException
15
15
  from girder.models.file import File
16
16
  from girder.models.folder import Folder
17
17
  from girder.models.item import Item
@@ -113,6 +113,17 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
113
113
  self.assetstore['service'], self.assetstore.get('region'),
114
114
  self.assetstore.get('inferCredentials'))
115
115
  self.client = S3AssetstoreAdapter._s3Client(self.connectParams)
116
+ if self.assetstore.get('allowS3AcceleratedTransfer', False):
117
+ acceleratedConnectParams = self.connectParams.copy()
118
+ acceleratedConnectParams['config'].s3 = {'use_accelerate_endpoint': True}
119
+ self.acceleratedClient = S3AssetstoreAdapter._s3Client(acceleratedConnectParams)
120
+
121
+ def _getClient(self, useAcceleratedTransfer):
122
+ if useAcceleratedTransfer:
123
+ if not self.assetstore.get('allowS3AcceleratedTransfer'):
124
+ raise RestException('Accelerated transfer is not allowed on this assetstore.')
125
+ return self.acceleratedClient
126
+ return self.client
116
127
 
117
128
  def _getRequestHeaders(self, upload):
118
129
  headers = {
@@ -134,8 +145,9 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
134
145
 
135
146
  See https://gist.github.com/gleicon/2b8acb9f9c0f22753eaac227ff997b34
136
147
  """
137
- url = self.client.generate_presigned_url(*args, **kwargs)
138
- if getattr(self.client, '_useGoogleAccessId', False):
148
+ client = self._getClient(kwargs.pop('useS3TransferAcceleration', False))
149
+ url = client.generate_presigned_url(*args, **kwargs)
150
+ if getattr(client, '_useGoogleAccessId', False):
139
151
  awskey, gskey = 'AWSAccessKeyId', 'GoogleAccessId'
140
152
  parsed = urllib.parse.urlparse(url)
141
153
  if awskey in urllib.parse.parse_qs(parsed.query):
@@ -147,7 +159,12 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
147
159
  parsed[5]))
148
160
  return url
149
161
 
150
- def initUpload(self, upload):
162
+ @staticmethod
163
+ def _getS3TransferAccelerationParam(extraParameters):
164
+ return isinstance(extraParameters, dict) \
165
+ and extraParameters.get('use_S3_transfer_acceleration', False)
166
+
167
+ def initUpload(self, upload, uploadExtraParameters):
151
168
  """
152
169
  Build the request required to initiate an authorized upload to S3.
153
170
  """
@@ -195,10 +212,13 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
195
212
  method = 'put_object'
196
213
  params['ContentLength'] = upload['size']
197
214
 
198
- requestInfo['url'] = self._generatePresignedUrl(ClientMethod=method, Params=params)
215
+ useS3TransferAcceleration = self._getS3TransferAccelerationParam(uploadExtraParameters)
216
+
217
+ requestInfo['url'] = self._generatePresignedUrl(
218
+ ClientMethod=method, Params=params, useS3TransferAcceleration=useS3TransferAcceleration)
199
219
  return upload
200
220
 
201
- def uploadChunk(self, upload, chunk):
221
+ def uploadChunk(self, upload, chunk, uploadExtraParameters):
202
222
  """
203
223
  Rather than processing actual bytes of the chunk, this will generate
204
224
  the signature required to upload the chunk. Clients that do not support
@@ -209,12 +229,14 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
209
229
  and S3 upload ID. If a normal chunk file-like object is passed,
210
230
  we will send the data to S3.
211
231
  """
232
+ useS3TransferAcceleration = self._getS3TransferAccelerationParam(uploadExtraParameters)
233
+
212
234
  if isinstance(chunk, str):
213
- return self._clientUploadChunk(upload, chunk)
235
+ return self._clientUploadChunk(upload, chunk, useS3TransferAcceleration)
214
236
  else:
215
- return self._proxiedUploadChunk(upload, chunk)
237
+ return self._proxiedUploadChunk(upload, chunk, useS3TransferAcceleration)
216
238
 
217
- def _clientUploadChunk(self, upload, chunk):
239
+ def _clientUploadChunk(self, upload, chunk, useS3TransferAcceleration):
218
240
  """
219
241
  Clients that support direct-to-S3 upload behavior will go through this
220
242
  method by sending a normally-encoded form string as the chunk parameter,
@@ -238,7 +260,7 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
238
260
  'ContentLength': length,
239
261
  'UploadId': info['s3UploadId'],
240
262
  'PartNumber': info['partNumber']
241
- })
263
+ }, useS3TransferAcceleration=useS3TransferAcceleration)
242
264
 
243
265
  upload['s3']['uploadId'] = info['s3UploadId']
244
266
  upload['s3']['partNumber'] = info['partNumber']
@@ -249,7 +271,7 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
249
271
 
250
272
  return upload
251
273
 
252
- def _proxiedUploadChunk(self, upload, chunk):
274
+ def _proxiedUploadChunk(self, upload, chunk, useS3TransferAcceleration):
253
275
  """
254
276
  Clients that do not support direct-to-S3 upload behavior will go through
255
277
  this method by sending the chunk data as they normally would for other
@@ -285,7 +307,7 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
285
307
  'ContentLength': size,
286
308
  'UploadId': upload['s3']['uploadId'],
287
309
  'PartNumber': upload['s3']['partNumber']
288
- })
310
+ }, useS3TransferAcceleration=useS3TransferAcceleration)
289
311
 
290
312
  resp = requests.request(method='PUT', url=url, data=chunk, headers=headers)
291
313
  if resp.status_code not in (200, 201):
@@ -405,7 +427,11 @@ class S3AssetstoreAdapter(AbstractAssetstoreAdapter):
405
427
  if contentDisposition == 'inline' and not file.get('imported'):
406
428
  params['ResponseContentDisposition'] = 'inline; filename="%s"' % file['name']
407
429
 
408
- url = self._generatePresignedUrl(ClientMethod='get_object', Params=params)
430
+ useS3TransferAcceleration = self._getS3TransferAccelerationParam(extraParameters)
431
+
432
+ url = self._generatePresignedUrl(
433
+ ClientMethod='get_object', Params=params,
434
+ useS3TransferAcceleration=useS3TransferAcceleration)
409
435
 
410
436
  if headers:
411
437
  raise cherrypy.HTTPRedirect(url)
@@ -60,6 +60,10 @@
60
60
  label
61
61
  input#g-edit-s3-sse(type="checkbox")
62
62
  | Server side encryption
63
+ .checkbox
64
+ label
65
+ input#g-edit-s3-accelerated-endpoint(type="checkbox")
66
+ | Allow S3 accelerated endpoint
63
67
  if assetstore.get('hasFiles')
64
68
  div
65
69
  i.icon-attention
@@ -113,6 +113,10 @@
113
113
  label
114
114
  input#g-new-s3-sse(type="checkbox")
115
115
  | Server side encryption
116
+ .checkbox
117
+ label
118
+ input#g-new-s3-accelerated-endpoint(type="checkbox")
119
+ | Allow S3 accelerated endpoint
116
120
 
117
121
  p#g-new-s3-error.g-validation-failed-message
118
122
  input.g-new-assetstore-submit.btn.btn-sm.btn-primary(type="submit", value="Create")
@@ -126,7 +126,8 @@ fieldsMap[AssetstoreType.S3] = {
126
126
  region: this.$('#g-edit-s3-region').val(),
127
127
  readOnly: this.$('#g-edit-s3-readonly').is(':checked'),
128
128
  inferCredentials: this.$('#g-edit-s3-infercredentials').is(':checked'),
129
- serverSideEncryption: this.$('#g-edit-s3-sse').is(':checked')
129
+ serverSideEncryption: this.$('#g-edit-s3-sse').is(':checked'),
130
+ allowS3AcceleratedTransfer: this.$('#g-edit-s3-accelerated-endpoint').is(':checked')
130
131
  };
131
132
  },
132
133
  set: function () {
@@ -142,6 +143,8 @@ fieldsMap[AssetstoreType.S3] = {
142
143
  (this.model.get('inferCredentials') ? 'checked' : undefined));
143
144
  this.$('#g-edit-s3-sse').attr('checked',
144
145
  (this.model.get('serverSideEncryption') ? 'checked' : undefined));
146
+ this.$('#g-edit-s3-accelerated-endpoint').attr('checked',
147
+ (this.model.get('allowS3AcceleratedTransfer') ? 'checked' : undefined));
145
148
  }
146
149
  };
147
150
 
@@ -45,7 +45,8 @@ var NewAssetstoreWidget = View.extend({
45
45
  region: this.$('#g-new-s3-region').val(),
46
46
  readOnly: this.$('#g-new-s3-readonly').is(':checked'),
47
47
  inferCredentials: this.$('#g-new-s3-infercredentials').is(':checked'),
48
- serverSideEncryption: this.$('#g-new-s3-sse').is(':checked')
48
+ serverSideEncryption: this.$('#g-new-s3-sse').is(':checked'),
49
+ allowS3AcceleratedTransfer: this.$('#g-new-s3-accelerated-endpoint').is(':checked')
49
50
  });
50
51
  }
51
52
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: girder
3
- Version: 3.2.9.dev8
3
+ Version: 3.2.9.dev12
4
4
  Summary: Web-based data management platform
5
5
  Home-page: https://girder.readthedocs.org
6
6
  Author: Kitware, Inc.
@@ -6,6 +6,7 @@ JOB_HANDLER_LOCAL = 'jobs._local'
6
6
 
7
7
  # Scope used allow RESTful creation of girder job models
8
8
  REST_CREATE_JOB_TOKEN_SCOPE = 'jobs.rest.create_job'
9
+ REST_LIST_JOB_TOKEN_SCOPE = 'jobs.rest.list_job'
9
10
 
10
11
 
11
12
  # integer enum describing job states. Note, no order is implied.
@@ -24,7 +24,7 @@ class Job(Resource):
24
24
  self.route('GET', ('typeandstatus', 'all',), self.allJobsTypesAndStatuses)
25
25
  self.route('GET', ('typeandstatus',), self.jobsTypesAndStatuses)
26
26
 
27
- @access.public
27
+ @access.public(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
28
28
  @filtermodel(model=JobModel)
29
29
  @autoDescribeRoute(
30
30
  Description('List jobs for a given user.')
@@ -87,7 +87,7 @@ class Job(Resource):
87
87
  }
88
88
  return self._model.createJob(**params)
89
89
 
90
- @access.admin
90
+ @access.user(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
91
91
  @filtermodel(model=JobModel)
92
92
  @autoDescribeRoute(
93
93
  Description('List all jobs.')
@@ -175,7 +175,7 @@ class Job(Resource):
175
175
  def deleteJob(self, job):
176
176
  self._model.remove(job)
177
177
 
178
- @access.admin
178
+ @access.user(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
179
179
  @autoDescribeRoute(
180
180
  Description('Get types and statuses of all jobs')
181
181
  .errorResponse('Admin access was denied for the job.', 403)
@@ -183,7 +183,7 @@ class Job(Resource):
183
183
  def allJobsTypesAndStatuses(self):
184
184
  return self._model.getAllTypesAndStatuses(user='all')
185
185
 
186
- @access.user
186
+ @access.user(scope=constants.REST_LIST_JOB_TOKEN_SCOPE)
187
187
  @autoDescribeRoute(
188
188
  Description('Get types and statuses of jobs of current user')
189
189
  )
@@ -202,9 +202,9 @@ class JobsTestCase(base.TestCase):
202
202
  self.assertStatusOk(resp)
203
203
  self.assertEqual(len(resp.json), 0)
204
204
 
205
- # User 1, as non site admin, should encounter http 403 (Forbidden)
205
+ # User 1, as non site admin, should still get an answer
206
206
  resp = self.request('/job/all', user=self.users[1])
207
- self.assertStatus(resp, 403)
207
+ self.assertStatusOk(resp)
208
208
 
209
209
  # Not authenticated user should encounter http 401 (unauthorized)
210
210
  resp = self.request('/job/all')
@@ -446,9 +446,9 @@ class JobsTestCase(base.TestCase):
446
446
  self.jobModel.createJob(title='anonymous job', type='t5')
447
447
  self.jobModel.createJob(title='anonymous public job', type='t6', public=True)
448
448
 
449
- # User 1, as non site admin, should encounter http 403 (Forbidden)
449
+ # User 1, as non site admin, should get an answer
450
450
  resp = self.request('/job/typeandstatus/all', user=self.users[1])
451
- self.assertStatus(resp, 403)
451
+ self.assertStatusOk(resp)
452
452
 
453
453
  # Admin user gets all types and statuses
454
454
  resp = self.request('/job/typeandstatus/all', user=self.users[0])
@@ -1104,6 +1104,7 @@ plugins
1104
1104
  validTransitions
1105
1105
  valid_transitions
1106
1106
  REST_CREATE_JOB_TOKEN_SCOPE
1107
+ REST_LIST_JOB_TOKEN_SCOPE
1107
1108
  job_rest
1108
1109
  Job
1109
1110
  allJobsTypesAndStatuses
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