-
Notifications
You must be signed in to change notification settings - Fork 557
Locally FAIR Data #12319
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
pdurbin
merged 57 commits into
IQSS:develop
from
GlobalDataverseCommunityConsortium:LocallyFAIR
Jun 15, 2026
Merged
Locally FAIR Data #12319
Changes from 54 commits
Commits
Show all changes
57 commits
Select commit
Hold shift + click to select a range
751e56d
new table for LF assignments
qqmyers 12a2c9e
update method names
qqmyers e77c84d
add LF assignees to perms doc
qqmyers 10d3c2c
update to index correct user/group strings
qqmyers 8cfa31b
allow people who can view unpublished to still see published items
qqmyers 2039ae0
refactored LF check in dataset page
qqmyers 97716b2
update DataversePage for Locally FAIR check
qqmyers cb84e62
update FilePage for Locally FAIR check
qqmyers 87a9672
Merge remote-tracking branch 'IQSS/develop' into LocallyFAIR
qqmyers 406face
merge w develop
qqmyers 665d193
LF user/group config
qqmyers 4284745
add helper list
qqmyers 7bbbd1a
use widget
qqmyers 9675bf7
reindex datasets if locallyFAIR changes
qqmyers 6dc03a1
add flag
qqmyers 820e057
limit to superuser and when LF allowed/used, disable if off
qqmyers 477c458
Merge remote-tracking branch 'IQSS/develop' into LocallyFAIR
qqmyers 910ffd3
Merge branch 'LocallyFAIR' of
qqmyers 9892582
add api, fix merge error
qqmyers 492fad5
Merge remote-tracking branch 'IQSS/develop' into LocallyFAIR
qqmyers a42ec22
add 400 for delete that doesn't exist in set
qqmyers 758e065
remove duplication of entries
qqmyers 8048c25
add labels to search
qqmyers f0c8691
add labels to search xhtml
qqmyers 2839905
LF doc and api doc
qqmyers 90c56e4
pagel labels/tags
qqmyers 8582e20
remove more duplication in permissions
qqmyers 99bc4cb
remove duplication of draft perms, make find private
qqmyers d4df59e
typo
qqmyers e400e7e
refactor perm check, create call for apis, test in getDataset
qqmyers 54e7343
add field for isLocallyFAIR
qqmyers 2dabc60
LF check in all dataset GET endpoints
qqmyers 774fae4
add/use locallyFAIR field in solr for LF tags in UI
qqmyers fc1e2b7
updates to dataset, collection, and access apis with new findXUSerCan…
qqmyers f8002ff
add userCanSee to file GETs
qqmyers 6387e45
Merge remote-tracking branch 'IQSS/develop' into LocallyFAIR
qqmyers 85ff6e7
merge fixes
qqmyers a254bd5
initial test for Locally Fair
qqmyers 5a7da25
flip logic
qqmyers 868dc34
add doc for completeRoleAssignee method
qqmyers 22219ac
typo
qqmyers b7d8728
release note, flag doc
qqmyers d8a7cef
test fixes
qqmyers 6ab536c
add cleanup, add tests to integration-tests
qqmyers 667edc9
let superusers see LF content
qqmyers 73edcd3
index draft content as LF
qqmyers d76e445
Merge remote-tracking branch 'IQSS/develop' into LocallyFAIR
qqmyers 7f3202e
fix merge issue
qqmyers 406b279
Merge remote-tracking branch 'IQSS/develop' into LocallyFAIR
qqmyers ac1da80
merge fixes
qqmyers 6e5aea8
review fixes
qqmyers 4acddc8
fix label spacing and alignment
qqmyers 82751e8
Merge branch 'develop' into LocallyFAIR
qqmyers 5226f5f
various doc improvements #12319
pdurbin 21d82ef
don't feature Locally FAIR so prominently in User Guide #12319
pdurbin 1703622
Merge remote-tracking branch 'IQSS/develop' into LocallyFAIR
qqmyers 338c117
Merge remote-tracking branch 'origin/LocallyFAIR' into LocallyFAIR
qqmyers File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| This release includes experimental support for "Locally FAIR" data. | ||
| This feature allows publication of content that will only be visible to authorized users or groups within a Dataverse installation. | ||
| User without authorization will not see the Locally FAIR collections, datasets, or files in search results and cannot visit their | ||
| pages or access them via the Dataverse API. | ||
|
|
||
| For more information, see the [Locally FAIR Data](https://guides.dataverse.org/en/latest/user/locally-fair-data.html) guide. | ||
|
|
||
| New Config Option: | ||
| Whether Locally FAIR content can be created is controlled by the new `dataverse.feature.allow-locally-fair-data` feature flag. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,117 @@ | ||
| Locally FAIR | ||
| ++++++++++++ | ||
|
|
||
| Locally FAIR describes content that is managed according to FAIR principles | ||
| (Findable, Accessible, Interoperable, and Reusable) within a defined local or | ||
| organizational community rather than for the public internet as a whole. | ||
|
|
||
| Dataverse now has optional, experimental support for managing Locally FAIR collections. | ||
|
|
||
| In a typical public Dataverse installation, published dataset metadata is visible | ||
| to everyone, even if the dataset's files themselves may be embargoed or restricted. Locally FAIR support | ||
| extends this model by allowing some collections, and the published datasets within them to remain | ||
| visible only to designated users or groups. This makes it possible for a single | ||
| Dataverse installation to support both: | ||
|
|
||
| - public, globally discoverable content; and | ||
| - organizational content whose existence and metadata are only be visible to | ||
| authorized users. | ||
|
|
||
| The rationale for making some content Locally FAIR can vary. | ||
| Locally FAIR content can include: | ||
|
|
||
| - sensitive research collections; | ||
| - institution-only datasets; | ||
| - datasets that should not be accessible to bots that may not adhere to the dataset license and terms, and | ||
| - projects under contractual or policy restrictions; | ||
|
|
||
| Dataverse's Locally FAIR mechanism is appropriate for repositories that will house at least some data | ||
| whose metadata should only be visible to organizational members. The decision to make data Locally FAIR | ||
| is managed at the collection level and repositories can have both FAIR and Locally FAIR content. | ||
|
|
||
| .. contents:: |toctitle| | ||
| :local: | ||
|
|
||
| What Locally FAIR Means | ||
| ======================= | ||
|
|
||
| Locally FAIR content is intended to be FAIR within a particular community. | ||
|
|
||
| That means: | ||
|
|
||
| - **Findable** Data is easy to locate for both humans and machines, when authorized. Locally FAIR datasets (and files if configured) have persistent identifiers, but do not use DOIs which are publicly searchable. | ||
|
|
||
| - **Accessible** Data is retrievable through standardized protocols. Authorized users can use Dataverse's standard user interface and API calls to access Locally FAIR content in the same way they do with any published data. | ||
|
|
||
| - **Interoperable** Data should be compatible with other datasets and systems. Locally FAIR datasets in Dataverse use the same standard metadata blocks as for public content and files undergo the same ingest process, use the same previewers and tools, etc. | ||
|
|
||
| - **Reusable** Data should be well-described and licensed in a way that allows others to use it for future research. The licenses and terms on Locally FAIR content make it clear how and when the data can be re-used. | ||
|
|
||
| Why Repositories Use It | ||
| ======================= | ||
|
|
||
| Without Locally FAIR support, repositories may need separate Dataverse | ||
| installations to separate public and organization-only content. | ||
|
|
||
| How It Differs from Restricted Files | ||
| ==================================== | ||
|
|
||
| :ref:`Restricting <restricted-files>` or :ref:`embargoing <embargoes>` files limits access to the file contents, but in a standard public | ||
| repository the dataset's published metadata, including the list of files, would still be visible. | ||
| If a dataset allows requests for file access, anyone can request access, even if the dataset's | ||
| license or terms limit access to specific groups. | ||
|
|
||
| Locally FAIR goes further. Locally FAIR collections and datasets do not appear in content listings or | ||
| search results for unauthorized users, nor can the collection/dataset/file page be viewed. API access | ||
| is also blocked for unauthorized access. | ||
|
|
||
| Who Can See Locally FAIR Content | ||
| ================================ | ||
|
|
||
| Visibility is determined by superusers and is managed at the collection level. | ||
| Access can be granted to any groups or users defined in Dataverse - the same groups/users | ||
| available when assigning roles on collections, datasets, and files. | ||
|
|
||
| How Can You Tell When Content is Locally FAIR? | ||
| ============================================== | ||
|
|
||
| The Dataverse UI adds a "Locally FAIR" tag to all collections, datasets, and files who's visibility | ||
| is limited by the locally FAIR mechanism. | ||
|
|
||
|
|
||
| Why is Locally FAIR Support "Experimental" | ||
| ========================================== | ||
|
|
||
| The word "experimental" is used when functionality is new, may evolve signifcantly in future releases, | ||
| and generally may require more effort to configure and manage and/or more effort to support than more | ||
| mature functionality. | ||
|
|
||
| With the current Locally FAIR implementation, managers need to be aware that they are responsible for | ||
| choosing collection settings compatible with Locally FAIR content, i.e. not using DOIs (whose metadata | ||
| is publicly accessible) or publicly visible stores, etc. Users and managers should also be aware that | ||
| some functionality that might expose Locally FAIR content, e.g. linking, may not be prohibited programmatically | ||
| but should still be avoided. Similarly, users should be aware that functionality such as metrics and quotas | ||
| may expose the existence of Locally FAIR content. If your Dataverse instance supports Locally FAIR data, | ||
| you are encouraged to be an active participant in reporting any issues and suggesting further improvements. | ||
|
|
||
| Things to Keep in Mind | ||
| ====================== | ||
|
|
||
| If your repository supports Locally FAIR content: | ||
|
|
||
| - published does not always mean public; | ||
| - search and browse results may vary depending on who is logged in; | ||
| - colleagues outside your authorized group may not be able to see the same | ||
| datasets you can see; | ||
| - you should not share Locally FAIR content with others who don't have access themselves; and | ||
| - this functionality is experimental. | ||
|
|
||
| Enabling Locally FAIR Support | ||
| ============================= | ||
|
|
||
| See :ref:`dataverse.feature.allow-locally-fair-data` in the Installation Guide. | ||
|
|
||
| Managing Locally FAIR Via API | ||
| ============================= | ||
|
|
||
| See :ref:`locally-fair-list-role-assignees` and related API enpoints in the API Guide. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@DieuwertjeBloemen and @wshahn agree with me that Locally FAIR shouldn't be so high up and prominent in the User Guide. See https://dataverse.zulipchat.com/#narrow/channel/446770-docs/topic/where.20to.20put.20Locally.20FAIR.20docs/near/601213586
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I moved it in 21d82ef.