diff --git a/docs/include/img/db-gilmore-dashboard-volume-overview-read-write.png b/docs/include/img/db-gilmore-dashboard-volume-overview-read-write.png new file mode 100644 index 0000000..66b1b75 Binary files /dev/null and b/docs/include/img/db-gilmore-dashboard-volume-overview-read-write.png differ diff --git a/docs/more-information/software.html b/docs/more-information/software.html index 912c13f..7f38ca1 100644 --- a/docs/more-information/software.html +++ b/docs/more-information/software.html @@ -527,7 +527,13 @@

Volume Sharing Level
  • Entire Volume Shared
  • An Authorized Investigator has a private page that combines personal profile information and a dashboard with information about volumes, sponsors, and affiliates.

    -

    Rick Gilmore’s private profile and dashboard. The Dashboard consists of two columns. The left column provides information about Volumes the Authorized Investigator has created or has access to.

    +
    +
    +

    +
    Rick Gilmore’s private profile and dashboard.
    +
    +
    +

    The Dashboard consists of two columns. The left column provides information about Volumes the Authorized Investigator has created or has access to.

    The following figure illustrates that the Volume has “Entire Volume Shared” status (unlocked lock icon; “Share Entire Volume” tooltip).

    Also, on this Volume, the user has “Investigator” status, meaning that the data can be fully edited and shared with others, as indicated by the tooltip and the crown icon):

    @@ -537,7 +543,7 @@

    Volume Sharing Level

    This user also has volumes with Volume Overview Shared as indicated by the keyhole icon:

    Some other Authorized Investigators have also given this user read-write (pencil icon) status to their volumes that have Volume Overview Shared status:

    -

    +

    And still other Authorized Investigators have given this user read-only (eyeglasses icon) privileges:

    In this case, it looks like the volume has been fully shared (unlocked lock icon), so the user has full read access to the volume already. Prior to the volume being fully shared, the user had read-only access to the private data.

    diff --git a/docs/search.json b/docs/search.json index 789004d..782684d 100644 --- a/docs/search.json +++ b/docs/search.json @@ -103,7 +103,7 @@ "href": "more-information/software.html#databrary-1.0", "title": "Software", "section": "", - "text": "Frontend\n\nAngularJS 1.4\nCoffee Script 1.7.1\nJQuery 1.12.3\nStylus 0.54.5 + nib 1.1.2\n\n\n\nBackend\n\nGHC 8.0.2\nHaskell 2010\nSolr 6.6\nPostgreSQL 9.5\nFFmpeg 4.2.4\n\n\n\nApplication\nDatasets are organized into separate volumes with system-wide unique (integer) identifiers. Groups of data files related to a specific person or people (or non-human animal), a date, time, and location are grouped into sessions (slots) within a volume. Individual files (assets) of varying types are organized within a session (slot). Sessions (slots) and files (assets) are assigned system-wide unique (integer) identifiers.\nIndividual users and institutions (called parties) are assigned system-wide unique identifiers and have some overlapping data elements (e.g., prename, sortname). Access privileges are granted hierarchically in a parent/child organization. For example, Databrary is the parent of New York University (NYU); NYU is the parent of Karen Adolph and multiple other Authorized Investigators; Karen Adolph is the parent of multiple Affiliate investigators who have broad access to volumes Dr. Adolph has created. Further details about how Authorized Investigators assign access permission to Affiliates can be found in the System Roles section below.\n\n\nSharing Release Levels\nRestricted data and metadata are controlled by a specific set of sharing release levels. These levels apply at the session/slot and file/asset level. Newly uploaded files default to Private. The terminology associated with these levels, the icons used to identify the levels, and the level of user access permitted by the levels are deeply embedded in the Databrary policy framework.\n\n\nAPI\nAll Databrary frontend calls use the API. The volume/slot/asset identifier scheme described previously supports API calls of the following form:\nhttps://nyu.databrary.org/volume/1/slot/9807?asset=9200\nThis call accesses the Databrary “leaf” logo in volume 1, slot (session) 9807, with asset ID 9200. Similarly, https://nyu.databrary.org/party/12 returns information about all of the Authorized Investigators who are authorized through party 12, The Pennsylvania State University.\nMost, but not all of the Databrary API is documented. If it is necessary to change the API calls in the rewrite, then the API should be versioned, and the new system should support current API calls.\n\n\nBackend Services\nAll audio and video files uploaded automatically generate transcoding jobs that are handled by the NYU HPC.\nThe system mints a Digital Object Identifier (DOI) when a volume is shared. This must continue. Databrary piggybacks on the DOI account controlled by NYU Libraries.\nThe system generates and updates standard bibliographic citations for a volume based on volume data and metadata.\n\n\nSystem roles\n\nSuper user\nThe system supports a small number of Super User accounts. Only an existing Super User can grant Super User privileges to another account holder. Super User have the following privileges:\n\nEditing user (party) account information\nChanging a user’s parent (sponsor) and child (affiliate) links\nGranting or removing system-wide access privileges\nResetting user passwords\nMonitoring and managing the health of the system as a whole, including restarting stalled video transcoding jobs via an admin dashboard\nGenerating email related to the process for requesting authorization from an institution for specific users\n\n\n\nUser\nThe system supports user accounts with the following features and privileges:\n\nAccount creation\nRequesting authorization from an institution or individual (party)\nEditing user profile information (ORCID, web site, social media, additional email accounts, department)\nTwo tiers of access: Authorized Investigators and Affiliates.1.\n\nAuthorized Investigators are specifically linked to an authorizing institution (party) when the Super User establishes that link. Authorized Investigators can:\n\nCreate, edit, share, and unshare volumes\nCreate, edit, and delete sessions (slots) in volumes they own or co-own\nUpload, download, modify, and delete files (assets) in sessions in volumes they own or co-own\nModify which other users (Authorized Investigators or Affiliates) have access to a volume, session (slot), or file (asset); this includes removing access.\nWith regard to Affiliate, Authorized Investigators determine:\n\nThe Affiliate’s level of access to all of Databrary (no access or full access to shared data)\nThe Affiliate’s level of access to the Authorized Investigator’s data (no access; read-only access; read/write access; manager access)\n\nModify the level (sharing release level) assigned to a session (slot) or file (asset)\n\nAffiliates privileges to access restricted data on Databrary are specifically linked to one or more Authorized Investigators. The Authorized Investigator controls that link. Links should expire on a regular (timed) basis. When linked to an Authorized Investigator, Affiliates have the level of access granted by that Authorized Investigator to i) Databrary as a whole (default is none) and ii) to specific volumes owned by the Authorized Investigator.\n\n\n\n\n\nVolume Sharing Levels\n\nSee more-information/definitions.\nPrivate\nVolume Overview\nEntire Volume Shared\n\nAn Authorized Investigator has a private page that combines personal profile information and a dashboard with information about volumes, sponsors, and affiliates.\n The Dashboard consists of two columns. The left column provides information about Volumes the Authorized Investigator has created or has access to.\nThe following figure illustrates that the Volume has “Entire Volume Shared” status (unlocked lock icon; “Share Entire Volume” tooltip).\n Also, on this Volume, the user has “Investigator” status, meaning that the data can be fully edited and shared with others, as indicated by the tooltip and the crown icon):\n\nSome volumes are Private (locked lock icon), accessible only to the researcher and specific Affiliates (network icon).\n\n\nThis user also has volumes with Volume Overview Shared as indicated by the keyhole icon:\n\nSome other Authorized Investigators have also given this user read-write (pencil icon) status to their volumes that have Volume Overview Shared status:\n\nAnd still other Authorized Investigators have given this user read-only (eyeglasses icon) privileges:\n\nIn this case, it looks like the volume has been fully shared (unlocked lock icon), so the user has full read access to the volume already. Prior to the volume being fully shared, the user had read-only access to the private data.\n\n\nUser Access Privileges\n The Authorized Investigator determines what access an Affiliate has1. Other researcher’s (shared) data on Databrary and 2. the Authorized Investigator’s (shared and private) data.\nAffiliate access expires after a user-defined date.\n\nAffiliate access to other’s data\n\nNo access (default)\nAffiliate\n\n\n\nAffiliate access to an Authorized Investigator*’s data\nA user may be given privileges to a Volume by an Authorized Investigator.\n\nNo access (default) \nRead-only access\nRead/write access\nManager\n\nRead, write, create volumes, and change volume access (change sharing)", + "text": "Frontend\n\nAngularJS 1.4\nCoffee Script 1.7.1\nJQuery 1.12.3\nStylus 0.54.5 + nib 1.1.2\n\n\n\nBackend\n\nGHC 8.0.2\nHaskell 2010\nSolr 6.6\nPostgreSQL 9.5\nFFmpeg 4.2.4\n\n\n\nApplication\nDatasets are organized into separate volumes with system-wide unique (integer) identifiers. Groups of data files related to a specific person or people (or non-human animal), a date, time, and location are grouped into sessions (slots) within a volume. Individual files (assets) of varying types are organized within a session (slot). Sessions (slots) and files (assets) are assigned system-wide unique (integer) identifiers.\nIndividual users and institutions (called parties) are assigned system-wide unique identifiers and have some overlapping data elements (e.g., prename, sortname). Access privileges are granted hierarchically in a parent/child organization. For example, Databrary is the parent of New York University (NYU); NYU is the parent of Karen Adolph and multiple other Authorized Investigators; Karen Adolph is the parent of multiple Affiliate investigators who have broad access to volumes Dr. Adolph has created. Further details about how Authorized Investigators assign access permission to Affiliates can be found in the System Roles section below.\n\n\nSharing Release Levels\nRestricted data and metadata are controlled by a specific set of sharing release levels. These levels apply at the session/slot and file/asset level. Newly uploaded files default to Private. The terminology associated with these levels, the icons used to identify the levels, and the level of user access permitted by the levels are deeply embedded in the Databrary policy framework.\n\n\nAPI\nAll Databrary frontend calls use the API. The volume/slot/asset identifier scheme described previously supports API calls of the following form:\nhttps://nyu.databrary.org/volume/1/slot/9807?asset=9200\nThis call accesses the Databrary “leaf” logo in volume 1, slot (session) 9807, with asset ID 9200. Similarly, https://nyu.databrary.org/party/12 returns information about all of the Authorized Investigators who are authorized through party 12, The Pennsylvania State University.\nMost, but not all of the Databrary API is documented. If it is necessary to change the API calls in the rewrite, then the API should be versioned, and the new system should support current API calls.\n\n\nBackend Services\nAll audio and video files uploaded automatically generate transcoding jobs that are handled by the NYU HPC.\nThe system mints a Digital Object Identifier (DOI) when a volume is shared. This must continue. Databrary piggybacks on the DOI account controlled by NYU Libraries.\nThe system generates and updates standard bibliographic citations for a volume based on volume data and metadata.\n\n\nSystem roles\n\nSuper user\nThe system supports a small number of Super User accounts. Only an existing Super User can grant Super User privileges to another account holder. Super User have the following privileges:\n\nEditing user (party) account information\nChanging a user’s parent (sponsor) and child (affiliate) links\nGranting or removing system-wide access privileges\nResetting user passwords\nMonitoring and managing the health of the system as a whole, including restarting stalled video transcoding jobs via an admin dashboard\nGenerating email related to the process for requesting authorization from an institution for specific users\n\n\n\nUser\nThe system supports user accounts with the following features and privileges:\n\nAccount creation\nRequesting authorization from an institution or individual (party)\nEditing user profile information (ORCID, web site, social media, additional email accounts, department)\nTwo tiers of access: Authorized Investigators and Affiliates.1.\n\nAuthorized Investigators are specifically linked to an authorizing institution (party) when the Super User establishes that link. Authorized Investigators can:\n\nCreate, edit, share, and unshare volumes\nCreate, edit, and delete sessions (slots) in volumes they own or co-own\nUpload, download, modify, and delete files (assets) in sessions in volumes they own or co-own\nModify which other users (Authorized Investigators or Affiliates) have access to a volume, session (slot), or file (asset); this includes removing access.\nWith regard to Affiliate, Authorized Investigators determine:\n\nThe Affiliate’s level of access to all of Databrary (no access or full access to shared data)\nThe Affiliate’s level of access to the Authorized Investigator’s data (no access; read-only access; read/write access; manager access)\n\nModify the level (sharing release level) assigned to a session (slot) or file (asset)\n\nAffiliates privileges to access restricted data on Databrary are specifically linked to one or more Authorized Investigators. The Authorized Investigator controls that link. Links should expire on a regular (timed) basis. When linked to an Authorized Investigator, Affiliates have the level of access granted by that Authorized Investigator to i) Databrary as a whole (default is none) and ii) to specific volumes owned by the Authorized Investigator.\n\n\n\n\n\nVolume Sharing Levels\n\nSee more-information/definitions.\nPrivate\nVolume Overview\nEntire Volume Shared\n\nAn Authorized Investigator has a private page that combines personal profile information and a dashboard with information about volumes, sponsors, and affiliates.\n\n\n\nRick Gilmore’s private profile and dashboard.\n\n\nThe Dashboard consists of two columns. The left column provides information about Volumes the Authorized Investigator has created or has access to.\nThe following figure illustrates that the Volume has “Entire Volume Shared” status (unlocked lock icon; “Share Entire Volume” tooltip).\n Also, on this Volume, the user has “Investigator” status, meaning that the data can be fully edited and shared with others, as indicated by the tooltip and the crown icon):\n\nSome volumes are Private (locked lock icon), accessible only to the researcher and specific Affiliates (network icon).\n\n\nThis user also has volumes with Volume Overview Shared as indicated by the keyhole icon:\n\nSome other Authorized Investigators have also given this user read-write (pencil icon) status to their volumes that have Volume Overview Shared status:\n\nAnd still other Authorized Investigators have given this user read-only (eyeglasses icon) privileges:\n\nIn this case, it looks like the volume has been fully shared (unlocked lock icon), so the user has full read access to the volume already. Prior to the volume being fully shared, the user had read-only access to the private data.\n\n\nUser Access Privileges\n The Authorized Investigator determines what access an Affiliate has1. Other researcher’s (shared) data on Databrary and 2. the Authorized Investigator’s (shared and private) data.\nAffiliate access expires after a user-defined date.\n\nAffiliate access to other’s data\n\nNo access (default)\nAffiliate\n\n\n\nAffiliate access to an Authorized Investigator*’s data\nA user may be given privileges to a Volume by an Authorized Investigator.\n\nNo access (default) \nRead-only access\nRead/write access\nManager\n\nRead, write, create volumes, and change volume access (change sharing)", "crumbs": [ "More information", "Software" diff --git a/src/.quarto/cites/index.json b/src/.quarto/cites/index.json index b2ebf61..cecefcb 100644 --- a/src/.quarto/cites/index.json +++ b/src/.quarto/cites/index.json @@ -1 +1 @@ -{"appendices/irb-application-template.qmd":[],"for-investigators/onboarding.qmd":[],"for-affiliates/edit-existing-volume-affiliates.qmd":[],"appendices/sharing-release-participants.qmd":[],"appendices/grants.qmd":[],"for-affiliates/affiliates-intro.qmd":[],"for-investigators/determine-status.qmd":[],"for-affiliates/onboarding-affiliates.qmd":[],"more-information/more-information.qmd":[],"for-investigators/background.qmd":[],"background/determine-status.qmd":[],"appendices/privacy_policy.qmd":[],"appendices/terms.qmd":[],"background/who-why.qmd":[],"appendices/post-visit-release-email.qmd":[],"for-investigators/data-sharing.qmd":[],"index.qmd":["Soska2021-mh","Adolph_KE_Gilmore_RO_Kennedy_JL2017-va","Gilmore2017-wd","Gilmore2017-wd"],"for-investigators/reusing-data.qmd":[],"for-investigators/edit-existing-volume.qmd":[],"for-affiliates/requesting-access-affiliates.qmd":[],"more-information/software.qmd":[],"background/introduction.qmd":[],"for-investigators/create-new-volume.qmd":[],"for-investigators/best-practices.qmd":[],"appendices/sharing-release-script.qmd":[],"for-institutions/background.qmd":[],"background/ethics.qmd":[],"for-affiliates/creating-new-volume-affiliates.qmd":[],"more-information/references.qmd":["Gilmore2017-wd"],"appendices/participant_info.qmd":[],"more-information/definitions.qmd":[],"for-affiliates/background.qmd":[],"for-affiliates/reusing-data-affiliates.qmd":[],"appendices/sharing-release-staff.qmd":[],"for-investigators/managing-people.qmd":[],"for-investigators/requesting-access.qmd":[],"more-information/faq.qmd":[],"appendices/access_agreement.qmd":[],"for-affiliates/Affiliates-Intro.qmd":[]} +{"for-affiliates/affiliates-intro.qmd":[],"for-investigators/determine-status.qmd":[],"for-investigators/reusing-data.qmd":[],"background/determine-status.qmd":[],"for-affiliates/onboarding-affiliates.qmd":[],"for-affiliates/creating-new-volume-affiliates.qmd":[],"index.qmd":["Soska2021-mh","Adolph_KE_Gilmore_RO_Kennedy_JL2017-va","Gilmore2017-wd","Gilmore2017-wd"],"background/introduction.qmd":[],"appendices/post-visit-release-email.qmd":[],"appendices/sharing-release-script.qmd":[],"for-investigators/managing-people.qmd":[],"more-information/definitions.qmd":[],"appendices/grants.qmd":[],"appendices/sharing-release-participants.qmd":[],"appendices/irb-application-template.qmd":[],"more-information/references.qmd":["Gilmore2017-wd"],"more-information/more-information.qmd":[],"for-investigators/onboarding.qmd":[],"more-information/software.qmd":[],"for-affiliates/Affiliates-Intro.qmd":[],"for-affiliates/requesting-access-affiliates.qmd":[],"for-affiliates/reusing-data-affiliates.qmd":[],"more-information/faq.qmd":[],"appendices/terms.qmd":[],"for-investigators/best-practices.qmd":[],"for-investigators/create-new-volume.qmd":[],"for-affiliates/background.qmd":[],"for-investigators/requesting-access.qmd":[],"for-investigators/data-sharing.qmd":[],"appendices/sharing-release-staff.qmd":[],"appendices/participant_info.qmd":[],"appendices/access_agreement.qmd":[],"for-investigators/edit-existing-volume.qmd":[],"for-investigators/background.qmd":[],"background/who-why.qmd":[],"appendices/privacy_policy.qmd":[],"for-affiliates/edit-existing-volume-affiliates.qmd":[],"background/ethics.qmd":[],"for-institutions/background.qmd":[]} diff --git a/src/.quarto/idx/more-information/software.qmd.json b/src/.quarto/idx/more-information/software.qmd.json index 861f578..b090ea3 100644 --- a/src/.quarto/idx/more-information/software.qmd.json +++ b/src/.quarto/idx/more-information/software.qmd.json @@ -1 +1 @@ -{"title":"Software","markdown":{"headingText":"Software","headingAttr":{"id":"","classes":["unnumbered"],"keyvalue":[]},"containsRefs":false,"markdown":"\nThis page describes some useful information about Databrary's software.\n\n## Databrary 1.0\n\nThe Databrary application runs on a virtual machine running CentOS managed by NYU IT.\nAutomatic transcoding of all uploaded video and audio files is handled by NYU's High Performance Computing (HPC) cluster.\nData is stored in Isilon arrays that are managed by the NYU Libraries.\n\n### Frontend\n\n- AngularJS 1.4\n- Coffee Script 1.7.1\n- JQuery 1.12.3\n- Stylus 0.54.5 + nib 1.1.2\n\n### Backend\n\n- GHC 8.0.2\n- Haskell 2010\n- Solr 6.6\n- PostgreSQL 9.5\n- FFmpeg 4.2.4\n\n### Application\n\nDatasets are organized into separate [*volumes*](references.qmd#volume) with system-wide unique (integer) identifiers. \nGroups of data files related to a specific person or people (or non-human animal), a date, time, and location are grouped into [*sessions*](references.qmd#session) ([*slots*](references.qmd#slot)) within a volume. \nIndividual files ([*assets*](definitions.qmd#asset)) of varying types are organized within a session (slot). Sessions (slots) and files (assets) are assigned system-wide unique (integer) identifiers.\n\nIndividual users and institutions (called *parties*) are assigned system-wide unique identifiers and have some overlapping data elements (e.g., prename, sortname). \nAccess privileges are granted hierarchically in a parent/child organization. \nFor example, Databrary is the parent of New York University (NYU); NYU is the parent of Karen Adolph and multiple other *Authorized Investigators*; Karen Adolph is the parent of multiple Affiliate investigators who have broad access to volumes Dr. Adolph has created. \nFurther details about how *Authorized Investigators* assign access permission to *Affiliates* can be found in the [System Roles](software.qmd#system-roles) section below.\n\n### Sharing Release Levels\n\nRestricted data and metadata are controlled by a specific set of [sharing release levels](https://databrary.org/support/irb/release-levels.html).\nThese levels apply at the session/slot and file/asset level. \nNewly uploaded files default to *Private*. \nThe [terminology](definitions.qmd) associated with these levels, the icons used to identify the levels, and the level of user access permitted by the levels are deeply embedded in the Databrary policy framework.\n\n### API\n\nAll Databrary frontend calls use the API. The volume/slot/asset identifier scheme described previously supports API calls of the following form:\n\nhttps://nyu.databrary.org/volume/1/slot/9807?asset=9200\n\nThis call accesses the Databrary “leaf” logo in volume 1, slot (session) 9807, with asset ID 9200. Similarly, https://nyu.databrary.org/party/12 returns information about all of the *Authorized Investigators* who are authorized through party 12, The Pennsylvania State University.\n\nMost, but not all of the Databrary API is [documented](https://github.com/databrary/route-doc). \nIf it is necessary to change the API calls in the rewrite, then the API should be versioned, and the new system should support current API calls.\n\n### Backend Services\n\nAll audio and video files uploaded automatically generate transcoding jobs that are handled by the NYU HPC.\n\nThe system mints a Digital Object Identifier (DOI) when a volume is shared. \nThis must continue. Databrary piggybacks on the DOI account controlled by NYU Libraries. \n\nThe system generates and updates standard bibliographic citations for a volume based on volume data and metadata.\n\n### System roles\n\n#### Super user\n\nThe system supports a small number of *Super User* accounts. \nOnly an existing *Super User* can grant *Super User* privileges to another account holder. \n*Super User* have the following privileges:\n\n- Editing user (party) account information\n- Changing a user’s parent (sponsor) and child (affiliate) links\n- Granting or removing system-wide access privileges\n- Resetting user passwords\n- Monitoring and managing the health of the system as a whole, including restarting stalled video transcoding jobs via an admin dashboard\n- Generating email related to the process for requesting authorization from an institution for specific users\n\n#### User\n\nThe system supports user accounts with the following features and privileges:\n\n- Account creation\n- Requesting authorization from an institution or individual (party)\n- Editing user profile information (ORCID, web site, social media, additional email accounts, department)\n- Two tiers of access: [*Authorized Investigators*](definitions.qmd#authorized-investigator) and [*Affiliates*](definitions.qmd#affiliate).^[*Affiliates* will be replaced by new term: *Sponsored Researchers* in Databrary 2.0].\n - *Authorized Investigators* are specifically linked to an authorizing institution (party) when the Super User establishes that link. *Authorized Investigators* can:\n - Create, edit, share, and unshare volumes\n - Create, edit, and delete sessions (slots) in volumes they own or co-own\n - Upload, download, modify, and delete files (assets) in sessions in volumes they own or co-own\n - Modify which other users (*Authorized Investigators* or *Affiliates*) have access to a volume, session (slot), or file (asset); this includes removing access.\n - With regard to *Affiliate*, *Authorized Investigator*s determine:\n - The *Affiliate*'s level of access to all of Databrary (no access or full access to shared data)\n - The *Affiliate*’s level of access to the *Authorized Investigator*’s data (no access; read-only access; read/write access; manager access)\n - Modify the level (sharing release level) assigned to a session (slot) or file (asset)\n - *Affiliates* privileges to access restricted data on Databrary are specifically linked to one or more *Authorized Investigator*s. The *Authorized Investigator* controls that link. Links should expire on a regular (timed) basis. When linked to an *Authorized Investigator*, *Affiliate*s have the level of access granted by that *Authorized Investigator* to i) Databrary as a whole (default is none) and ii) to specific volumes owned by the *Authorized Investigator*.\n \n### Volume Sharing Levels\n\n- See [more-information/definitions](definitions.qmd#volume-sharing-levels).\n- Private\n- Volume Overview\n- Entire Volume Shared\n\nAn *Authorized Investigator* has a private page that combines personal profile information and a dashboard with information about volumes, sponsors, and affiliates.\n\n![Rick Gilmore's *private* profile and dashboard.](../include/img/db-gilmore-private-profile-dashboard.png)\nThe Dashboard consists of two columns.\nThe left column provides information about *Volumes* the *Authorized Investigator* has created or has access to.\n\nThe following figure illustrates that the Volume has \"Entire Volume Shared\" status (unlocked lock icon; \"Share Entire Volume\" tooltip).\n\n![](../include/img/db-gilmore-dashboard-shared-vol.png)\nAlso, on this *Volume*, the user has \"Investigator\" status, meaning that the data can be fully edited and shared with others, as indicated by the tooltip and the crown icon):\n\n![](../include/img/db-gilmore-dashboard-shared-read-write-share.png)\n\nSome volumes are *Private* (locked lock icon), accessible only to the researcher and specific *Affiliates* (network icon).\n\n![](../include/img/db-gilmore-dashboard-private-vol-affiliates-access.png)\n\n![](../include/img/db-gilmore-dashboard-private-vol-show-group-affiliates.png)\n\nThis user also has volumes with *Volume Overview Shared* as indicated by the keyhole icon:\n\n![](../include/img/db-gilmore-dashboard-volume-overview.png)\n\nSome other *Authorized Investigators* have also given this user read-write (pencil icon) status to their volumes that have *Volume Overview Shared* status:\n\n![](../include/img/db-gilmore-dashboard-volume-overview-read-only.png)\n\nAnd still other *Authorized Investigators* have given this user read-only (eyeglasses icon) privileges:\n\n![](../include/img/db-gilmore-dashboard-volume-read-only.png)\n\nIn this case, it looks like the volume has been fully shared (unlocked lock icon), so the user has full read access to the volume already.\nPrior to the volume being fully shared, the user had read-only access to the private data.\n\n### User Access Privileges\n\n![](../include/img/db-authorized-investigator-manage-affiliates.png)\nThe *Authorized Investigator* determines what access an *Affiliate* has1. Other researcher's (shared) data on Databrary and 2. the Authorized Investigator's (shared and private) data.\n\n*Affiliate* access expires after a user-defined date.\n\n#### *Affiliate* access to other's data\n\n- *No access* (default)\n- *Affiliate*\n\n#### *Affiliate access to an *Authorized Investigator*'s data\n\nA user may be given privileges to a Volume by an *Authorized Investigator*.\n\n- *No access* (default)\n\n\n- *Read-only access*\n- *Read/write access*\n- *Manager*\n - Read, write, create volumes, and change volume access (change sharing)\n\n## Databrary 2.0\n\nAs of April 2024, Databrary has begun a rewrite led by [Montrose Software](https://montrosesoftware.com).\n\nWe are making use of two (currently private) repositories for the rewrite:\n\n- [frontend_2.0](https://github.com/databrary/frontend_2.0)\n- [backend_2.0](https://github.com/databrary/backend_2.0)\n\nOnce licensing discussions have concluded, we may make the repositories public.\n\n### Ideation\n\nThe following are proposals, but not requirements for Databrary 2.0.\n\n### User Access Privileges\n\n~~*Affiliate*~~ *Supervised Researcher* access expires after a user-defined date that is no longer than one year from the date of the last update.\n\n#### *Affiliate access to an *Authorized Investigator's* data\n\nA user may be given privileges to a Volume by an *Authorized Investigator*.\n\n- *No access* (default)\n\n\n- *Read-only access*\n- *Read/write access*\n- *Manager*\n - Read, write, create **Private** volumes~~, and change volume access (change sharing)~~\n\n#### Volumes\n\n- (New) Set default visibility/access to *Private* (not *Volume Overview*)\n- (New) Only *Authorized Investigators* with *Investigator* privileges can delete a *Private* *Volume*.\n- (New) Shared (*Volume Overview* or *Entire Volume Shared*) *Volumes* may **hide** data but not delete the volume. Hidden volumes will have the following message: \"This volume was hidden on by .\"\n - Can one *Authorized Investigator* hide a volume, or must all *Authorized Investigators* with share privileges agree?\n \n### Requirements\n\nThis section provides additional information about the requirements for specific workflows in the Databrary 2.0 application\n\n#### Schema\n\nThe Databrary 1.0 schema can be found [here](https://github.com/databrary/databrary/tree/master/schema).\n\nMontrose ^[2024-04-17 meeting] recommends that we implement separate tables for `individuals` and `institutions`.\nThese entities are combined into a single `party` table in the current schema.\n\n#### Registration workflow\n\nRegistration consists of multiple steps.\nThe following shows requested modifications to the Databrary 1.0 workflow.\n\n##### Create Account\n\nThe reference page for the Databrary 1.0 registration process is here:\n\n![](../include/img/db-create-account.JPG)\n\nFields are as follows:\n\n- *First and Middle Name* (required)\n- *Last Name* (required)\n- *Email* (required)\n - Add instruction text that specifies an official institutional email must be used for this field (e.g., \\@psu.edu).\n - Implement email validation (against existing database of valid institutional email, flag \\@gmail.com, etc.)\n - Permit free-text email if validation fails\n- *Affiliation* (required)\n - Type-ahead search of existing database of authorized Institutions.\n - If no matching institution exists, the user can enter a new institution, but should be notified.\n - Change label to *Institutional Affiliation*.\n \n#### Get Started\n\n![Get Started panel](../include/img/db-get-started.JPG)\n\n- Require user to confirm that they have read and agree to the Databrary Access Agreement.\n- Link to the Terms and Conditions of Use.\n\n#### Confirm email\n\n![Confirm Email panel](../include/img/db-confirm-email.JPG)\n\n#### Set Password\n\n![Databrary Set Password panel](../include/img/db-set-password.JPG){fig-align=\"center\"}\n\n- Require strong password (increase number of required characters from 7 to 14 characters. ^[https://www.nyu.edu/life/information-technology/safe-computing/protect-your-privacy/secure-your-passwords.html]\n- Validate password to ensure that password is strong\n\n#### Request Authorization\n\n![Databrary Set Password panel](../include/img/db-request-authorization.JPG){fig-align=\"center\"}\n\n- Add *new* drop-down menu for *new* `user_position` field that requires users to enter their position at their institution. The acceptable values for this field are as follows:\n - Faculty/Independent Researcher\n - Student\n - Staff\n - Other\n- If `user_position` is in {'Student', 'Staff', 'Other'}\n - Show `research_sponsor` text field\n - Add instruction text asking user to type the name of the person who is their research sponsor or supervisor; the entered text should use look-ahead search to match to Authorized Investigators currently active on Databrary at the user's specified institution.\n - If the search succeeds, the user can select the name of their research sponsor.\n - Generate a request for authorization from the current user to the research sponsor; cc the current user.\n - Provide the user feedback that this request has been sent.\n - If the search fails, the user can enter the name of their research sponsor, but warning text appears: \"This research sponsor cannot be found.\"\n - Ask the user to enter their research sponsor's institutional email address.\n - Validate that address as above.\n - Confirm that the user wants Databrary to send a request to register email to the user's research sponsor.\n - If yes, send the email to the research sponsor and cc the current user.\n - **TO-DO**: Draft this email.\n- If `user_position` is \"Faculty/Independent Researcher\"\n - Show *new* text field `user_institutional_profile` and ask user to enter the URL for their institutional profile page.\n - Add explanatory text: \"Databrary requires that we confirm a new user is eligible for Authorized Investigator status. Please provide a URL to your personal profile page at your institution to assist us in verifying your status.\"\n - If user's institution is *not* in Databrary's database of authorizing institutions...\n - Ask user to enter information into two *new* (optional) text fields: `institution_authorizing_official_full_name` for the full name of the institution's authorizing official and `institution_authorizing_official_email` for that person's email.\n - If user's institution is in the Databrary database of authorizing institutions...\n - Show text saying \"`institution` has active users on Databrary. Here is a link to other users from `institution` on Databrary: . Our staff will work with you and your institution to expedite your authorization.\"\n \n### Scoping issues\n\nWhile the core of Databrary 1.0 is understood and will be replicated in the new version, some questions will be explored that relate to new features:\n\n- Should video and audio transcoding be automatic or optional; if optional, how can transcoding be triggered?\n- What features of the existing session/slot spreadsheet interface for managing and visualizing demographic data can be implemented easily and at minimal cost using existing libraries?\n- ~~Can two-factor authentication be added? If so, at what cost?~~^[2024-04-17 determined that 2FA via email and SMS should be implemented.]\n- Can per-institution (across users and projects), per-user (across projects) or per-project storage quotas be implemented? Can warnings be generated when storage amounts are nearing quotas? How could Super Users manage user requests to increase quotas?\n- Can a more informative administrative console be developed with by-volume, usage, and storage metrics, including shared vs. unshared data? If so, at what cost?\n\n### Roadmap\n\n- \"Virtual volumes\" or cloned/copied datasets with links to original sources.\n- More file-, session-, volume-, researcher-, and institution- analytics.\n- Private volumes for peer review.\n\n","srcMarkdownNoYaml":""},"formats":{"html":{"identifier":{"display-name":"HTML","target-format":"html","base-format":"html"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":"none","code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":"auto","merge-includes":true,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[],"notebook-links":true},"pandoc":{"standalone":true,"wrap":"none","default-image-extension":"png","to":"html","css":["../include/css/style.css"],"toc":true,"toc-depth":4,"output-file":"software.html"},"language":{"toc-title-document":"Table of contents","toc-title-website":"On this page","related-formats-title":"Other Formats","related-notebooks-title":"Notebooks","source-notebooks-prefix":"Source","other-links-title":"Other Links","code-links-title":"Code Links","launch-dev-container-title":"Launch Dev Container","launch-binder-title":"Launch Binder","article-notebook-label":"Article Notebook","notebook-preview-download":"Download Notebook","notebook-preview-download-src":"Download Source","notebook-preview-back":"Back to Article","manuscript-meca-bundle":"MECA Bundle","section-title-abstract":"Abstract","section-title-appendices":"Appendices","section-title-footnotes":"Footnotes","section-title-references":"References","section-title-reuse":"Reuse","section-title-copyright":"Copyright","section-title-citation":"Citation","appendix-attribution-cite-as":"For attribution, please cite this work as:","appendix-attribution-bibtex":"BibTeX citation:","title-block-author-single":"Author","title-block-author-plural":"Authors","title-block-affiliation-single":"Affiliation","title-block-affiliation-plural":"Affiliations","title-block-published":"Published","title-block-modified":"Modified","title-block-keywords":"Keywords","callout-tip-title":"Tip","callout-note-title":"Note","callout-warning-title":"Warning","callout-important-title":"Important","callout-caution-title":"Caution","code-summary":"Code","code-tools-menu-caption":"Code","code-tools-show-all-code":"Show All Code","code-tools-hide-all-code":"Hide All Code","code-tools-view-source":"View Source","code-tools-source-code":"Source Code","tools-share":"Share","tools-download":"Download","code-line":"Line","code-lines":"Lines","copy-button-tooltip":"Copy to Clipboard","copy-button-tooltip-success":"Copied!","repo-action-links-edit":"Edit this page","repo-action-links-source":"View source","repo-action-links-issue":"Report an issue","back-to-top":"Back to top","search-no-results-text":"No results","search-matching-documents-text":"matching documents","search-copy-link-title":"Copy link to search","search-hide-matches-text":"Hide additional matches","search-more-match-text":"more match in this document","search-more-matches-text":"more matches in this document","search-clear-button-title":"Clear","search-text-placeholder":"","search-detached-cancel-button-title":"Cancel","search-submit-button-title":"Submit","search-label":"Search","toggle-section":"Toggle section","toggle-sidebar":"Toggle sidebar navigation","toggle-dark-mode":"Toggle dark mode","toggle-reader-mode":"Toggle reader mode","toggle-navigation":"Toggle navigation","crossref-fig-title":"Figure","crossref-tbl-title":"Table","crossref-lst-title":"Listing","crossref-thm-title":"Theorem","crossref-lem-title":"Lemma","crossref-cor-title":"Corollary","crossref-prp-title":"Proposition","crossref-cnj-title":"Conjecture","crossref-def-title":"Definition","crossref-exm-title":"Example","crossref-exr-title":"Exercise","crossref-ch-prefix":"Chapter","crossref-apx-prefix":"Appendix","crossref-sec-prefix":"Section","crossref-eq-prefix":"Equation","crossref-lof-title":"List of Figures","crossref-lot-title":"List of Tables","crossref-lol-title":"List of Listings","environment-proof-title":"Proof","environment-remark-title":"Remark","environment-solution-title":"Solution","listing-page-order-by":"Order By","listing-page-order-by-default":"Default","listing-page-order-by-date-asc":"Oldest","listing-page-order-by-date-desc":"Newest","listing-page-order-by-number-desc":"High to Low","listing-page-order-by-number-asc":"Low to High","listing-page-field-date":"Date","listing-page-field-title":"Title","listing-page-field-description":"Description","listing-page-field-author":"Author","listing-page-field-filename":"File Name","listing-page-field-filemodified":"Modified","listing-page-field-subtitle":"Subtitle","listing-page-field-readingtime":"Reading Time","listing-page-field-wordcount":"Word Count","listing-page-field-categories":"Categories","listing-page-minutes-compact":"{0} min","listing-page-category-all":"All","listing-page-no-matches":"No matching items","listing-page-words":"{0} words"},"metadata":{"lang":"en","fig-responsive":true,"quarto-version":"1.4.549","bibliography":["../include/bib/packages.bib","../include/bib/references.bib"],"bibliography-style":"apa","theme":"cosmo","number_sections":false,"csl":"../include/bib/apa.csl","citations-hover":true,"footnotes-hover":true},"extensions":{"book":{"multiFile":true}}},"epub":{"identifier":{"display-name":"ePub","target-format":"epub","base-format":"epub"},"execute":{"fig-width":5,"fig-height":4,"fig-format":"png","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"epub","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":"none","code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":true,"merge-includes":false,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[]},"pandoc":{"default-image-extension":"png","html-math-method":"mathml","to":"epub","output-file":"software.epub"},"language":{"toc-title-document":"Table of contents","toc-title-website":"On this page","related-formats-title":"Other Formats","related-notebooks-title":"Notebooks","source-notebooks-prefix":"Source","other-links-title":"Other Links","code-links-title":"Code Links","launch-dev-container-title":"Launch Dev Container","launch-binder-title":"Launch Binder","article-notebook-label":"Article Notebook","notebook-preview-download":"Download Notebook","notebook-preview-download-src":"Download Source","notebook-preview-back":"Back to Article","manuscript-meca-bundle":"MECA Bundle","section-title-abstract":"Abstract","section-title-appendices":"Appendices","section-title-footnotes":"Footnotes","section-title-references":"References","section-title-reuse":"Reuse","section-title-copyright":"Copyright","section-title-citation":"Citation","appendix-attribution-cite-as":"For attribution, please cite this work as:","appendix-attribution-bibtex":"BibTeX citation:","title-block-author-single":"Author","title-block-author-plural":"Authors","title-block-affiliation-single":"Affiliation","title-block-affiliation-plural":"Affiliations","title-block-published":"Published","title-block-modified":"Modified","title-block-keywords":"Keywords","callout-tip-title":"Tip","callout-note-title":"Note","callout-warning-title":"Warning","callout-important-title":"Important","callout-caution-title":"Caution","code-summary":"Code","code-tools-menu-caption":"Code","code-tools-show-all-code":"Show All Code","code-tools-hide-all-code":"Hide All Code","code-tools-view-source":"View Source","code-tools-source-code":"Source Code","tools-share":"Share","tools-download":"Download","code-line":"Line","code-lines":"Lines","copy-button-tooltip":"Copy to Clipboard","copy-button-tooltip-success":"Copied!","repo-action-links-edit":"Edit this page","repo-action-links-source":"View source","repo-action-links-issue":"Report an issue","back-to-top":"Back to top","search-no-results-text":"No results","search-matching-documents-text":"matching documents","search-copy-link-title":"Copy link to search","search-hide-matches-text":"Hide additional matches","search-more-match-text":"more match in this document","search-more-matches-text":"more matches in this document","search-clear-button-title":"Clear","search-text-placeholder":"","search-detached-cancel-button-title":"Cancel","search-submit-button-title":"Submit","search-label":"Search","toggle-section":"Toggle section","toggle-sidebar":"Toggle sidebar navigation","toggle-dark-mode":"Toggle dark mode","toggle-reader-mode":"Toggle reader mode","toggle-navigation":"Toggle navigation","crossref-fig-title":"Figure","crossref-tbl-title":"Table","crossref-lst-title":"Listing","crossref-thm-title":"Theorem","crossref-lem-title":"Lemma","crossref-cor-title":"Corollary","crossref-prp-title":"Proposition","crossref-cnj-title":"Conjecture","crossref-def-title":"Definition","crossref-exm-title":"Example","crossref-exr-title":"Exercise","crossref-ch-prefix":"Chapter","crossref-apx-prefix":"Appendix","crossref-sec-prefix":"Section","crossref-eq-prefix":"Equation","crossref-lof-title":"List of Figures","crossref-lot-title":"List of Tables","crossref-lol-title":"List of Listings","environment-proof-title":"Proof","environment-remark-title":"Remark","environment-solution-title":"Solution","listing-page-order-by":"Order By","listing-page-order-by-default":"Default","listing-page-order-by-date-asc":"Oldest","listing-page-order-by-date-desc":"Newest","listing-page-order-by-number-desc":"High to Low","listing-page-order-by-number-asc":"Low to High","listing-page-field-date":"Date","listing-page-field-title":"Title","listing-page-field-description":"Description","listing-page-field-author":"Author","listing-page-field-filename":"File Name","listing-page-field-filemodified":"Modified","listing-page-field-subtitle":"Subtitle","listing-page-field-readingtime":"Reading Time","listing-page-field-wordcount":"Word Count","listing-page-field-categories":"Categories","listing-page-minutes-compact":"{0} min","listing-page-category-all":"All","listing-page-no-matches":"No matching items","listing-page-words":"{0} words"},"metadata":{"bibliography":["../include/bib/packages.bib","../include/bib/references.bib"],"bibliography-style":"apa","cover-image":"img/databrary-nav-sm.jpg"},"extensions":{"book":{"selfContainedOutput":true}}}},"projectFormats":["html","epub"]} \ No newline at end of file +{"title":"Software","markdown":{"headingText":"Software","headingAttr":{"id":"","classes":["unnumbered"],"keyvalue":[]},"containsRefs":false,"markdown":"\nThis page describes some useful information about Databrary's software.\n\n## Databrary 1.0\n\nThe Databrary application runs on a virtual machine running CentOS managed by NYU IT.\nAutomatic transcoding of all uploaded video and audio files is handled by NYU's High Performance Computing (HPC) cluster.\nData is stored in Isilon arrays that are managed by the NYU Libraries.\n\n### Frontend\n\n- AngularJS 1.4\n- Coffee Script 1.7.1\n- JQuery 1.12.3\n- Stylus 0.54.5 + nib 1.1.2\n\n### Backend\n\n- GHC 8.0.2\n- Haskell 2010\n- Solr 6.6\n- PostgreSQL 9.5\n- FFmpeg 4.2.4\n\n### Application\n\nDatasets are organized into separate [*volumes*](references.qmd#volume) with system-wide unique (integer) identifiers. \nGroups of data files related to a specific person or people (or non-human animal), a date, time, and location are grouped into [*sessions*](references.qmd#session) ([*slots*](references.qmd#slot)) within a volume. \nIndividual files ([*assets*](definitions.qmd#asset)) of varying types are organized within a session (slot). Sessions (slots) and files (assets) are assigned system-wide unique (integer) identifiers.\n\nIndividual users and institutions (called *parties*) are assigned system-wide unique identifiers and have some overlapping data elements (e.g., prename, sortname). \nAccess privileges are granted hierarchically in a parent/child organization. \nFor example, Databrary is the parent of New York University (NYU); NYU is the parent of Karen Adolph and multiple other *Authorized Investigators*; Karen Adolph is the parent of multiple Affiliate investigators who have broad access to volumes Dr. Adolph has created. \nFurther details about how *Authorized Investigators* assign access permission to *Affiliates* can be found in the [System Roles](software.qmd#system-roles) section below.\n\n### Sharing Release Levels\n\nRestricted data and metadata are controlled by a specific set of [sharing release levels](https://databrary.org/support/irb/release-levels.html).\nThese levels apply at the session/slot and file/asset level. \nNewly uploaded files default to *Private*. \nThe [terminology](definitions.qmd) associated with these levels, the icons used to identify the levels, and the level of user access permitted by the levels are deeply embedded in the Databrary policy framework.\n\n### API\n\nAll Databrary frontend calls use the API. The volume/slot/asset identifier scheme described previously supports API calls of the following form:\n\nhttps://nyu.databrary.org/volume/1/slot/9807?asset=9200\n\nThis call accesses the Databrary “leaf” logo in volume 1, slot (session) 9807, with asset ID 9200. Similarly, https://nyu.databrary.org/party/12 returns information about all of the *Authorized Investigators* who are authorized through party 12, The Pennsylvania State University.\n\nMost, but not all of the Databrary API is [documented](https://github.com/databrary/route-doc). \nIf it is necessary to change the API calls in the rewrite, then the API should be versioned, and the new system should support current API calls.\n\n### Backend Services\n\nAll audio and video files uploaded automatically generate transcoding jobs that are handled by the NYU HPC.\n\nThe system mints a Digital Object Identifier (DOI) when a volume is shared. \nThis must continue. Databrary piggybacks on the DOI account controlled by NYU Libraries. \n\nThe system generates and updates standard bibliographic citations for a volume based on volume data and metadata.\n\n### System roles\n\n#### Super user\n\nThe system supports a small number of *Super User* accounts. \nOnly an existing *Super User* can grant *Super User* privileges to another account holder. \n*Super User* have the following privileges:\n\n- Editing user (party) account information\n- Changing a user’s parent (sponsor) and child (affiliate) links\n- Granting or removing system-wide access privileges\n- Resetting user passwords\n- Monitoring and managing the health of the system as a whole, including restarting stalled video transcoding jobs via an admin dashboard\n- Generating email related to the process for requesting authorization from an institution for specific users\n\n#### User\n\nThe system supports user accounts with the following features and privileges:\n\n- Account creation\n- Requesting authorization from an institution or individual (party)\n- Editing user profile information (ORCID, web site, social media, additional email accounts, department)\n- Two tiers of access: [*Authorized Investigators*](definitions.qmd#authorized-investigator) and [*Affiliates*](definitions.qmd#affiliate).^[*Affiliates* will be replaced by new term: *Sponsored Researchers* in Databrary 2.0].\n - *Authorized Investigators* are specifically linked to an authorizing institution (party) when the Super User establishes that link. *Authorized Investigators* can:\n - Create, edit, share, and unshare volumes\n - Create, edit, and delete sessions (slots) in volumes they own or co-own\n - Upload, download, modify, and delete files (assets) in sessions in volumes they own or co-own\n - Modify which other users (*Authorized Investigators* or *Affiliates*) have access to a volume, session (slot), or file (asset); this includes removing access.\n - With regard to *Affiliate*, *Authorized Investigator*s determine:\n - The *Affiliate*'s level of access to all of Databrary (no access or full access to shared data)\n - The *Affiliate*’s level of access to the *Authorized Investigator*’s data (no access; read-only access; read/write access; manager access)\n - Modify the level (sharing release level) assigned to a session (slot) or file (asset)\n - *Affiliates* privileges to access restricted data on Databrary are specifically linked to one or more *Authorized Investigator*s. The *Authorized Investigator* controls that link. Links should expire on a regular (timed) basis. When linked to an *Authorized Investigator*, *Affiliate*s have the level of access granted by that *Authorized Investigator* to i) Databrary as a whole (default is none) and ii) to specific volumes owned by the *Authorized Investigator*.\n \n### Volume Sharing Levels\n\n- See [more-information/definitions](definitions.qmd#volume-sharing-levels).\n- Private\n- Volume Overview\n- Entire Volume Shared\n\nAn *Authorized Investigator* has a private page that combines personal profile information and a dashboard with information about volumes, sponsors, and affiliates.\n\n![Rick Gilmore's *private* profile and dashboard.](../include/img/db-gilmore-private-profile-dashboard.png)\n\nThe Dashboard consists of two columns.\nThe left column provides information about *Volumes* the *Authorized Investigator* has created or has access to.\n\nThe following figure illustrates that the Volume has \"Entire Volume Shared\" status (unlocked lock icon; \"Share Entire Volume\" tooltip).\n\n![](../include/img/db-gilmore-dashboard-shared-vol.png)\nAlso, on this *Volume*, the user has \"Investigator\" status, meaning that the data can be fully edited and shared with others, as indicated by the tooltip and the crown icon):\n\n![](../include/img/db-gilmore-dashboard-shared-read-write-share.png)\n\nSome volumes are *Private* (locked lock icon), accessible only to the researcher and specific *Affiliates* (network icon).\n\n![](../include/img/db-gilmore-dashboard-private-vol-affiliates-access.png)\n\n![](../include/img/db-gilmore-dashboard-private-vol-show-group-affiliates.png)\n\nThis user also has volumes with *Volume Overview Shared* as indicated by the keyhole icon:\n\n![](../include/img/db-gilmore-dashboard-volume-overview.png)\n\nSome other *Authorized Investigators* have also given this user read-write (pencil icon) status to their volumes that have *Volume Overview Shared* status:\n\n![](../include/img/db-gilmore-dashboard-volume-overview-read-write.png)\n\nAnd still other *Authorized Investigators* have given this user read-only (eyeglasses icon) privileges:\n\n![](../include/img/db-gilmore-dashboard-volume-read-only.png)\n\nIn this case, it looks like the volume has been fully shared (unlocked lock icon), so the user has full read access to the volume already.\nPrior to the volume being fully shared, the user had read-only access to the private data.\n\n### User Access Privileges\n\n![](../include/img/db-authorized-investigator-manage-affiliates.png)\nThe *Authorized Investigator* determines what access an *Affiliate* has1. Other researcher's (shared) data on Databrary and 2. the Authorized Investigator's (shared and private) data.\n\n*Affiliate* access expires after a user-defined date.\n\n#### *Affiliate* access to other's data\n\n- *No access* (default)\n- *Affiliate*\n\n#### *Affiliate access to an *Authorized Investigator*'s data\n\nA user may be given privileges to a Volume by an *Authorized Investigator*.\n\n- *No access* (default)\n\n\n- *Read-only access*\n- *Read/write access*\n- *Manager*\n - Read, write, create volumes, and change volume access (change sharing)\n\n## Databrary 2.0\n\nAs of April 2024, Databrary has begun a rewrite led by [Montrose Software](https://montrosesoftware.com).\n\nWe are making use of two (currently private) repositories for the rewrite:\n\n- [frontend_2.0](https://github.com/databrary/frontend_2.0)\n- [backend_2.0](https://github.com/databrary/backend_2.0)\n\nOnce licensing discussions have concluded, we may make the repositories public.\n\n### Ideation\n\nThe following are proposals, but not requirements for Databrary 2.0.\n\n### User Access Privileges\n\n~~*Affiliate*~~ *Supervised Researcher* access expires after a user-defined date that is no longer than one year from the date of the last update.\n\n#### *Affiliate access to an *Authorized Investigator's* data\n\nA user may be given privileges to a Volume by an *Authorized Investigator*.\n\n- *No access* (default)\n\n\n- *Read-only access*\n- *Read/write access*\n- *Manager*\n - Read, write, create **Private** volumes~~, and change volume access (change sharing)~~\n\n#### Volumes\n\n- (New) Set default visibility/access to *Private* (not *Volume Overview*)\n- (New) Only *Authorized Investigators* with *Investigator* privileges can delete a *Private* *Volume*.\n- (New) Shared (*Volume Overview* or *Entire Volume Shared*) *Volumes* may **hide** data but not delete the volume. Hidden volumes will have the following message: \"This volume was hidden on by .\"\n - Can one *Authorized Investigator* hide a volume, or must all *Authorized Investigators* with share privileges agree?\n \n### Requirements\n\nThis section provides additional information about the requirements for specific workflows in the Databrary 2.0 application\n\n#### Schema\n\nThe Databrary 1.0 schema can be found [here](https://github.com/databrary/databrary/tree/master/schema).\n\nMontrose ^[2024-04-17 meeting] recommends that we implement separate tables for `individuals` and `institutions`.\nThese entities are combined into a single `party` table in the current schema.\n\n#### Registration workflow\n\nRegistration consists of multiple steps.\nThe following shows requested modifications to the Databrary 1.0 workflow.\n\n##### Create Account\n\nThe reference page for the Databrary 1.0 registration process is here:\n\n![](../include/img/db-create-account.JPG)\n\nFields are as follows:\n\n- *First and Middle Name* (required)\n- *Last Name* (required)\n- *Email* (required)\n - Add instruction text that specifies an official institutional email must be used for this field (e.g., \\@psu.edu).\n - Implement email validation (against existing database of valid institutional email, flag \\@gmail.com, etc.)\n - Permit free-text email if validation fails\n- *Affiliation* (required)\n - Type-ahead search of existing database of authorized Institutions.\n - If no matching institution exists, the user can enter a new institution, but should be notified.\n - Change label to *Institutional Affiliation*.\n \n#### Get Started\n\n![Get Started panel](../include/img/db-get-started.JPG)\n\n- Require user to confirm that they have read and agree to the Databrary Access Agreement.\n- Link to the Terms and Conditions of Use.\n\n#### Confirm email\n\n![Confirm Email panel](../include/img/db-confirm-email.JPG)\n\n#### Set Password\n\n![Databrary Set Password panel](../include/img/db-set-password.JPG){fig-align=\"center\"}\n\n- Require strong password (increase number of required characters from 7 to 14 characters. ^[https://www.nyu.edu/life/information-technology/safe-computing/protect-your-privacy/secure-your-passwords.html]\n- Validate password to ensure that password is strong\n\n#### Request Authorization\n\n![Databrary Set Password panel](../include/img/db-request-authorization.JPG){fig-align=\"center\"}\n\n- Add *new* drop-down menu for *new* `user_position` field that requires users to enter their position at their institution. The acceptable values for this field are as follows:\n - Faculty/Independent Researcher\n - Student\n - Staff\n - Other\n- If `user_position` is in {'Student', 'Staff', 'Other'}\n - Show `research_sponsor` text field\n - Add instruction text asking user to type the name of the person who is their research sponsor or supervisor; the entered text should use look-ahead search to match to Authorized Investigators currently active on Databrary at the user's specified institution.\n - If the search succeeds, the user can select the name of their research sponsor.\n - Generate a request for authorization from the current user to the research sponsor; cc the current user.\n - Provide the user feedback that this request has been sent.\n - If the search fails, the user can enter the name of their research sponsor, but warning text appears: \"This research sponsor cannot be found.\"\n - Ask the user to enter their research sponsor's institutional email address.\n - Validate that address as above.\n - Confirm that the user wants Databrary to send a request to register email to the user's research sponsor.\n - If yes, send the email to the research sponsor and cc the current user.\n - **TO-DO**: Draft this email.\n- If `user_position` is \"Faculty/Independent Researcher\"\n - Show *new* text field `user_institutional_profile` and ask user to enter the URL for their institutional profile page.\n - Add explanatory text: \"Databrary requires that we confirm a new user is eligible for Authorized Investigator status. Please provide a URL to your personal profile page at your institution to assist us in verifying your status.\"\n - If user's institution is *not* in Databrary's database of authorizing institutions...\n - Ask user to enter information into two *new* (optional) text fields: `institution_authorizing_official_full_name` for the full name of the institution's authorizing official and `institution_authorizing_official_email` for that person's email.\n - If user's institution is in the Databrary database of authorizing institutions...\n - Show text saying \"`institution` has active users on Databrary. Here is a link to other users from `institution` on Databrary: . Our staff will work with you and your institution to expedite your authorization.\"\n \n### Scoping issues\n\nWhile the core of Databrary 1.0 is understood and will be replicated in the new version, some questions will be explored that relate to new features:\n\n- Should video and audio transcoding be automatic or optional; if optional, how can transcoding be triggered?\n- What features of the existing session/slot spreadsheet interface for managing and visualizing demographic data can be implemented easily and at minimal cost using existing libraries?\n- ~~Can two-factor authentication be added? If so, at what cost?~~^[2024-04-17 determined that 2FA via email and SMS should be implemented.]\n- Can per-institution (across users and projects), per-user (across projects) or per-project storage quotas be implemented? Can warnings be generated when storage amounts are nearing quotas? How could Super Users manage user requests to increase quotas?\n- Can a more informative administrative console be developed with by-volume, usage, and storage metrics, including shared vs. unshared data? If so, at what cost?\n\n### Roadmap\n\n- \"Virtual volumes\" or cloned/copied datasets with links to original sources.\n- More file-, session-, volume-, researcher-, and institution- analytics.\n- Private volumes for peer review.\n\n","srcMarkdownNoYaml":""},"formats":{"html":{"identifier":{"display-name":"HTML","target-format":"html","base-format":"html"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":"none","code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":"auto","merge-includes":true,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[],"notebook-links":true},"pandoc":{"standalone":true,"wrap":"none","default-image-extension":"png","to":"html","css":["../include/css/style.css"],"toc":true,"toc-depth":4,"output-file":"software.html"},"language":{"toc-title-document":"Table of contents","toc-title-website":"On this page","related-formats-title":"Other Formats","related-notebooks-title":"Notebooks","source-notebooks-prefix":"Source","other-links-title":"Other Links","code-links-title":"Code Links","launch-dev-container-title":"Launch Dev Container","launch-binder-title":"Launch Binder","article-notebook-label":"Article Notebook","notebook-preview-download":"Download Notebook","notebook-preview-download-src":"Download Source","notebook-preview-back":"Back to Article","manuscript-meca-bundle":"MECA Bundle","section-title-abstract":"Abstract","section-title-appendices":"Appendices","section-title-footnotes":"Footnotes","section-title-references":"References","section-title-reuse":"Reuse","section-title-copyright":"Copyright","section-title-citation":"Citation","appendix-attribution-cite-as":"For attribution, please cite this work as:","appendix-attribution-bibtex":"BibTeX citation:","title-block-author-single":"Author","title-block-author-plural":"Authors","title-block-affiliation-single":"Affiliation","title-block-affiliation-plural":"Affiliations","title-block-published":"Published","title-block-modified":"Modified","title-block-keywords":"Keywords","callout-tip-title":"Tip","callout-note-title":"Note","callout-warning-title":"Warning","callout-important-title":"Important","callout-caution-title":"Caution","code-summary":"Code","code-tools-menu-caption":"Code","code-tools-show-all-code":"Show All Code","code-tools-hide-all-code":"Hide All Code","code-tools-view-source":"View Source","code-tools-source-code":"Source Code","tools-share":"Share","tools-download":"Download","code-line":"Line","code-lines":"Lines","copy-button-tooltip":"Copy to Clipboard","copy-button-tooltip-success":"Copied!","repo-action-links-edit":"Edit this page","repo-action-links-source":"View source","repo-action-links-issue":"Report an issue","back-to-top":"Back to top","search-no-results-text":"No results","search-matching-documents-text":"matching documents","search-copy-link-title":"Copy link to search","search-hide-matches-text":"Hide additional matches","search-more-match-text":"more match in this document","search-more-matches-text":"more matches in this document","search-clear-button-title":"Clear","search-text-placeholder":"","search-detached-cancel-button-title":"Cancel","search-submit-button-title":"Submit","search-label":"Search","toggle-section":"Toggle section","toggle-sidebar":"Toggle sidebar navigation","toggle-dark-mode":"Toggle dark mode","toggle-reader-mode":"Toggle reader mode","toggle-navigation":"Toggle navigation","crossref-fig-title":"Figure","crossref-tbl-title":"Table","crossref-lst-title":"Listing","crossref-thm-title":"Theorem","crossref-lem-title":"Lemma","crossref-cor-title":"Corollary","crossref-prp-title":"Proposition","crossref-cnj-title":"Conjecture","crossref-def-title":"Definition","crossref-exm-title":"Example","crossref-exr-title":"Exercise","crossref-ch-prefix":"Chapter","crossref-apx-prefix":"Appendix","crossref-sec-prefix":"Section","crossref-eq-prefix":"Equation","crossref-lof-title":"List of Figures","crossref-lot-title":"List of Tables","crossref-lol-title":"List of Listings","environment-proof-title":"Proof","environment-remark-title":"Remark","environment-solution-title":"Solution","listing-page-order-by":"Order By","listing-page-order-by-default":"Default","listing-page-order-by-date-asc":"Oldest","listing-page-order-by-date-desc":"Newest","listing-page-order-by-number-desc":"High to Low","listing-page-order-by-number-asc":"Low to High","listing-page-field-date":"Date","listing-page-field-title":"Title","listing-page-field-description":"Description","listing-page-field-author":"Author","listing-page-field-filename":"File Name","listing-page-field-filemodified":"Modified","listing-page-field-subtitle":"Subtitle","listing-page-field-readingtime":"Reading Time","listing-page-field-wordcount":"Word Count","listing-page-field-categories":"Categories","listing-page-minutes-compact":"{0} min","listing-page-category-all":"All","listing-page-no-matches":"No matching items","listing-page-words":"{0} words"},"metadata":{"lang":"en","fig-responsive":true,"quarto-version":"1.4.549","bibliography":["../include/bib/packages.bib","../include/bib/references.bib"],"bibliography-style":"apa","theme":"cosmo","number_sections":false,"csl":"../include/bib/apa.csl","citations-hover":true,"footnotes-hover":true},"extensions":{"book":{"multiFile":true}}},"epub":{"identifier":{"display-name":"ePub","target-format":"epub","base-format":"epub"},"execute":{"fig-width":5,"fig-height":4,"fig-format":"png","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"epub","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":"none","code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":true,"merge-includes":false,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[]},"pandoc":{"default-image-extension":"png","html-math-method":"mathml","to":"epub","output-file":"software.epub"},"language":{"toc-title-document":"Table of contents","toc-title-website":"On this page","related-formats-title":"Other Formats","related-notebooks-title":"Notebooks","source-notebooks-prefix":"Source","other-links-title":"Other Links","code-links-title":"Code Links","launch-dev-container-title":"Launch Dev Container","launch-binder-title":"Launch Binder","article-notebook-label":"Article Notebook","notebook-preview-download":"Download Notebook","notebook-preview-download-src":"Download Source","notebook-preview-back":"Back to Article","manuscript-meca-bundle":"MECA Bundle","section-title-abstract":"Abstract","section-title-appendices":"Appendices","section-title-footnotes":"Footnotes","section-title-references":"References","section-title-reuse":"Reuse","section-title-copyright":"Copyright","section-title-citation":"Citation","appendix-attribution-cite-as":"For attribution, please cite this work as:","appendix-attribution-bibtex":"BibTeX citation:","title-block-author-single":"Author","title-block-author-plural":"Authors","title-block-affiliation-single":"Affiliation","title-block-affiliation-plural":"Affiliations","title-block-published":"Published","title-block-modified":"Modified","title-block-keywords":"Keywords","callout-tip-title":"Tip","callout-note-title":"Note","callout-warning-title":"Warning","callout-important-title":"Important","callout-caution-title":"Caution","code-summary":"Code","code-tools-menu-caption":"Code","code-tools-show-all-code":"Show All Code","code-tools-hide-all-code":"Hide All Code","code-tools-view-source":"View Source","code-tools-source-code":"Source Code","tools-share":"Share","tools-download":"Download","code-line":"Line","code-lines":"Lines","copy-button-tooltip":"Copy to Clipboard","copy-button-tooltip-success":"Copied!","repo-action-links-edit":"Edit this page","repo-action-links-source":"View source","repo-action-links-issue":"Report an issue","back-to-top":"Back to top","search-no-results-text":"No results","search-matching-documents-text":"matching documents","search-copy-link-title":"Copy link to search","search-hide-matches-text":"Hide additional matches","search-more-match-text":"more match in this document","search-more-matches-text":"more matches in this document","search-clear-button-title":"Clear","search-text-placeholder":"","search-detached-cancel-button-title":"Cancel","search-submit-button-title":"Submit","search-label":"Search","toggle-section":"Toggle section","toggle-sidebar":"Toggle sidebar navigation","toggle-dark-mode":"Toggle dark mode","toggle-reader-mode":"Toggle reader mode","toggle-navigation":"Toggle navigation","crossref-fig-title":"Figure","crossref-tbl-title":"Table","crossref-lst-title":"Listing","crossref-thm-title":"Theorem","crossref-lem-title":"Lemma","crossref-cor-title":"Corollary","crossref-prp-title":"Proposition","crossref-cnj-title":"Conjecture","crossref-def-title":"Definition","crossref-exm-title":"Example","crossref-exr-title":"Exercise","crossref-ch-prefix":"Chapter","crossref-apx-prefix":"Appendix","crossref-sec-prefix":"Section","crossref-eq-prefix":"Equation","crossref-lof-title":"List of Figures","crossref-lot-title":"List of Tables","crossref-lol-title":"List of Listings","environment-proof-title":"Proof","environment-remark-title":"Remark","environment-solution-title":"Solution","listing-page-order-by":"Order By","listing-page-order-by-default":"Default","listing-page-order-by-date-asc":"Oldest","listing-page-order-by-date-desc":"Newest","listing-page-order-by-number-desc":"High to Low","listing-page-order-by-number-asc":"Low to High","listing-page-field-date":"Date","listing-page-field-title":"Title","listing-page-field-description":"Description","listing-page-field-author":"Author","listing-page-field-filename":"File Name","listing-page-field-filemodified":"Modified","listing-page-field-subtitle":"Subtitle","listing-page-field-readingtime":"Reading Time","listing-page-field-wordcount":"Word Count","listing-page-field-categories":"Categories","listing-page-minutes-compact":"{0} min","listing-page-category-all":"All","listing-page-no-matches":"No matching items","listing-page-words":"{0} words"},"metadata":{"bibliography":["../include/bib/packages.bib","../include/bib/references.bib"],"bibliography-style":"apa","cover-image":"img/databrary-nav-sm.jpg"},"extensions":{"book":{"selfContainedOutput":true}}}},"projectFormats":["html","epub"]} \ No newline at end of file diff --git a/src/include/img/db-gilmore-dashboard-shared-read-write-share copy.png b/src/include/img/db-gilmore-dashboard-shared-read-write-share copy.png new file mode 100644 index 0000000..4af4b2e Binary files /dev/null and b/src/include/img/db-gilmore-dashboard-shared-read-write-share copy.png differ diff --git a/src/include/img/db-gilmore-dashboard-volume-overview-read-write copy.png b/src/include/img/db-gilmore-dashboard-volume-overview-read-write copy.png new file mode 100644 index 0000000..66b1b75 Binary files /dev/null and b/src/include/img/db-gilmore-dashboard-volume-overview-read-write copy.png differ diff --git a/src/more-information/software.qmd b/src/more-information/software.qmd index e041a93..0926588 100644 --- a/src/more-information/software.qmd +++ b/src/more-information/software.qmd @@ -105,6 +105,7 @@ The system supports user accounts with the following features and privileges: An *Authorized Investigator* has a private page that combines personal profile information and a dashboard with information about volumes, sponsors, and affiliates. ![Rick Gilmore's *private* profile and dashboard.](../include/img/db-gilmore-private-profile-dashboard.png) + The Dashboard consists of two columns. The left column provides information about *Volumes* the *Authorized Investigator* has created or has access to. @@ -127,7 +128,7 @@ This user also has volumes with *Volume Overview Shared* as indicated by the key Some other *Authorized Investigators* have also given this user read-write (pencil icon) status to their volumes that have *Volume Overview Shared* status: -![](../include/img/db-gilmore-dashboard-volume-overview-read-only.png) +![](../include/img/db-gilmore-dashboard-volume-overview-read-write.png) And still other *Authorized Investigators* have given this user read-only (eyeglasses icon) privileges: