template-data-portal
A template repository that can be used to create your own serverless data portal integrating with Globus Transfer.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Keywords
Repository
A template repository that can be used to create your own serverless data portal integrating with Globus Transfer.
Basic Info
- Host: GitHub
- Owner: globus
- Default Branch: main
- Homepage: https://globus.github.io/template-data-portal/
- Size: 443 KB
Statistics
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
🧪 BETA 🧪
This is template repository used to generate a Globus-powered research data portal.
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.
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.
- Configure multiple collections and paths allowing users to select their preferred source.
- Ability to host custom content alongside the data portal.
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.
Creating Your Own Research Data Portal
- Create a new repository from the globus/template-data-portal template.
- Using the following URL: https://github.com/new?templatename=template-data-portal&templateowner=globus
- Or, using the GitHub UI:
- Update your repository to allow publishing with GitHub Actions.
- IMPORTANT The built-in GitHub Action workflows in your new repository will fail until you've updated this setting.
- Ensure your GitHub Pages are configured to Enforce HTTPS
- 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://{username}.github.io/{repository}/authenticate- If you have configured your GitHub Pages to use a custom domain, this will be
https://{domain}/authenticate - It is important to note that Globus Auth requires HTTPS.
- If you have configured your GitHub Pages to use a custom domain, this will be
- 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 - All other fields can be left as default or changed to suit your needs.
- Update the
static.jsonto 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.pathto a specific path within the collection, or remove thepathproperty to resolve to the default directory. - See the static.json type definitions for more configuration options.
- That's it! Your portal will be available at your GitHub Pages URL. The changes made (and any future changes) to the
static.jsonwill trigger a GitHub Action that will automatically build and deploy your research data portal to your GitHub Pages URL.
Maintaining Your Data Portal
- As you make changes to files in your repository, the GitHub Action will automatically rebuild and deploy your portal.
- Globus will provide updates to the underlying
@globus/static-data-portalpackage that powers your portal. Merging pull requests automatically opened from Dependabot will keep your portal up-to-date with the latest changes.
Common Changes after Creating Your Portal
- Updating the Title – Update the
data.attributes.content.titlein thestatic.json. - Adding Custom Content - Add a
contentdirectory with Markdown, or MDX files to be rendered as pages in your portal. - Edit/Remove the
CITATIONfile – Update theCITATION.cfffile to reflect the appropriate citation information for your research data portal – learn more aboutCITATIONfiles. - Removing this section of the README – Remove this section from the
README.mdfile or update the README to meet your needs.
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" |
Owner
- Name: Globus
- Login: globus
- Kind: organization
- Website: https://www.globus.org/
- Repositories: 51
- Profile: https://github.com/globus
Citation (CITATION.cff)
cff-version: 1.2.0 authors: - family-names: "Bottigliero" given-names: "Joe" orcid: "https://orcid.org/0009-0009-9663-0050" title: "Template Data Portal" version: 1.3.0 date-released: 2024-03-14 url: "https://github.com/globus/template-data-portal"
GitHub Events
Total
- Watch event: 1
- Delete event: 4
- Issue comment event: 1
- Push event: 2
- Pull request event: 6
- Fork event: 4
- Create event: 3
Last Year
- Watch event: 1
- Delete event: 4
- Issue comment event: 1
- Push event: 2
- Pull request event: 6
- Fork event: 4
- Create event: 3
Dependencies
- 511 dependencies
- @globus/static-data-portal ^1.0.1