Skip to content

Conversation

@Matt5981
Copy link

@Matt5981 Matt5981 commented Dec 11, 2025

Adds additional information to README.md

Summary by Sourcery

Update the README to provide a high-level product overview and step-by-step deployment and usage guidance for PA-Cloud.

Documentation:

  • Expand README with an architectural overview of PA-Cloud and its core AWS-based components.
  • Add detailed prerequisites and Terraform-based deployment instructions for setting up PA-Cloud from scratch.
  • Document access endpoints, user management via Keycloak, and basic DataSHIELD analysis workflow.
  • Add licensing and contact information to the README for support and legal reference.

@sourcery-ai
Copy link

sourcery-ai bot commented Dec 11, 2025

Reviewer's Guide

README.md is expanded from a brief Terraform-focused note into a full user-facing guide describing PA-Cloud’s architecture, prerequisites, Terraform-based deployment steps, access patterns, and licensing/contact details.

File-Level Changes

Change Details Files
Expand README into an architectural and deployment guide for PA-Cloud.
  • Replace the brief Terraform description with a high-level description of PA-Cloud and its purpose in federated analysis using DataSHIELD
  • Add an architectural overview describing AWS-based VPN networking, internal network, JupyterHub, and Keycloak authentication components
  • Introduce detailed prerequisites for deploying PA-Cloud, including AWS, Terraform, and cohort server requirements
  • Document step-by-step Terraform deployment workflow, including SSH key generation, cohort configuration, plan creation, and apply with review guidance
  • Add access instructions for Keycloak and JupyterHub via Route53-hosted domains and how to retrieve admin credentials
  • Describe how to connect to cohorts via DataSHIELD using internal DNS names derived from cohort module names
  • Append licensing and contact information pointing to the Apache license and a support email address
README.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link
Contributor

@uniqueg uniqueg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, thanks a lot! Just a few easy suggestions

README.md Outdated

PA-Cloud consists of a set of AWS resources that allow individual DataSHIELD servers running on University networks to communicate securely.

This leverages AWS' site-to-site VPN connections, with an internal network in AWS serving as a confluence, from which an instance of Jupyterhub can be used to spawn Jupyter notebook servers, within which analysis can take place.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it really spawn Jupyter notebook servers? Not Rock R servers? I'm not sure, but that was my understanding, so maybe double check (unless you're sure)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It spawns both - intially Rock servers (alongside DataSHIELD's other supporting containers), then Jupyter notebooks via JupyterHub inside AWS. I've adjusted the README accordingly to better reflect this

> This repository is currently configured as per Pacific Analytics' deployment of PA-Cloud. You will need to adjust various values in Terraform if deploying to a different location.
> [!NOTE]
> The above is provisional, with exact requirements for a novel environment not fully known.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe invite people to contribute back their experiences.

README.md Outdated
1. Initialise terraform
# Architectural Overview

PA-Cloud consists of a set of AWS resources that allow individual DataSHIELD servers running on University networks to communicate securely.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can be more generic here, maybe "federated networks" instead of "University networks", or even make it clearer by explicitly stating that these can be cross-institutional

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a mention of this in this section

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants