From 3284c134e59b60a43d8a7270723fc7b081b9f281 Mon Sep 17 00:00:00 2001 From: Nicholas Lee Date: Thu, 28 May 2026 20:50:16 -0700 Subject: [PATCH 1/3] feat: added language to support switch of cloud providers --- docs/aup.md | 3 --- docs/privacy.md | 53 ++++++++++++++++++++++++------------------------ mkdocs.yml | 2 +- package.json | 2 +- requirements.txt | 3 +++ 5 files changed, 32 insertions(+), 31 deletions(-) create mode 100644 requirements.txt diff --git a/docs/aup.md b/docs/aup.md index 5dbd61ca..5b674680 100644 --- a/docs/aup.md +++ b/docs/aup.md @@ -61,6 +61,3 @@ The user agrees to add the following reference to any publication resulting from Papers, book chapters, books, posters, oral presentations, and all other printed and digital presentations of results derived from data, data derivatives, analysis code, software or data processing served via brainlife.io should contain the following wording in the acknowledgments section. > "This publication benefitted at least in part from the use of data or technology provided by brainlife.io (NSF BCS 1734853 to Franco Pestilli)." - - -#### The brainlife.io team diff --git a/docs/privacy.md b/docs/privacy.md index 14bd9134..9f776558 100644 --- a/docs/privacy.md +++ b/docs/privacy.md @@ -19,19 +19,21 @@ Because Internet technologies continue to evolve rapidly, brainlife.io may make brainlife.io allows you to upload neuroimaging data and store them on your project. All data stored in public projects can be accessed by brainlife.io users, and data stored in private projects can be accessed by the project members. User can also choose to publish data on private project through brainlife publications. -The ownership of all data uploaded, stored on brainlife.io remains with the original owner of the data and retains all copyright and license attributes. The data generated within brainlife.io would belong to the project members. +The ownership of all data uploaded, stored on brainlife.io remains with the original owner of the data and retains all copyright and license attributes. The data generated within brainlife.io would belong to the project members. -brainlife.io allows administrators to access uploaded and generated data-objects stored in private projects when users request for troubleshooting or for investigating suspicious activities and other limited occasions. +brainlife.io allows administrators to access uploaded and generated data-objects stored in private projects when users request for troubleshooting or for investigating suspicious activities and other limited occasions. ### Data Security -The archive data is currently stored on [OSiRIS](https://www.osris.org/), the NSF founded distributed storage infrastructure. We are also exploring the use of [OSN](https://www.openstoragenetwork.org) in the coming months. Only the brainlife administrator is authorized to access these storage systems, however, administrators of these storage systems may have access to the data. +The archive data is stored on trusted and secure third party cloud platforms including [OSiRIS](https://www.osris.org/) and [AWS (Amazon Web Services)](https://registry.opendata.aws/apex/) ("AWS"). Only the brainlife administrator(s) is/are authorized to access these storage systems; however, administrators of these storage systems may have access to the data. -brainlife.io provides their users several *shared* computing resources including brainlife.io's own slurm clusters running on Jetstream, and various other [ACCESS](https://access-ci.org/) resources. These shared resources are enabled to all users by default, and when you submit jobs on brainlife, the data must be transferred to these remote computing resources. The data transfer between resources is encrypted by ssh/sha2 protocol with ssh keys encrypted by PBKDF2/sha512 algorithm. +brainlife.io provides their users several _shared_ computing resources including brainlife.io's own slurm clusters running on Jetstream, various [ACCESS](https://access-ci.org/) resources, AWS resources, and other trusted compute resource providers. These shared resources are enabled to all users by default, and when you submit jobs on brainlife, the data must be transferred to these remote computing resources. The data transfer between resources is encrypted by ssh/sha2 protocol with ssh keys encrypted by PBKDF2/sha512 algorithm. -The staged data and any data derivatives generated by Apps may be persisted up to 30 days (or shorter) on remote resources during which the administrators of those resources may have access to the data. All shared resources uses a single login account ("brlife") and only the brainlife service (amaretti) and the platform administrators have access to this account. brainlife platform then allows authorized users access to the data that belongs to the projects. +The staged data and any data derivatives generated by Apps may be persisted up to 30 days (or shorter) on remote resources during which the administrators of those resources may have access to the data. Currently, all shared resources uses a single login account ("brlife") and only the brainlife service (amaretti) and the platform administrators have access to this account. The brainlife platform then allows authorized users access to the data that belongs to the projects. +As brainlife grows as a platform and the underlying technology changes, the above described infrastructure may be subject to change. For monitoring and auditing information, please see "General Security" below. + ### Metadata brainlife.io will not use user's data to conduct any research activities unless you explicitly give permission to do so, however, we retains the right to collect "metadata" from brainlife.io users, including platform usage, number of contributions to the platform, and apps executed will be used to provide platform functionalities and to advance reproducible neuroscience research. We may also share this metadata anonymously and securely with our partners and collaborators in order to improve the platform functionality and user experience. Data collected from users will be ongoing, as long as you are registered for or actively using the platform. While we do aggregate [personally identifiable information](#activemanualvoluntary-collection), no personally identifiable information will be shared with other entities, organizations, or within our research. @@ -40,16 +42,16 @@ brainlife.io will not use user's data to conduct any research activities unless When you view pages on our site, the web server automatically collects certain technical information from your computer and about your connection including: -* your IP address -* the domain name from which you visit our site -* user-specific information on which pages are visited -* aggregate information on pages visited -* the referring website -* the date and time of visit -* the duration of visit -* your browser type -* your screen resolution -* Asset accessed on the platform +- your IP address +- the domain name from which you visit our site +- user-specific information on which pages are visited +- aggregate information on pages visited +- the referring website +- the date and time of visit +- the duration of visit +- your browser type +- your screen resolution +- Asset accessed on the platform Continued use of our website indicates consent to the collection, use, and disclosure of this information as described in this notice. @@ -59,9 +61,9 @@ This technical information is retained in detail for up to 180 days. Other than automatically collected technical information about your visit (described above, or cookies, described below), we may ask you to provide information voluntarily, such as through forms or other manual input—in order to make products and services available to you, to maintain and manage our relationship with you, including providing associated services or to better understand and serve your needs. This information is generally retained as long as you continue to maintain a relationship with us. Your providing this information is wholly voluntary. However, not providing the requested information (or subsequently asking that the data be removed) may affect our ability to deliver the products or service for which the information is needed. Providing the requested information indicates your consent to the collection, use, and disclosure of this information as described in this notice. Information we may actively collect could include: -* the email addresses of those who communicate with us via email -* institution, name, biography and other public user profile information. -* information volunteered by the visitor, such as preferences, survey information and/or site registrations +- the email addresses of those who communicate with us via email +- institution, name, biography and other public user profile information. +- information volunteered by the visitor, such as preferences, survey information and/or site registrations ## Information Used For Contact @@ -100,21 +102,21 @@ In some cases, we will grant visitors the ability to update or correct inaccurac Visitors may correct inaccuracies in: -* contact information that we have on file +- contact information that we have on file Visitors can have this information corrected by: -* sending us email at the listed address -* visiting us at the following URL: brainlife.io -* brainlife.io@gmail.com +- sending us email at the listed address +- visiting us at the following URL: brainlife.io +- brainlife.io@gmail.com ## Disclosure of Information Other than sharing your information with other appropriate university personnel and units to ensure the quality, functionality, and security of our website, or manage your relationship with us, we will not disclose personally identifiable information about your use of the site except under the following circumstances: -* With your prior written (including email) consent -* When we have given you clear notice that we will disclose information that you voluntarily provide -* With appropriate external parties, such as law enforcement agencies, in order to investigate and respond to suspected violations of law or university policy. Any such disclosures shall comply with all applicable laws and university policies. +- With your prior written (including email) consent +- When we have given you clear notice that we will disclose information that you voluntarily provide +- With appropriate external parties, such as law enforcement agencies, in order to investigate and respond to suspected violations of law or university policy. Any such disclosures shall comply with all applicable laws and university policies. ## General Security @@ -138,7 +140,6 @@ We will post the policy changes to our website to notify you of these changes an Visitors may prevent their information from being used for purposes other than those for which it was originally collected by sending us an email at the listed address below. - ## Contact Information If you have questions or concerns about this policy, please contact us. diff --git a/mkdocs.yml b/mkdocs.yml index 707f880e..70fe442e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -102,7 +102,7 @@ markdown_extensions: - footnotes - toc: permalink: True - - fontawesome_markdown + - fontawesome_in_markdown - attr_list - pymdownx.highlight: linenums: true diff --git a/package.json b/package.json index 5c7b3986..e3c2d744 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "doc": "docs" }, "scripts": { - "install": "sudo pip3 install mkdocs mkdocs-material fontawesome_markdown", + "install": "pip3 install -r requirements.txt", "deploy": "echo test.brainlife.io github hook service automatically updates it (test.brainlife.io:/home/hayashis/git/docs - launched by @reboot cron)", "deploy-prod": "mkdocs build && rsync -av site/ hayashis@brainlife.io:/usr/local/static/docs", "dev": "mkdocs serve" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..47fb57f5 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +mkdocs +mkdocs-material +fontawesome-in-markdown From 9fe04eb6a47e5ec80df6b94d22381384b2483fe3 Mon Sep 17 00:00:00 2001 From: Nicholas Lee Date: Thu, 28 May 2026 20:54:06 -0700 Subject: [PATCH 2/3] fix: revert updates to installation --- mkdocs.yml | 182 +++++++++++++++++++++++------------------------ package.json | 36 +++++----- requirements.txt | 3 - 3 files changed, 108 insertions(+), 113 deletions(-) delete mode 100644 requirements.txt diff --git a/mkdocs.yml b/mkdocs.yml index 70fe442e..6f16fc13 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,110 +1,108 @@ - site_name: brainlife Documentation -site_author: 'The people of brainlife.io' +site_author: "The people of brainlife.io" site_url: https://brainlife.io/docs # # Repository -repo_name: 'brainlife/docs' -repo_url: 'https://github.com/brainlife/docs' +repo_name: "brainlife/docs" +repo_url: "https://github.com/brainlife/docs" copyright: 'Copyright © 2017 - 2022 brainlife.io | Please report issues on Github Issues or send us your comment at Slack' theme: - name: 'material' - language: 'en' - favicon: '/img/favicon.ico' - palette: - primary: 'light blue' - custom_dir: overrides + name: "material" + language: "en" + favicon: "/img/favicon.ico" + palette: + primary: "light blue" + custom_dir: overrides nav: - - Home: index.md - - - ezBIDS: using_ezBIDS.md - - - Using brainlife: - - Getting Started: user/started.md - - Projects: user/project.md - - Datatypes: user/datatypes.md - - Archive: user/archive.md - - Preprocess: user/process.md - - Pipelines: user/pipeline.md - - Publications: user/publication.md - - Datasets : user/datasets.md - - Failure: user/failure.md - - - Tutorials: - - Introduction: tutorial/introduction-to-brainlife.md - - ezBIDS: tutorial/ezBIDS.md - - Anatomy: tutorial/t1w-preprocessing.md - - AWS: tutorial/aws-brainlife.md - - FMRI Preprocessing: tutorial/fmri-preprocessing-tutorial.md - - PRF Mapping: tutorial/prf-mapping.md - - DWI Preprocessing : tutorial/diffusion-preprocessing.md - - DWI Tractometry: tutorial/diffusion-tractography.md - - Network Neuroscience - Structural: tutorial/networkneuroscience-structural.md - - Network Neuroscience - Functional: tutorial/networkneuroscience-functional.md - - Cortex Tissue Mapping: tutorial/cortex-tissue-mapping.md - - Pipeline Tutorial: tutorial/anat-t1-pipeline-tutorial.md - - Clairvoy: tutorial/using-clairvoy.md - - - Using CLI: - - Installation: cli/install.md - - Uploading Data: cli/upload.md - - Running Apps: cli/app.md - - Downloading Data: cli/download.md - - Update Data: cli/update.md - - Group Analysis: cli/group.md - - - Developing Apps: - - Introduction: apps/introduction.md - - HelloWorld: apps/helloworld.md - - Registering App: apps/register.md - - Containerizing App: apps/container.md - - Versioning Tips: apps/versioning.md - - Custom Hooks: apps/customhooks.md - - product.json: apps/product.md - - submodules: apps/submodules.md - - - Compute Resources: - - Registering Resource: resources/register.md - - - Technical: - - Architecture: technical/arthitecture.md - - APIs: technical/api.md - - ezBIDS: technical/ezBIDS.md - - - Careers: careers/jobs.md - - - Contact: contact.md - - Privacy Policy: privacy.md - - AUP: aup.md - - Media / Branding: media.md + - Home: index.md + + - ezBIDS: using_ezBIDS.md + + - Using brainlife: + - Getting Started: user/started.md + - Projects: user/project.md + - Datatypes: user/datatypes.md + - Archive: user/archive.md + - Preprocess: user/process.md + - Pipelines: user/pipeline.md + - Publications: user/publication.md + - Datasets: user/datasets.md + - Failure: user/failure.md + + - Tutorials: + - Introduction: tutorial/introduction-to-brainlife.md + - ezBIDS: tutorial/ezBIDS.md + - Anatomy: tutorial/t1w-preprocessing.md + - AWS: tutorial/aws-brainlife.md + - FMRI Preprocessing: tutorial/fmri-preprocessing-tutorial.md + - PRF Mapping: tutorial/prf-mapping.md + - DWI Preprocessing: tutorial/diffusion-preprocessing.md + - DWI Tractometry: tutorial/diffusion-tractography.md + - Network Neuroscience - Structural: tutorial/networkneuroscience-structural.md + - Network Neuroscience - Functional: tutorial/networkneuroscience-functional.md + - Cortex Tissue Mapping: tutorial/cortex-tissue-mapping.md + - Pipeline Tutorial: tutorial/anat-t1-pipeline-tutorial.md + - Clairvoy: tutorial/using-clairvoy.md + + - Using CLI: + - Installation: cli/install.md + - Uploading Data: cli/upload.md + - Running Apps: cli/app.md + - Downloading Data: cli/download.md + - Update Data: cli/update.md + - Group Analysis: cli/group.md + + - Developing Apps: + - Introduction: apps/introduction.md + - HelloWorld: apps/helloworld.md + - Registering App: apps/register.md + - Containerizing App: apps/container.md + - Versioning Tips: apps/versioning.md + - Custom Hooks: apps/customhooks.md + - product.json: apps/product.md + - submodules: apps/submodules.md + + - Compute Resources: + - Registering Resource: resources/register.md + + - Technical: + - Architecture: technical/arthitecture.md + - APIs: technical/api.md + - ezBIDS: technical/ezBIDS.md + + - Careers: careers/jobs.md + + - Contact: contact.md + - Privacy Policy: privacy.md + - AUP: aup.md + - Media / Branding: media.md extra: - #disqus: 'brain-life' - social: - - icon: fontawesome/brands/twitter - link: 'https://twitter.com/BrainLifeio' - - icon: fontawesome/brands/github - link: 'https://github.com/brainlife' - - icon: fontawesome/brands/slack - link: 'https://brainlife.slack.com' - - icon: fontawesome/brands/youtube - link: 'https://youtube.com/brainlifeio' + #disqus: 'brain-life' + social: + - icon: fontawesome/brands/twitter + link: "https://twitter.com/BrainLifeio" + - icon: fontawesome/brands/github + link: "https://github.com/brainlife" + - icon: fontawesome/brands/slack + link: "https://brainlife.slack.com" + - icon: fontawesome/brands/youtube + link: "https://youtube.com/brainlifeio" extra_css: - css/narrow.css markdown_extensions: - - admonition - - footnotes - - toc: - permalink: True - - fontawesome_in_markdown - - attr_list - - pymdownx.highlight: - linenums: true - - pymdownx.superfences - + - admonition + - footnotes + - toc: + permalink: True + - fontawesome_markdown + - attr_list + - pymdownx.highlight: + linenums: true + - pymdownx.superfences diff --git a/package.json b/package.json index e3c2d744..8fddcc0c 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,20 @@ { - "name": "docs", - "version": "1.0.0", - "description": "", - "main": "index.js", - "directories": { - "doc": "docs" - }, - "scripts": { - "install": "pip3 install -r requirements.txt", - "deploy": "echo test.brainlife.io github hook service automatically updates it (test.brainlife.io:/home/hayashis/git/docs - launched by @reboot cron)", - "deploy-prod": "mkdocs build && rsync -av site/ hayashis@brainlife.io:/usr/local/static/docs", - "dev": "mkdocs serve" - }, - "author": "", - "license": "ISC", - "dependencies": { - "github-webhook-handler": "^1.0.0" - } + "name": "docs", + "version": "1.0.0", + "description": "", + "main": "index.js", + "directories": { + "doc": "docs" + }, + "scripts": { + "install": "sudo pip3 install mkdocs mkdocs-material fontawesome_markdown", + "deploy": "echo test.brainlife.io github hook service automatically updates it (test.brainlife.io:/home/hayashis/git/docs - launched by @reboot cron)", + "deploy-prod": "mkdocs build && rsync -av site/ hayashis@brainlife.io:/usr/local/static/docs", + "dev": "mkdocs serve" + }, + "author": "", + "license": "ISC", + "dependencies": { + "github-webhook-handler": "^1.0.0" + } } diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 47fb57f5..00000000 --- a/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -mkdocs -mkdocs-material -fontawesome-in-markdown From c32f458bbf2d654318b3171988de9a4d1b97eff2 Mon Sep 17 00:00:00 2001 From: Nicholas Lee Date: Thu, 28 May 2026 21:46:57 -0700 Subject: [PATCH 3/3] fix: more permissable wording for the future --- docs/privacy.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/privacy.md b/docs/privacy.md index 9f776558..a51b6373 100644 --- a/docs/privacy.md +++ b/docs/privacy.md @@ -25,7 +25,9 @@ brainlife.io allows administrators to access uploaded and generated data-objects ### Data Security -The archive data is stored on trusted and secure third party cloud platforms including [OSiRIS](https://www.osris.org/) and [AWS (Amazon Web Services)](https://registry.opendata.aws/apex/) ("AWS"). Only the brainlife administrator(s) is/are authorized to access these storage systems; however, administrators of these storage systems may have access to the data. +We may use trusted third-party cloud and infrastructure providers to host, process, secure, and maintain data. These providers may change over time to support operational, security, or technical requirements. + +The archive data is currently stored on third party cloud platforms including [OSiRIS](https://www.osris.org/) and [AWS (Amazon Web Services)](https://registry.opendata.aws/apex/) ("AWS"). Only the brainlife administrator(s) is/are authorized to access these storage systems; however, administrators of these storage systems may have access to the data. brainlife.io provides their users several _shared_ computing resources including brainlife.io's own slurm clusters running on Jetstream, various [ACCESS](https://access-ci.org/) resources, AWS resources, and other trusted compute resource providers. These shared resources are enabled to all users by default, and when you submit jobs on brainlife, the data must be transferred to these remote computing resources. The data transfer between resources is encrypted by ssh/sha2 protocol with ssh keys encrypted by PBKDF2/sha512 algorithm.