Skip to content
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

Suggestion: Update the CVocConf configuration mechanism #11278

Open
3 tasks
qqmyers opened this issue Feb 19, 2025 · 1 comment
Open
3 tasks

Suggestion: Update the CVocConf configuration mechanism #11278

qqmyers opened this issue Feb 19, 2025 · 1 comment
Labels
Feature: API Feature: Controlled Vocabulary Includes both Internal and external controlled vocabularies Type: Suggestion an idea
Milestone

Comments

@qqmyers
Copy link
Member

qqmyers commented Feb 19, 2025

Overview of the Suggestion Currently, external vocabulary scripts are configured through a single :CVocConf setting that takes an array of JSON objects that conform to the schema. This is cumbersome for at least a couple reasons:

  • adding a new script/field means copying the existing setting and adding one more object to the array, and
  • parts of the definition of an object are ~constant for a give script, e.g. how the filtering should be done in Dataverse, the URL for the service, etc. - while others depend on the field - the name of the termUri field and any managedFields, etc.

As use of external vocabulary scripts grows, and scripts are being applied to multiple fields (ORCID and ROR in particular), a nice update would be to refactor configuration such that scripts can be registered with Dataverse and, separately, a registered script can be configured for one or more fields. Such a reconfiguration might simplify creating an API for the for the SPA/UI creators and could make future features, such as allowing multiple scripts per field, to be implemented.

Implementing this would require:

  • Analysis and design: decide which parts of the current schema apply per script and per field, address any overlaps (e.g. a script might by default allow free-text entries, with that setting overridable per field) (Size 10?)
  • Analysis, design, scoping: Propose a specific set of tables and API calls to get/set scripts and fields, along with any overall listScripts/listFieldsAPI calls/changes to existing API calls (e.g. to the metadatablock api?) the SPA might need (could be a separate subtask/separate scope if needed) (Size 10? With corresponding SPA analysis task?)
  • Development: Implement code, test code, docs, release note - standard dev issue. Includes adapting existing UI code to use the new configuration mechanism (which is hopefully mostly/all changes in the back-end, not JSF) (Size 80)
@qqmyers qqmyers added the Type: Suggestion an idea label Feb 19, 2025
@cmbz cmbz added this to the 6.7 milestone Feb 19, 2025
@cmbz cmbz added Feature: Controlled Vocabulary Includes both Internal and external controlled vocabularies Feature: API labels Feb 19, 2025
@cmbz cmbz moved this to SPRINT- NEEDS SIZING in IQSS Dataverse Project Feb 19, 2025
@cmbz
Copy link

cmbz commented Feb 24, 2025

2025/02/24

  • Next steps
    • Create subissue for first two tasks (that require analysis and design work)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature: API Feature: Controlled Vocabulary Includes both Internal and external controlled vocabularies Type: Suggestion an idea
Projects
Status: SPRINT- NEEDS SIZING
Development

No branches or pull requests

2 participants