-
Notifications
You must be signed in to change notification settings - Fork 0
README Updates #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Reviewer's GuideUpdates project documentation by expanding the README with a full product overview and deployment/usage guide for PA-Cloud, and adds standard GitHub issue templates for bugs and feature requests. Sequence diagram for PA-Cloud user authentication and analysis workflowsequenceDiagram
actor User
participant Browser
participant PublicDNS as Route53DNS
participant JupyterHub as JupyterHubEC2
participant Keycloak
participant InternalDNS
participant DataSHIELD as DataSHIELDServer
User ->> Browser: Enter analytics domain URL
Browser ->> PublicDNS: Resolve analytics hostname
PublicDNS -->> Browser: JupyterHub IP
Browser ->> JupyterHub: HTTPS request to JupyterHub
JupyterHub ->> User: Redirect to identity domain
User ->> Browser: Follow redirect to identity domain
Browser ->> PublicDNS: Resolve identity hostname
PublicDNS -->> Browser: Keycloak IP
Browser ->> Keycloak: HTTPS request to Keycloak login
User ->> Keycloak: Submit credentials via Browser
Keycloak -->> Browser: Authentication success and token
Browser ->> JupyterHub: Return to JupyterHub with token
JupyterHub ->> Keycloak: Validate token
Keycloak -->> JupyterHub: Token valid
JupyterHub -->> User: JupyterHub interface and spawn notebook server
User ->> Browser: Open notebook and run DataSHIELD code
Browser ->> JupyterHub: Execute notebook cell
JupyterHub ->> InternalDNS: Resolve cohortname.pacloud.internal
InternalDNS -->> JupyterHub: DataSHIELD server IP
JupyterHub ->> DataSHIELD: Establish secure connection over VPN
JupyterHub ->> DataSHIELD: Send federated analysis commands
DataSHIELD -->> JupyterHub: Return non-disclosive aggregate results
JupyterHub -->> Browser: Display analysis results to user
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Update issue templates
uniqueg
left a comment
There was a problem hiding this 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
| > 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. |
There was a problem hiding this comment.
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.
|
I forgot about this. I think it's good to go. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey - I've found 5 issues
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location> `README.md:24` </location>
<code_context>
+- An AWS account.
+- The AWS CLI installed and logged into the above account (if `aws sts get-caller-identity` succeeds when run, this is met).
+- Sufficient permissions to deploy all resources.
+- Hashicorp's Terraform installed.
+- Access to at least one cohort server, for which:
+ - A server is required, which has:
</code_context>
<issue_to_address>
**suggestion (typo):** Use the correct capitalization for "HashiCorp".
Update this bullet to "HashiCorp's Terraform" to use the correct brand spelling.
```suggestion
- HashiCorp's Terraform installed.
```
</issue_to_address>
### Comment 2
<location> `README.md:44` </location>
<code_context>
+
+2. Add all cohort servers. This can be done in `cohort.tf` by adding further instances of the `cohort` module, ensuring that required additional networking resources are added in `network.tf` as well.
+
+3. Initialise terraform.
```hcl
terraform init
</code_context>
<issue_to_address>
**nitpick (typo):** Capitalize "Terraform" consistently as a proper product name.
To stay consistent with the rest of the document, update this step to "Initialise Terraform."
```suggestion
3. Initialise Terraform.
```
</issue_to_address>
### Comment 3
<location> `README.md:40` </location>
<code_context>
+
+Deployment is handled solely through Terraform.
+
+1. Generate an SSH key. This is to be used to authenticate to on prem servers, and should be added to `authorized_keys` in all cohort servers. These instructions assume this was generated as `./pacloud.key`.
+
+2. Add all cohort servers. This can be done in `cohort.tf` by adding further instances of the `cohort` module, ensuring that required additional networking resources are added in `network.tf` as well.
</code_context>
<issue_to_address>
**suggestion (typo):** Consider hyphenating "on-prem".
Specifically, consider updating "on prem servers" to "on-prem servers" for consistency with common usage.
```suggestion
1. Generate an SSH key. This is to be used to authenticate to on-prem servers, and should be added to `authorized_keys` in all cohort servers. These instructions assume this was generated as `./pacloud.key`.
```
</issue_to_address>
### Comment 4
<location> `README.md:74` </location>
<code_context>
+- `https://identity.propass.pacificanalytics.com` (Keycloak)
+- `https://analytics.propass.pacificanalytics.com` (JupyterHub)
+
+Users must be added to the created realm in Keycloak (`propass` by default) to access Jupyterhub. Keycloak's default administrator credentials can be retrieved from Terraform's state file, or AWS Secrets Manager.
+
+## Analysis
</code_context>
<issue_to_address>
**nitpick (typo):** Align "Jupyterhub" capitalization with earlier uses of "JupyterHub".
Please update "Jupyterhub" to "JupyterHub" here for consistency with earlier usage in the README.
Suggested implementation:
```
Users must be added to the created realm in Keycloak (`propass` by default) to access JupyterHub. Keycloak's default administrator credentials can be retrieved from Terraform's state file, or AWS Secrets Manager.
```
```
Once a user has been created in the `propass` realm in Keycloak, they can log in to JupyterHub and begin performing analysis using DataSHIELD.
```
</issue_to_address>
### Comment 5
<location> `README.md:78` </location>
<code_context>
+
+## Analysis
+
+Once a user has been created in the `propass` realm in Keycloak, they can log in to Jupyterhub and begin performing analysis using DataSHIELD.
+
+When using DataSHIELD, connect using the names specified in the cohort modules, suffixed with `.pacloud.internal`. For example, a cohort called 'example' would set the `name` variable to `example`, then once deployed, connect to it with DataSHIELD via `example.pacloud.internal`.
</code_context>
<issue_to_address>
**nitpick (typo):** Use consistent "JupyterHub" capitalization here as well.
This will match the capitalization used elsewhere in the docs and project.
Suggested implementation:
```
Users must be added to the created realm in Keycloak (`propass` by default) to access JupyterHub. Keycloak's default administrator credentials can be retrieved from Terraform's state file, or AWS Secrets Manager.
```
```
Once a user has been created in the `propass` realm in Keycloak, they can log in to JupyterHub and begin performing analysis using DataSHIELD.
```
</issue_to_address>Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
| - An AWS account. | ||
| - The AWS CLI installed and logged into the above account (if `aws sts get-caller-identity` succeeds when run, this is met). | ||
| - Sufficient permissions to deploy all resources. | ||
| - Hashicorp's Terraform installed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion (typo): Use the correct capitalization for "HashiCorp".
Update this bullet to "HashiCorp's Terraform" to use the correct brand spelling.
| - Hashicorp's Terraform installed. | |
| - HashiCorp's Terraform installed. |
|
|
||
| 2. Add all cohort servers. This can be done in `cohort.tf` by adding further instances of the `cohort` module, ensuring that required additional networking resources are added in `network.tf` as well. | ||
|
|
||
| 3. Initialise terraform. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick (typo): Capitalize "Terraform" consistently as a proper product name.
To stay consistent with the rest of the document, update this step to "Initialise Terraform."
| 3. Initialise terraform. | |
| 3. Initialise Terraform. |
|
|
||
| Deployment is handled solely through Terraform. | ||
|
|
||
| 1. Generate an SSH key. This is to be used to authenticate to on prem servers, and should be added to `authorized_keys` in all cohort servers. These instructions assume this was generated as `./pacloud.key`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggestion (typo): Consider hyphenating "on-prem".
Specifically, consider updating "on prem servers" to "on-prem servers" for consistency with common usage.
| 1. Generate an SSH key. This is to be used to authenticate to on prem servers, and should be added to `authorized_keys` in all cohort servers. These instructions assume this was generated as `./pacloud.key`. | |
| 1. Generate an SSH key. This is to be used to authenticate to on-prem servers, and should be added to `authorized_keys` in all cohort servers. These instructions assume this was generated as `./pacloud.key`. |
| - `https://identity.propass.pacificanalytics.com` (Keycloak) | ||
| - `https://analytics.propass.pacificanalytics.com` (JupyterHub) | ||
|
|
||
| Users must be added to the created realm in Keycloak (`propass` by default) to access Jupyterhub. Keycloak's default administrator credentials can be retrieved from Terraform's state file, or AWS Secrets Manager. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick (typo): Align "Jupyterhub" capitalization with earlier uses of "JupyterHub".
Please update "Jupyterhub" to "JupyterHub" here for consistency with earlier usage in the README.
Suggested implementation:
Users must be added to the created realm in Keycloak (`propass` by default) to access JupyterHub. Keycloak's default administrator credentials can be retrieved from Terraform's state file, or AWS Secrets Manager.
Once a user has been created in the `propass` realm in Keycloak, they can log in to JupyterHub and begin performing analysis using DataSHIELD.
|
|
||
| ## Analysis | ||
|
|
||
| Once a user has been created in the `propass` realm in Keycloak, they can log in to Jupyterhub and begin performing analysis using DataSHIELD. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick (typo): Use consistent "JupyterHub" capitalization here as well.
This will match the capitalization used elsewhere in the docs and project.
Suggested implementation:
Users must be added to the created realm in Keycloak (`propass` by default) to access JupyterHub. Keycloak's default administrator credentials can be retrieved from Terraform's state file, or AWS Secrets Manager.
Once a user has been created in the `propass` realm in Keycloak, they can log in to JupyterHub and begin performing analysis using DataSHIELD.
Adds additional information to
README.mdSummary by Sourcery
Update project documentation and add standard GitHub issue templates.
Documentation:
Chores: