Skip to content

globus/template-data-portal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 BETA 🧪

We're looking forward to sharing more details about this repository and more at GlobusWorld 2024!


Globus + static

This is a static research data portal powered by Globus.

View the result at: globus.github.io/template-data-portal.

While this repository is a working example of a data portal, it is also a template for creating your own static research data portal.


Creating Your Own Static Research Data Portal

  1. Create a new repository from the globus/template-data-portal template.
    • Screenshot 2024-03-11 at 12 24 22 PM
  2. Update your repository to allow publishing with GitHub Actions.
  3. Ensure your GitHub Pages are configured to Enforce HTTPS
  4. Register an application on Globus – https://app.globus.org/settings/developers
    • You'll be creating an OAuth public client; This option is presented as "Register a thick client or script that will be installed and run by users on their devices".
    • Update the Redirects to include your GitHub Pages URL + /authenticate, i.e., https://globus.github.io/template-data-portal/authenticate, https://{username}.github.io/{repository}/authenticate
    • Optional: Specify the Privacy Policy URL and Terms & Conditions URL to the portal-provided routes, i.e. https://globus.github.io/example-data-portal/privacy-policy
  5. Update the static.json to include:
    • data.attributes.globus.application.client_id – The UUID of the client created in the previous step.
    • data.attributes.globus.transfer.collection_id – The Collection UUID that will be the "source" of your data portal.
    • Optional: Set the data.attributes.globus.transfer.path to a specific path within the collection.
    • See the static.json type definitions for more configuration options.
  6. That's it! The changes made (and any future changes) to the static.json will trigger a GitHub Action that will automatically build and deploy your research data portal to your GitHub Pages URL.

Common Changes after Creating Your Portal

  • Updating the Title and Tagline – Update the data.attributes.content.title and data.attributes.content.tagline in the static.json.
  • Edit/Remove the CITATION file – Update the CITATION.cff file to reflect the appropriate citation information for your research data portal – learn more about CITATION files.
  • Removing this section of the README – Remove this section from the README.md file or update the README to meet your needs.

Features + Functionality

Data Portal

  • Powered by Globus
  • List the directory contents of a configured Globus collection at a specific path.
    • Support for HTTPS Access download of files where available.
  • Transfer data from the configured collection to another Globus collection.

GitHub Repository

  • 📄 Hosted via GitHub Pages – Users can access your data portal at this repository's GitHub Pages URL. Use all the functionality built-in to GitHub pages to suit your needs, including configuring a custom domain.

  • 🚀 Automated Deployments via GitHub Actions – Any file changes will result in the deployment (and rebuild) of your data portal.

    • You can manually trigger a deployment by navigating to the Actions tab and selecting the static workflow.
  • 🤖 Dependabot – A default Dependabot configuration (.github/dependabot.yml) to keep your repository up-to-date with latest changes to globus/static-data-portal.

static.json

The type used for data by the @globus/static-data-portal generator.

Type declaration

Name Type Description
attributes { content: { image?: string ; privacy_policy?: string ; tagline?: string ; terms_of_service?: string ; title: string } ; globus: { application: { client_id: string ; redirect_uri?: string } ; transfer: { collection_id: string ; path?: string } } ; theme?: ThemeSettings } -
attributes.content { image?: string ; privacy_policy?: string ; tagline?: string ; terms_of_service?: string ; title: string } -
attributes.content.image? string The URL of the portal's header image.
attributes.content.privacy_policy? string A privacy policy to be rendered at /privacy-policy. This is especially useful for associating the published URL with your registered Globus Auth application.
attributes.content.tagline? string -
attributes.content.terms_of_service? string Terms and conditions to be rendered at /terms-and-conditions. This is especially useful for associating the published URL with your registered Globus Auth application.
attributes.content.title string The title of the research data portal.
attributes.globus { application: { client_id: string ; redirect_uri?: string } ; transfer: { collection_id: string ; path?: string } } -
attributes.globus.application { client_id: string ; redirect_uri?: string } Information about your registered Globus Auth Application (Client) See https://docs.globus.org/api/auth/developer-guide/#developing-apps
attributes.globus.application.client_id string The UUID of the client application.
attributes.globus.application.redirect_uri? string The redirect URI for the Globus Auth login page to complete the OAuth2 flow. The portal will make a reasonable effort to determine this URI, but this field is provided as a fallback. To use the portal's built-in authorization handling, redirects should be sent to /authenticate on the host. Example ts "https://example.com/data-portal/authenticate"
attributes.globus.transfer { collection_id: string ; path?: string } Configuration for Transfer-related functionality in the portal.
attributes.globus.transfer.collection_id string The UUID of the Globus collection to list and transfer files from.
attributes.globus.transfer.path? string The path on the collection to list and transfer files from.
attributes.theme? ThemeSettings -
version string The version of the data object, which is used to determine how the generator will render its attributes. Example ts "1.0.0"

About

An example of a Globus-powered research data portal built from a static.json file.

Topics

Resources

Stars

Watchers

Forks