Globus Platform Overview

Globus
Globus Platform
Overview
Vas Vasiliadis
April 30, 2020
Globus serves as…
A platform for building science
gateways, portals and other
web applications in support of
research and education.
2
Example web apps that leverage Globus
3
Example
Modern Research
Data Portal
https://docs.globus.org/modern-research-data-portal/
Globus Auth: Security for Research Apps
• Enable login to apps
– Web apps (Jupyter Notebook, Portals), Mobile, Desktop, Command line
• Protect all REST API communications
– App  Globus service (Jupyter Notebook, MRDP)
– App  non-Globus service (MRDP)
– Service  service (MRDP)
• Don’t introduce even more identities!
• Provide a platform to consolidate those identities
• Implement a least privileges security model (via consents)
• Be programming language/framework agnostic
• Be web friendly and simplify things for users and developers
5
Authorization Code Grant
6
Client
(Web Portal,
Application)
Globus Transfer
(Resource Server)
Globus Auth
(Authorization
Server)
5. Authenticate using client id
and secret, send authorization
code
Browser (User)
1. Access
portal
2.
Redirects
user
3. User authenticates and
consents
4. Authorization
code
6. Access token(s)
7. Authenticate with access
token(s) to give the client
the authority invoke the
transfer service
Identity
Provider
Globus Transfer API
• Globus Web App consumes public Transfer API
• Resource named by URL (standard REST approach)
– Query params allow refinement (e.g., subset of fields)
• Globus APIs use JSON for documents and resource
representations
• Requests authorized via OAuth2 access token
– Authorization: Bearer asdflkqhafsdafeawk
docs.globus.org/api/transfer
7
Globus Python SDK
• Python client library for the Globus Auth and Transfer
REST APIs
• globus_sdk.TransferClient class handles
connection management, security, framing,
marshaling
from globus_sdk import TransferClient
tc = TransferClient()
globus.github.io/globus-sdk-python
8
TransferClient low-level calls
• Thin wrapper around REST API
– post(), get(), update(), delete()
get(path, params=None, headers=None, auth=None,
response_class=None)
o path – path for the request, with or without leading slash
o params – dict to be encoded as a query string
o headers – dict of HTTP headers to add to the request
o response_class – class response object, overrides the client’s
default_response_class
o Returns: GlobusHTTPResponse object
9
TransferClient higher-level calls
• One method for each API resource and HTTP verb
• Largely direct mapping to REST API
endpoint_search(filter_fulltext=None,
filter_scope=None,
num_results=25,
**params)
10
jupyter.demo.globus.org
Walkthrough API with our Jupyter Hub
• https://jupyter.demo.globus.org
– Sign in with Globus
– Verify the consents
– Start My Server (this will take about a minute)
– Open folder: globus-jupyter-notebooks
– Open folder: GlobusWorldTour
– Run Platform_Introduction_JupyterHub_Auth.ipynb
• If you mess it up and want to “go back to the beginning”
– Back down to the root folder
– Run NotebookPuller.ipynb
• If you want to use the notebook outside of our hub
– https://github.com/globus/globus-jupyter-notebooks
– Authentication is a manual cut and paste of exchanging the authorization
code for an access token
12
Endpoint Search
• Plain text search for endpoint
– Searches owner, display name, keywords, description,
organization, department
– Full word and prefix match
• Limit search to pre-defined scopes
– all, my-endpoints, recently-used, in-use, shared-
by-me, shared-with-me
• Returns: List of endpoint documents
13
Endpoint Management
• Get endpoint (by id)
• Update endpoint
• Create & delete (shared) endpoints
• Manage endpoint servers
14
Endpoint Activation
• Activating endpoint means binding a credential to an
endpoint for login
• Globus Connect Server endpoint that have MyProxy
or MyProxy OAuth identity provider require login via
web
• Auto-activate
– Globus Connect Personal and Shared endpoints use Globus-
provided credential
– Must auto-activate before any API calls to endpoints
15
File operations
• List directory contents (ls)
• Make directory (mkdir)
• Rename
• Note:
– Path encoding & UTF gotchas
– Don’t forget to auto-activate first
16
Task submission
• Asynchronous operations
– Transfer
o Sync level option
– Delete
• Get submission_id, followed by submit
– Once and only once submission
17
Task management
• Get task by id
• Get task_list
• Update task by id (label, deadline)
• Cancel task by id
• Get event list for task
• Get task pause info
18
Bookmarks
• Get list of bookmarks
• Create bookmark
• Get bookmark by id
• Update bookmark
• Delete bookmark by id
• Cannot perform other operations directly on bookmarks
– Requires client-side resolution
19
Shared endpoints and access rules (ACLs)
• Shared Endpoint – create / delete / get info / get list
• Administrator role required to delegate access managers
• Access manager role required to manage
permission/ACLs
• Operations:
– Get list of access rules
– Get access rule by id
– Create access rule
– Update access rule
– Delete access rule
20
Management API
• Allow endpoint administrators to monitor and manage
all tasks with endpoint
– Task API is essentially the same as for users
– Information limited to what they could see locally
• Cancel tasks
• Pause rules
21
Globus Helper Pages
• Globus pages designed for use by your web apps
– Browse Endpoint
– Activate Endpoint
– Select Group
– Manage Identities
– Manage Consents
– Logout
docs.globus.org/api/helper-pages
22
Globus PaaS developer resources
Python SDK
Sample
Application
docs.globus.org/api github.com/globus
Jupyter Notebook
Support resources
• Globus documentation: docs.globus.org
• Helpdesk and issue escalation: support@globus.org
• Mailing lists
– https://www.globus.org/mailing-lists
– developer-discuss@globus.org
• Globus professional services team
– Assist with portal/gateway/app architecture and design
– Develop custom applications that leverage the Globus platform
– Advise on customized deployment and integration scenarios
1 of 24

Recommended

Automating Research Data Flows with the Globus Command Line Interface (CLI) by
Automating Research Data Flows with the Globus Command Line Interface (CLI)Automating Research Data Flows with the Globus Command Line Interface (CLI)
Automating Research Data Flows with the Globus Command Line Interface (CLI)Globus
237 views23 slides
Globus for System Administrators by
Globus for System AdministratorsGlobus for System Administrators
Globus for System AdministratorsGlobus
268 views33 slides
Globus: Beyond File Transfer by
Globus: Beyond File TransferGlobus: Beyond File Transfer
Globus: Beyond File TransferGlobus
304 views27 slides
GlobusWorld 2020 Keynote by
GlobusWorld 2020 KeynoteGlobusWorld 2020 Keynote
GlobusWorld 2020 KeynoteGlobus
434 views74 slides
GlobusWorld 2021 Tutorial: The Globus CLI, Platform and SDK by
GlobusWorld 2021 Tutorial: The Globus CLI, Platform and SDKGlobusWorld 2021 Tutorial: The Globus CLI, Platform and SDK
GlobusWorld 2021 Tutorial: The Globus CLI, Platform and SDKGlobus
176 views32 slides
GlobusWorld 2021 Tutorial: Globus for System Administrators by
GlobusWorld 2021 Tutorial: Globus for System AdministratorsGlobusWorld 2021 Tutorial: Globus for System Administrators
GlobusWorld 2021 Tutorial: Globus for System AdministratorsGlobus
141 views31 slides

More Related Content

What's hot

Introduction to the Globus Platform (APS Workshop) by
Introduction to the Globus Platform (APS Workshop)Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)Globus
97 views24 slides
What's New in Globus - Internet2 TechEXtra by
What's New in Globus - Internet2 TechEXtraWhat's New in Globus - Internet2 TechEXtra
What's New in Globus - Internet2 TechEXtraGlobus
226 views26 slides
Simple Data Automation with Globus (GlobusWorld Tour West) by
Simple Data Automation with Globus (GlobusWorld Tour West)Simple Data Automation with Globus (GlobusWorld Tour West)
Simple Data Automation with Globus (GlobusWorld Tour West)Globus
101 views28 slides
Introduction to Globus (GlobusWorld Tour West) by
Introduction to Globus (GlobusWorld Tour West)Introduction to Globus (GlobusWorld Tour West)
Introduction to Globus (GlobusWorld Tour West)Globus
110 views13 slides
Automating Research Data Flows with Globus (CHPC 2019 - South Africa) by
Automating Research Data Flows with Globus (CHPC 2019 - South Africa)Automating Research Data Flows with Globus (CHPC 2019 - South Africa)
Automating Research Data Flows with Globus (CHPC 2019 - South Africa)Globus
156 views25 slides
Globus Portal Framework (APS Workshop) by
Globus Portal Framework (APS Workshop)Globus Portal Framework (APS Workshop)
Globus Portal Framework (APS Workshop)Globus
121 views27 slides

What's hot(20)

Introduction to the Globus Platform (APS Workshop) by Globus
Introduction to the Globus Platform (APS Workshop)Introduction to the Globus Platform (APS Workshop)
Introduction to the Globus Platform (APS Workshop)
Globus 97 views
What's New in Globus - Internet2 TechEXtra by Globus
What's New in Globus - Internet2 TechEXtraWhat's New in Globus - Internet2 TechEXtra
What's New in Globus - Internet2 TechEXtra
Globus 226 views
Simple Data Automation with Globus (GlobusWorld Tour West) by Globus
Simple Data Automation with Globus (GlobusWorld Tour West)Simple Data Automation with Globus (GlobusWorld Tour West)
Simple Data Automation with Globus (GlobusWorld Tour West)
Globus 101 views
Introduction to Globus (GlobusWorld Tour West) by Globus
Introduction to Globus (GlobusWorld Tour West)Introduction to Globus (GlobusWorld Tour West)
Introduction to Globus (GlobusWorld Tour West)
Globus 110 views
Automating Research Data Flows with Globus (CHPC 2019 - South Africa) by Globus
Automating Research Data Flows with Globus (CHPC 2019 - South Africa)Automating Research Data Flows with Globus (CHPC 2019 - South Africa)
Automating Research Data Flows with Globus (CHPC 2019 - South Africa)
Globus 156 views
Globus Portal Framework (APS Workshop) by Globus
Globus Portal Framework (APS Workshop)Globus Portal Framework (APS Workshop)
Globus Portal Framework (APS Workshop)
Globus 121 views
Connecting Your System to Globus (APS Workshop) by Globus
Connecting Your System to Globus (APS Workshop)Connecting Your System to Globus (APS Workshop)
Connecting Your System to Globus (APS Workshop)
Globus 137 views
GlobusWorld 2021 Tutorial: Introduction to Globus by Globus
GlobusWorld 2021 Tutorial: Introduction to GlobusGlobusWorld 2021 Tutorial: Introduction to Globus
GlobusWorld 2021 Tutorial: Introduction to Globus
Globus 158 views
Tutorial: Leveraging Globus in your Research Applications by Globus
Tutorial: Leveraging Globus in your Research ApplicationsTutorial: Leveraging Globus in your Research Applications
Tutorial: Leveraging Globus in your Research Applications
Globus 292 views
Best Practices for Data Sharing (GlobusWorld Tour - UCSD) by Globus
Best Practices for Data Sharing (GlobusWorld Tour - UCSD)Best Practices for Data Sharing (GlobusWorld Tour - UCSD)
Best Practices for Data Sharing (GlobusWorld Tour - UCSD)
Globus 65 views
Globus for System Administrators (GlobusWorld Tour - UCSD) by Globus
Globus for System Administrators (GlobusWorld Tour - UCSD)Globus for System Administrators (GlobusWorld Tour - UCSD)
Globus for System Administrators (GlobusWorld Tour - UCSD)
Globus 110 views
Automating Research Data Management at Scale with Globus by Globus
Automating Research Data Management at Scale with GlobusAutomating Research Data Management at Scale with Globus
Automating Research Data Management at Scale with Globus
Globus 221 views
Introduction to the Globus Platform (GlobusWorld Tour - UMich) by Globus
Introduction to the Globus Platform (GlobusWorld Tour - UMich)Introduction to the Globus Platform (GlobusWorld Tour - UMich)
Introduction to the Globus Platform (GlobusWorld Tour - UMich)
Globus 136 views
Making Storage Systems Accessible via Globus (GlobusWorld Tour West) by Globus
Making Storage Systems Accessible via Globus (GlobusWorld Tour West)Making Storage Systems Accessible via Globus (GlobusWorld Tour West)
Making Storage Systems Accessible via Globus (GlobusWorld Tour West)
Globus 128 views
Introduction to Globus for New Users (GlobusWorld Tour - UCSD) by Globus
Introduction to Globus for New Users (GlobusWorld Tour - UCSD)Introduction to Globus for New Users (GlobusWorld Tour - UCSD)
Introduction to Globus for New Users (GlobusWorld Tour - UCSD)
Globus 64 views
Tutorial: Managing Protected Data with Globus Connect Server v5 by Globus
Tutorial: Managing Protected Data with Globus Connect Server v5Tutorial: Managing Protected Data with Globus Connect Server v5
Tutorial: Managing Protected Data with Globus Connect Server v5
Globus 371 views
"What's New With Globus" Webinar: Spring 2018 by Globus
"What's New With Globus" Webinar: Spring 2018"What's New With Globus" Webinar: Spring 2018
"What's New With Globus" Webinar: Spring 2018
Globus 270 views
Data Publication and Discovery with Globus by Globus
Data Publication and Discovery with GlobusData Publication and Discovery with Globus
Data Publication and Discovery with Globus
Globus 266 views
Globus Endpoint Setup and Configuration - XSEDE14 Tutorial by Globus
Globus Endpoint Setup and Configuration - XSEDE14 TutorialGlobus Endpoint Setup and Configuration - XSEDE14 Tutorial
Globus Endpoint Setup and Configuration - XSEDE14 Tutorial
Globus 1.2K views
Globus: Research Data Management as Service and Platform - pearc17 by Mary Bass
Globus: Research Data Management as Service and Platform - pearc17Globus: Research Data Management as Service and Platform - pearc17
Globus: Research Data Management as Service and Platform - pearc17
Mary Bass129 views

Similar to Globus Platform Overview

Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa) by
Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa)Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa)
Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa)Globus
106 views30 slides
Leveraging the Globus Platform (GlobusWorld Tour - Columbia University) by
Leveraging the Globus Platform (GlobusWorld Tour - Columbia University)Leveraging the Globus Platform (GlobusWorld Tour - Columbia University)
Leveraging the Globus Platform (GlobusWorld Tour - Columbia University)Globus
84 views42 slides
Leveraging the Globus Platform (GlobusWorld Tour - UCSD) by
Leveraging the Globus Platform (GlobusWorld Tour - UCSD)Leveraging the Globus Platform (GlobusWorld Tour - UCSD)
Leveraging the Globus Platform (GlobusWorld Tour - UCSD)Globus
62 views26 slides
Introduction to the Globus PaaS (GlobusWorld Tour - STFC) by
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)Globus
77 views25 slides
Automating Research Data Flows and an Introduction to the Globus Platform by
Automating Research Data Flows and an Introduction to the Globus PlatformAutomating Research Data Flows and an Introduction to the Globus Platform
Automating Research Data Flows and an Introduction to the Globus PlatformGlobus
132 views42 slides
Jupyter + Globus: The Foundation for Interactive Data Science by
Jupyter + Globus: The Foundation for Interactive Data ScienceJupyter + Globus: The Foundation for Interactive Data Science
Jupyter + Globus: The Foundation for Interactive Data ScienceGlobus
423 views99 slides

Similar to Globus Platform Overview(20)

Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa) by Globus
Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa)Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa)
Leveraging the Globus Platform in Web Applications (CHPC 2019 - South Africa)
Globus 106 views
Leveraging the Globus Platform (GlobusWorld Tour - Columbia University) by Globus
Leveraging the Globus Platform (GlobusWorld Tour - Columbia University)Leveraging the Globus Platform (GlobusWorld Tour - Columbia University)
Leveraging the Globus Platform (GlobusWorld Tour - Columbia University)
Globus 84 views
Leveraging the Globus Platform (GlobusWorld Tour - UCSD) by Globus
Leveraging the Globus Platform (GlobusWorld Tour - UCSD)Leveraging the Globus Platform (GlobusWorld Tour - UCSD)
Leveraging the Globus Platform (GlobusWorld Tour - UCSD)
Globus 62 views
Introduction to the Globus PaaS (GlobusWorld Tour - STFC) by Globus
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Introduction to the Globus PaaS (GlobusWorld Tour - STFC)
Globus 77 views
Automating Research Data Flows and an Introduction to the Globus Platform by Globus
Automating Research Data Flows and an Introduction to the Globus PlatformAutomating Research Data Flows and an Introduction to the Globus Platform
Automating Research Data Flows and an Introduction to the Globus Platform
Globus 132 views
Jupyter + Globus: The Foundation for Interactive Data Science by Globus
Jupyter + Globus: The Foundation for Interactive Data ScienceJupyter + Globus: The Foundation for Interactive Data Science
Jupyter + Globus: The Foundation for Interactive Data Science
Globus 423 views
Automating Research Data Flows and Introduction to the Globus Platform by Globus
Automating Research Data Flows and Introduction to the Globus PlatformAutomating Research Data Flows and Introduction to the Globus Platform
Automating Research Data Flows and Introduction to the Globus Platform
Globus 50 views
Working with Globus Platform Services and Portals by Globus
Working with Globus Platform Services and PortalsWorking with Globus Platform Services and Portals
Working with Globus Platform Services and Portals
Globus 28 views
Working with Globus Platform Services by Globus
Working with Globus Platform ServicesWorking with Globus Platform Services
Working with Globus Platform Services
Globus 41 views
Automating Data Flows with the Globus CLI (GlobusWorld Tour - UMich) by Globus
Automating Data Flows with the Globus CLI (GlobusWorld Tour - UMich)Automating Data Flows with the Globus CLI (GlobusWorld Tour - UMich)
Automating Data Flows with the Globus CLI (GlobusWorld Tour - UMich)
Globus 231 views
Tutorial: Automating Research Data Workflows by Globus
Tutorial: Automating Research Data WorkflowsTutorial: Automating Research Data Workflows
Tutorial: Automating Research Data Workflows
Globus 135 views
Building Data Portals and Science Gateways with Globus by Globus
Building Data Portals and Science Gateways with GlobusBuilding Data Portals and Science Gateways with Globus
Building Data Portals and Science Gateways with Globus
Globus 133 views
Automating Research Data Workflows (GlobusWorld Tour - Columbia University) by Globus
Automating Research Data Workflows (GlobusWorld Tour - Columbia University)Automating Research Data Workflows (GlobusWorld Tour - Columbia University)
Automating Research Data Workflows (GlobusWorld Tour - Columbia University)
Globus 120 views
Don Thorp & Marshall Culpepper: Advanced Titanium Development for Android by Axway Appcelerator
Don Thorp & Marshall Culpepper: Advanced Titanium Development for AndroidDon Thorp & Marshall Culpepper: Advanced Titanium Development for Android
Don Thorp & Marshall Culpepper: Advanced Titanium Development for Android
Axway Appcelerator870 views
Automating Research Data Workflows (GlobusWorld Tour - UCSD) by Globus
Automating Research Data Workflows (GlobusWorld Tour - UCSD)Automating Research Data Workflows (GlobusWorld Tour - UCSD)
Automating Research Data Workflows (GlobusWorld Tour - UCSD)
Globus 29 views
Automating Research Data Workflows (GlobusWorld Tour - STFC) by Globus
Automating Research Data Workflows (GlobusWorld Tour - STFC)Automating Research Data Workflows (GlobusWorld Tour - STFC)
Automating Research Data Workflows (GlobusWorld Tour - STFC)
Globus 128 views
Gateways 2020 Tutorial - Introduction to Globus by Globus
Gateways 2020 Tutorial - Introduction to GlobusGateways 2020 Tutorial - Introduction to Globus
Gateways 2020 Tutorial - Introduction to Globus
Globus 151 views
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs by Altoros
Cloud Foundry Monitoring How-To: Collecting Metrics and LogsCloud Foundry Monitoring How-To: Collecting Metrics and Logs
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Altoros6.3K views
Using Globus to Streamline Research at Scale by Globus
Using Globus to Streamline Research at ScaleUsing Globus to Streamline Research at Scale
Using Globus to Streamline Research at Scale
Globus 30 views
Globus Automation by Globus
Globus AutomationGlobus Automation
Globus Automation
Globus 20 views

More from Globus

Introduction to Globus for System Administrators by
Introduction to Globus for System AdministratorsIntroduction to Globus for System Administrators
Introduction to Globus for System AdministratorsGlobus
11 views55 slides
Introduction to Data Transfer and Sharing for Researchers by
Introduction to Data Transfer and Sharing for ResearchersIntroduction to Data Transfer and Sharing for Researchers
Introduction to Data Transfer and Sharing for ResearchersGlobus
4 views33 slides
Introduction to the Globus Platform for Developers by
Introduction to the Globus Platform for DevelopersIntroduction to the Globus Platform for Developers
Introduction to the Globus Platform for DevelopersGlobus
4 views28 slides
Introduction to the Command Line Interface (CLI) by
Introduction to the Command Line Interface (CLI)Introduction to the Command Line Interface (CLI)
Introduction to the Command Line Interface (CLI)Globus
12 views12 slides
Automating Research Data with Globus Flows and Compute by
Automating Research Data with Globus Flows and ComputeAutomating Research Data with Globus Flows and Compute
Automating Research Data with Globus Flows and ComputeGlobus
6 views60 slides
Advanced Globus System Administration by
Advanced Globus System AdministrationAdvanced Globus System Administration
Advanced Globus System AdministrationGlobus
26 views29 slides

More from Globus (20)

Introduction to Globus for System Administrators by Globus
Introduction to Globus for System AdministratorsIntroduction to Globus for System Administrators
Introduction to Globus for System Administrators
Globus 11 views
Introduction to Data Transfer and Sharing for Researchers by Globus
Introduction to Data Transfer and Sharing for ResearchersIntroduction to Data Transfer and Sharing for Researchers
Introduction to Data Transfer and Sharing for Researchers
Globus 4 views
Introduction to the Globus Platform for Developers by Globus
Introduction to the Globus Platform for DevelopersIntroduction to the Globus Platform for Developers
Introduction to the Globus Platform for Developers
Globus 4 views
Introduction to the Command Line Interface (CLI) by Globus
Introduction to the Command Line Interface (CLI)Introduction to the Command Line Interface (CLI)
Introduction to the Command Line Interface (CLI)
Globus 12 views
Automating Research Data with Globus Flows and Compute by Globus
Automating Research Data with Globus Flows and ComputeAutomating Research Data with Globus Flows and Compute
Automating Research Data with Globus Flows and Compute
Globus 6 views
Advanced Globus System Administration by Globus
Advanced Globus System AdministrationAdvanced Globus System Administration
Advanced Globus System Administration
Globus 26 views
Introduction to Globus for System Administrators by Globus
Introduction to Globus for System AdministratorsIntroduction to Globus for System Administrators
Introduction to Globus for System Administrators
Globus 94 views
Introduction to Globus for New Users by Globus
Introduction to Globus for New UsersIntroduction to Globus for New Users
Introduction to Globus for New Users
Globus 55 views
Advanced Globus System Administration by Globus
Advanced Globus System AdministrationAdvanced Globus System Administration
Advanced Globus System Administration
Globus 21 views
Introduction to Globus by Globus
Introduction to GlobusIntroduction to Globus
Introduction to Globus
Globus 38 views
Introduction to Globus for System Administrators by Globus
Introduction to Globus for System AdministratorsIntroduction to Globus for System Administrators
Introduction to Globus for System Administrators
Globus 27 views
Advanced Globus System Administration by Globus
Advanced Globus System AdministrationAdvanced Globus System Administration
Advanced Globus System Administration
Globus 29 views
Introduction to Globus for System Administrators by Globus
Introduction to Globus for System AdministratorsIntroduction to Globus for System Administrators
Introduction to Globus for System Administrators
Globus 145 views
Introduction to Globus for Researchers by Globus
Introduction to Globus for ResearchersIntroduction to Globus for Researchers
Introduction to Globus for Researchers
Globus 89 views
Introduction to Globus for New Users by Globus
Introduction to Globus for New UsersIntroduction to Globus for New Users
Introduction to Globus for New Users
Globus 58 views
Globus Endpoint Migration and Advanced Administration Topics by Globus
Globus Endpoint Migration and Advanced Administration TopicsGlobus Endpoint Migration and Advanced Administration Topics
Globus Endpoint Migration and Advanced Administration Topics
Globus 55 views
Globus for System Administrators by Globus
Globus for System AdministratorsGlobus for System Administrators
Globus for System Administrators
Globus 68 views
Automating Research Data Management with Globus by Globus
Automating Research Data Management with GlobusAutomating Research Data Management with Globus
Automating Research Data Management with Globus
Globus 250 views
Moemoea nui Aotearoa: Challenges and Strategies in Data Lifecycle Management ... by Globus
Moemoea nui Aotearoa: Challenges and Strategies in Data Lifecycle Management ...Moemoea nui Aotearoa: Challenges and Strategies in Data Lifecycle Management ...
Moemoea nui Aotearoa: Challenges and Strategies in Data Lifecycle Management ...
Globus 150 views
Integrating Globus into the Tapis API by Globus
Integrating Globus into the Tapis APIIntegrating Globus into the Tapis API
Integrating Globus into the Tapis API
Globus 116 views

Recently uploaded

Black and White Modern Science Presentation.pptx by
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptxmaryamkhalid2916
14 views21 slides
6g - REPORT.pdf by
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdfLiveplex
9 views23 slides
Scaling Knowledge Graph Architectures with AI by
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
24 views15 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
33 views32 slides
Lilypad @ Labweek, Istanbul, 2023.pdf by
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdfAlly339821
9 views45 slides
Web Dev - 1 PPT.pdf by
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdfgdsczhcet
55 views45 slides

Recently uploaded(20)

Black and White Modern Science Presentation.pptx by maryamkhalid2916
Black and White Modern Science Presentation.pptxBlack and White Modern Science Presentation.pptx
Black and White Modern Science Presentation.pptx
maryamkhalid291614 views
6g - REPORT.pdf by Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex9 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson33 views
Lilypad @ Labweek, Istanbul, 2023.pdf by Ally339821
Lilypad @ Labweek, Istanbul, 2023.pdfLilypad @ Labweek, Istanbul, 2023.pdf
Lilypad @ Labweek, Istanbul, 2023.pdf
Ally3398219 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet55 views
HTTP headers that make your website go faster - devs.gent November 2023 by Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn19 views
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院 by IttrainingIttraining
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
【USB韌體設計課程】精選講義節錄-USB的列舉過程_艾鍗學院
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi120 views
DALI Basics Course 2023 by Ivory Egg
DALI Basics Course  2023DALI Basics Course  2023
DALI Basics Course 2023
Ivory Egg14 views
From chaos to control: Managing migrations and Microsoft 365 with ShareGate! by sammart93
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
From chaos to control: Managing migrations and Microsoft 365 with ShareGate!
sammart939 views
handbook for web 3 adoption.pdf by Liveplex
handbook for web 3 adoption.pdfhandbook for web 3 adoption.pdf
handbook for web 3 adoption.pdf
Liveplex19 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10209 views
1st parposal presentation.pptx by i238212
1st parposal presentation.pptx1st parposal presentation.pptx
1st parposal presentation.pptx
i2382129 views

Globus Platform Overview

  • 2. Globus serves as… A platform for building science gateways, portals and other web applications in support of research and education. 2
  • 3. Example web apps that leverage Globus 3
  • 5. Globus Auth: Security for Research Apps • Enable login to apps – Web apps (Jupyter Notebook, Portals), Mobile, Desktop, Command line • Protect all REST API communications – App  Globus service (Jupyter Notebook, MRDP) – App  non-Globus service (MRDP) – Service  service (MRDP) • Don’t introduce even more identities! • Provide a platform to consolidate those identities • Implement a least privileges security model (via consents) • Be programming language/framework agnostic • Be web friendly and simplify things for users and developers 5
  • 6. Authorization Code Grant 6 Client (Web Portal, Application) Globus Transfer (Resource Server) Globus Auth (Authorization Server) 5. Authenticate using client id and secret, send authorization code Browser (User) 1. Access portal 2. Redirects user 3. User authenticates and consents 4. Authorization code 6. Access token(s) 7. Authenticate with access token(s) to give the client the authority invoke the transfer service Identity Provider
  • 7. Globus Transfer API • Globus Web App consumes public Transfer API • Resource named by URL (standard REST approach) – Query params allow refinement (e.g., subset of fields) • Globus APIs use JSON for documents and resource representations • Requests authorized via OAuth2 access token – Authorization: Bearer asdflkqhafsdafeawk docs.globus.org/api/transfer 7
  • 8. Globus Python SDK • Python client library for the Globus Auth and Transfer REST APIs • globus_sdk.TransferClient class handles connection management, security, framing, marshaling from globus_sdk import TransferClient tc = TransferClient() globus.github.io/globus-sdk-python 8
  • 9. TransferClient low-level calls • Thin wrapper around REST API – post(), get(), update(), delete() get(path, params=None, headers=None, auth=None, response_class=None) o path – path for the request, with or without leading slash o params – dict to be encoded as a query string o headers – dict of HTTP headers to add to the request o response_class – class response object, overrides the client’s default_response_class o Returns: GlobusHTTPResponse object 9
  • 10. TransferClient higher-level calls • One method for each API resource and HTTP verb • Largely direct mapping to REST API endpoint_search(filter_fulltext=None, filter_scope=None, num_results=25, **params) 10
  • 12. Walkthrough API with our Jupyter Hub • https://jupyter.demo.globus.org – Sign in with Globus – Verify the consents – Start My Server (this will take about a minute) – Open folder: globus-jupyter-notebooks – Open folder: GlobusWorldTour – Run Platform_Introduction_JupyterHub_Auth.ipynb • If you mess it up and want to “go back to the beginning” – Back down to the root folder – Run NotebookPuller.ipynb • If you want to use the notebook outside of our hub – https://github.com/globus/globus-jupyter-notebooks – Authentication is a manual cut and paste of exchanging the authorization code for an access token 12
  • 13. Endpoint Search • Plain text search for endpoint – Searches owner, display name, keywords, description, organization, department – Full word and prefix match • Limit search to pre-defined scopes – all, my-endpoints, recently-used, in-use, shared- by-me, shared-with-me • Returns: List of endpoint documents 13
  • 14. Endpoint Management • Get endpoint (by id) • Update endpoint • Create & delete (shared) endpoints • Manage endpoint servers 14
  • 15. Endpoint Activation • Activating endpoint means binding a credential to an endpoint for login • Globus Connect Server endpoint that have MyProxy or MyProxy OAuth identity provider require login via web • Auto-activate – Globus Connect Personal and Shared endpoints use Globus- provided credential – Must auto-activate before any API calls to endpoints 15
  • 16. File operations • List directory contents (ls) • Make directory (mkdir) • Rename • Note: – Path encoding & UTF gotchas – Don’t forget to auto-activate first 16
  • 17. Task submission • Asynchronous operations – Transfer o Sync level option – Delete • Get submission_id, followed by submit – Once and only once submission 17
  • 18. Task management • Get task by id • Get task_list • Update task by id (label, deadline) • Cancel task by id • Get event list for task • Get task pause info 18
  • 19. Bookmarks • Get list of bookmarks • Create bookmark • Get bookmark by id • Update bookmark • Delete bookmark by id • Cannot perform other operations directly on bookmarks – Requires client-side resolution 19
  • 20. Shared endpoints and access rules (ACLs) • Shared Endpoint – create / delete / get info / get list • Administrator role required to delegate access managers • Access manager role required to manage permission/ACLs • Operations: – Get list of access rules – Get access rule by id – Create access rule – Update access rule – Delete access rule 20
  • 21. Management API • Allow endpoint administrators to monitor and manage all tasks with endpoint – Task API is essentially the same as for users – Information limited to what they could see locally • Cancel tasks • Pause rules 21
  • 22. Globus Helper Pages • Globus pages designed for use by your web apps – Browse Endpoint – Activate Endpoint – Select Group – Manage Identities – Manage Consents – Logout docs.globus.org/api/helper-pages 22
  • 23. Globus PaaS developer resources Python SDK Sample Application docs.globus.org/api github.com/globus Jupyter Notebook
  • 24. Support resources • Globus documentation: docs.globus.org • Helpdesk and issue escalation: support@globus.org • Mailing lists – https://www.globus.org/mailing-lists – developer-discuss@globus.org • Globus professional services team – Assist with portal/gateway/app architecture and design – Develop custom applications that leverage the Globus platform – Advise on customized deployment and integration scenarios

Editor's Notes

  1. WHAT We can accommodate… Globus was built by researchers for researchers. “There is always a better way to do things” is the very mantra that drives research. How could we allow you to use our foundational services to support your own applications and workflows. This is largely the theme of the day today.
  2. WHO – Example web apps. Yes, it’s really done “in the wild”
  3. Authorization Code Grant – For an application that can keep a secret (credentials, api keys, etc…) like JupyterHub - and needs to act on behalf of the user User attempts to access the portal Browser redirect Local site Auth Server prompts for user name and password (if they haven’t already authenticated to Globus) and prompts for consents (the specific things it’s going to use your Globus account for) - “By clicking "Allow", you allow Insert Application Name Here, in accordance with its terms of service and privacy policy, to use the above listed information and services.” -- May have to authenticate to an identity provider. Return to the application with an authorization code Authenticate using client id and secret, Exchange the authorization code for Access token(s) Use the access token(s) to create a transfer client object End result: All calls to the transfer service needs to have the authorization header with the transfer token.
  4. These are the same APIs that the Globus Web App uses. All of the Globus Services expose REST APIs All returns are in JSON format. URL named resources – what are resources in the context of transfer SOMEWHERE WHERE YOU TRASFER FROM OR TO: /endpoint/endpoint-uuid SOMEHTING THAT IS HAPPENING: /task/task-uuid Pretty standard REST approach Globus remote operations on a resource have rough “HTTP Verb” equivalents. Uses “patchy” PUTs – Essentially a list of modifications to the resource as opposed to a compete replacement of the resource. For example you can update only certain fields in an endpoint document by only specifying those fields. All calls to the transfer service needs to have the authorization header with the transfer token. Talked about this in the previous slides. Won’t go into this in too much depth as Globus Auth will be covered by Steve later, but it needs to be present in order for Transfer to work. And you will see an instance of this when we exercise the APIs in the Jupyter Notebook. Show the docs.globus.org site Hierarchy broken out by functionality. GO TO “Task Management” Show “GET Task by ID” URL Named Resource Method Response Format – Task Document
  5. If you want to write your own clients that’s fine, but we also have an open source Python SDK in our github for both the Auth and Transfer APIs. The Python SDK for the Transfer APIs are what we’ll concentrate on in this discussion. With some peeks back at the low level API functionality. Basic Transfer Client Class - You’ll see this all through the SDK and examples. Handles all of the connection management Deals with tokens that come back from authentication Everything required to assemble JSON documents So when you see “tc” in the examples that’s what that is. Go to URL IT’s Open Source Show it in Github repo
  6. There are low level calls for the TransferClient that map to the REST operations. If Python is not your language of choice, or you REALLY want to do it yourself! Formatting returns then up to you! You can dig into the transfer client in the doc.
  7. On top of the low level calls we’ve implemented higher level helper methods for key operations. Tried to keep it simple and have roughly one-to-one correspondence between the API and the helpers., For example “endpoint_search”, pass some parameters and the SDK pretty much does the rest. You’ll see this in real life when we run through the Jupyter Notebook.
  8. Fire up a notebook Show people how to run commands and live edit code Run the initial configuration – everything up to endpoint search Configuration Authentication steps Help Using the transfer client As we’ve already said, the transfer client makes REST resources available via easy to use methods. And the response is nice clean JSON get_endpoint method gives us a wealth of information about the endpoint just like the help said it would. Helper methods for APIs that returns lists have iterable responses, and automatically take care of paging where required: endpoint_search(filter_scope="recently-used") An example of a low level implementation Can change r["DATA"][3]["display_name"] limit=4 Handling errors, again we make it easy for you… example Bogus endpoint Standard 4xx / 5xx HTTP errors Classes of errors spit out by ex.code BACK TO SLIDES
  9. I’ve served up some appetizers – Now time for the entrée 1) You saw this in the Globus SaaS app and the CLI 2) Review the concept of an endpoint – storage abstraction (physical location + directory structure) All endpoints are identified by a UUID. modify search string 3) Scopes try other scopes listed above 4) Search on all these various components that define an endpoint to return an endpoint document which includes a UUID. Which you use in subsequent operations. Show ENDPOINT DOCUMENT on Docs site Search is a ranked search based on all terms individually (NOT on the entire phrase) Really simple API designed for end users to find their campus endpoint Will be enhancing this over time to do things like fuzzy match, etc. when we launch upgraded search functionality via Elastic Search
  10. Get the endpoint so you can operate on it. (Do Transfers) get_endpoint() other details: endpoint["public"], endpoint[”keywords"], for example Update the endpoint document; new keywords for search strings, display names, etc… epup = dict(keywords="Chicago") tc.update_endpoint("49885d84-26d3-11e7-bc68-22000b9a448b", epup) Create and delete endpoints as well as shares associated with endpoints. Manage the server list that details the servers belonging to a specific endpoint. Again – You’ve seen this in the SaaS app – You can do it with the API as well. Use PATCHy PUTs Means you can update only certain fields in an endpoint document by only specifying those fields
  11. 1) Globus endpoints must be "activated" before they can be used, which means associating a credential with the endpoint that is used for login to that endpoint. For endpoints that require activation (e.g., those with a MyProxy or MyProxy OAuth identity provider) you can activate those endpoints via the Globus website. Before performing operations against an endpoint, you should "autoactivate" the endpoint. On Globus Connect Personal and Shared endpoints, autoactivation will automatically create the necessary credentials to access the endpoint. You’ll see in our Jupyter notebook demo where we autoactivate the endpoints using their endpoint_ids. ================================================================= Tie this back to the activation dialog demonstrated at the beginning Activation: Host endpoints – I have to authenticate against a particular IdP Get back a token/temp credential Then use credential to act on behalf of user SHARED endpoints: You just authenticate to Globus service Globus is going to shared endpoint and checking if the requesting user is authorized This check runs locally as the user who created the share Basically this is delegating to Globus to implement fine grained access control 2) Implications for developing a portal: Shared endpoints are a lot nicer because you don’t have to deal with tokens and activation Model is: Before using endpoint call autoactivate If credentials exist OK; otherwise you get back document telling you how to activate BACK TO JUPYTER to show autoactivation e.g. I activated an XSEDE endpoint – can go to another endpoint and Globus is smart enough to reuse that credential to autoactivate 3) Bottom line: Must auto-activate before any API calls to endpoints – We’ll make this concrete when we run through the Jupyter Notebook.
  12. Be careful with path encoding, especially when going between Windows and Linux We’ve tried to shield you form most of them but you may run into some issues SHOW IN JUPYTER
  13. Up until now we’ve talked about synchronous tasks. Ask for something to happen, get a response. Two types of asynchronous tasks (think jobs): Set and forget or Set and Query Status Transfer (or sync) Delete Two-step process: For example the transfer task. - STEP 1: Instantiate a data transfer object to get a subsmission_id Add information about source and destination paths/files, etc. Can add multiple of these source-dest pairs STEP 2: Submit the transfer
  14. After you submit an asynchronous task… There are some things you can do. Recall the management console from the Globus SaaS app, these are the calls you would use to create your own console. Get task by id – returns task document Get task list – paged list of tasks submitted by the current user Update task – label – concept of deadline - can manually adjust deadline Cancel task Get event list – page list o all events including errors, retries, etc… Get task pause info - Get details about why a task is paused (or possibly about to be paused). This incudes pause rules on source and destination endpoints that affect the owner of the task. =========================================================== Events: FAULTS and non-FAULTS (e.g. performance monitoring events) Lists are usually limited to 10 most recent items; can be overriden Pause info: Why task is paused or about to be paused Provide some info about pause rules on endpoint SHOW JUPYTER CODE Get Task By ID Get task list Filter task list Cancel task Get event list for task
  15. Operations as you’d expect. All of the things you do in the SaaS app you can do with the APIs. Key point: cannot submit tasks against bookmarks Think of them as a side table that you can get a bookmark information and then go get the actual endpoint and operate on that You will do one of these in the exercise shortly
  16. ACL – Access control list. Who can access and what they can do. Describe Access Manager role: someone who can create access rules on an endpoint Get list of access rules Paged list of what single identities or groups have what type of permissions to operate on what files or directories. Who / Where / What Get access rule by id Single instance of the above based on id. Create access rule Delegate access to a shared endpoint. Update access rule Update the permissions of existing rules. (Read only to RW) Delete access rule Allows you to give temporary access to a shared endpoint. Rachana will cover this in depth in subsequent talks.
  17. Last Set This set of APIs allows endpoint administrators to manage the transfers to and from their endpoints, to aid in proactive debugging of user transfers. All operations herin require the user to have either the "activity_manager" or "activity_monitor" roles on on an endpoint, and the endpoint must be marked as Managed and associated with a provider subscription. You won’t see an example of these in the Jupyter notebooks because you will not have the right role designation on the Tutorial Endpoints, but they are well documented. Show on Docs site: under “Advanced Endpoint Management” API Model is: you have a managed endpoint; owner of endpoint can grant management rights to others so they can view information on, and manage pause ruels and cancel tasks
  18. One last thing we’ve done to make life easier as you build your web apps.
  19. Just a reminder of the resources we’ve made available to you and your developers.
  20. When all else fails.