1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
Creating a Guest Collection
===========================
Within the Globus Ecosystem, data is managed through the abstraction of *Collections*.
The example included on this page demonstrate how to create specifically a
*Guest Collection* using the Globus Python SDK. Guest collections, formerly known as
"Shares", are collections which provide access to a subdirectory of an existing
collection through a particular user or client's local permissions.
Guest collections are a great way to set up data automation. They may be scoped down
to a particular directory within an existing "Mapped Collection" and don't implicitly
inherit the same authorization timeout requirements as their parent Mapped Collection.
Once created, they can be shared to other users/entities, in effect giving another
entity access, through you, to some underlying data.
.. Warning::
While guest collections don't implicitly inherit their parent mapped collection's
authorization timeout in some cases they do or alternatively may be disabled
entirely. This is a decision made by the endpoint owner, not Globus.
Because requirements can vary so drastically between endpoints, we recommend
consulting with the particular endpoint's documentation and/or owner to determine
whether guest collections provide the desired level of access with the desired
minimization of authorization.
.. Note::
The scripts reference a globus hosted "tutorial" mapped collection. This is just
to provide as simple of a functioning example out of the box as possible.
For actual application, replace the IDs with the relevant collection and
storage gateway IDs.
.. tab-set::
.. tab-item:: User-owned Collection
This script demonstrates how to create a guest collection owned by a human.
It will prompt the user to authenticate through a browser and authorize the
script to act on their behalf.
.. literalinclude:: create_guest_collection_user_owned.py
:caption: ``create_guest_collection_user_owned.py`` [:download:`download <create_guest_collection_user_owned.py>`]
:language: python
.. tab-item:: Client-owned Collection
This script demonstrates how to create a guest collection owned by a client
(i.e. a service account).
It will automatically request and use client access tokens based on the supplied
client ID and secret.
.. literalinclude:: create_guest_collection_client_owned.py
:caption: ``create_guest_collection_client_owned.py`` [:download:`download <create_guest_collection_client_owned.py>`]
:language: python
|