{"id":13558217,"url":"https://github.com/samvera/questioning_authority","last_synced_at":"2025-10-05T17:28:46.676Z","repository":{"id":10648441,"uuid":"12877283","full_name":"samvera/questioning_authority","owner":"samvera","description":"Question your authorities","archived":false,"fork":false,"pushed_at":"2025-07-14T18:43:23.000Z","size":3651,"stargazers_count":55,"open_issues_count":28,"forks_count":29,"subscribers_count":71,"default_branch":"main","last_synced_at":"2025-09-14T23:17:29.785Z","etag":null,"topics":["core-components","samvera-community"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"claviska/jquery-dropdown","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samvera.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG-legacy.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORT.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-09-16T19:59:48.000Z","updated_at":"2025-08-20T21:09:05.000Z","dependencies_parsed_at":"2023-11-15T18:31:29.308Z","dependency_job_id":"2906ffb1-eb80-4b13-8082-8b80eaa835f5","html_url":"https://github.com/samvera/questioning_authority","commit_stats":null,"previous_names":["projecthydra/questioning_authority"],"tags_count":63,"template":false,"template_full_name":null,"purl":"pkg:github/samvera/questioning_authority","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fquestioning_authority","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fquestioning_authority/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fquestioning_authority/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fquestioning_authority/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samvera","download_url":"https://codeload.github.com/samvera/questioning_authority/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera%2Fquestioning_authority/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278486821,"owners_count":25995059,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["core-components","samvera-community"],"created_at":"2024-08-01T12:04:48.962Z","updated_at":"2025-10-05T17:28:46.658Z","avatar_url":"https://github.com/samvera.png","language":"Ruby","funding_links":[],"categories":["Ruby","others"],"sub_categories":[],"readme":"# Questioning Authority\n\nCode:\n[![Gem Version](https://badge.fury.io/rb/qa.png)](http://badge.fury.io/rb/qa)\n[![Build Status](https://circleci.com/gh/samvera/questioning_authority.svg?style=svg)](https://circleci.com/gh/samvera/questioning_authority)\n[![Coverage Status](https://coveralls.io/repos/github/samvera/questioning_authority/badge.svg?branch=main)](https://coveralls.io/github/samvera/questioning_authority?branch=main)\n\nDocs:\n[![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)\n[![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE)\n\nCommunity Support: [![Samvera Community Slack](https://img.shields.io/badge/samvera-slack-blueviolet)](http://slack.samvera.org/)\n\nYou should question your authorities.\n\n--------------------------------------------------------------------------------\n\n## Table of Contents\n\n- [What does this do?](#what-does-this-do)\n- [How does it work?](#how-does-it-work)\n\n  - [Sub-Authorities](#sub-authorities)\n\n- [How do I use this?](#how-do-i-use-this)\n\n  - [Basic QA Requests](#basic-qa-requests)\n  - [Typical JSON Results](#typical-json-results)\n\n- [Authority Sources information](#authority-sources-information)\n\n- [Developer Notes](#developer-notes)\n\n  - [Compatibility](#compatibility)\n  - [Product Owner \u0026 Maintenance](#product-owner--maintenance)\n\n    - [Product Owner](#product-owner)\n\n- [Help](#help)\n\n- [Acknowledgments](#acknowledgments)\n\n## Not seeing documentation you used to find in the README?\n\nMuch of the documentation has moved to the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) to allow for better organization. We hope that you will find this easier to use.\n\n--------------------------------------------------------------------------------\n\n## What does this do?\n\nProvides a set of uniform RESTful routes to query any controlled vocabulary or set of authority terms. Results are returned in JSON and can be used within the context of a Rails application or any other Ruby environment. Primary examples would include providing auto-complete functionality via Javascript or populating a dropdown menu with a set of terms.\n\n## How does it work?\n\nAuthorities are defined as classes, each implementing a set of methods allowing a controller to return results from a given vocabulary in the JSON format. The controller does three things:\n\n- provide a list of all terms (if allowed by the class)\n- return a set of terms matching a given query\n- return the complete information for a specific term given its identifier\n\nDepending on the kind of authority or its API, the controller may not do all of these things such as return a complete list of terms.\n\n### Sub-Authorities\n\nSome authorities, such as Library of Congress, allow sub-authorities which is an additional parameter that further defines the kind of authority to use with the context of a larger one.\n\n## How do I use this?\n\nAdd the gem to your Gemfile\n\n```\ngem 'qa'\n```\n\nRun bundler\n\n```\nbundle install\n```\n\nInstall the gem to your application\n\n```\nrails generate qa:install\n```\n\nThis will copy over some additional config files and add the engine's routes to your `config/route.rb`.\n\nStart questioning your authorities!\n\n### Basic QA Requests\n\nThese show the basic routing patterns for connecting to authorities. See the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) documentation for detailed documentation and examples for each authority and local authorities.\n\nReturn a complete list of terms:\n\n```\n/qa/terms/:vocab\n/qa/terms/:vocab/:subauthority\n```\n\nReturn a set of terms matching a given query\n\n```\n/qa/search/:vocab?q=search_term\n/qa/search/:vocab/:subauthority?q=search_term\n```\n\nReturn the complete information for a specific term given its identifier\n\n```\n/qa/show/:vocab/:id\n/qa/show/:vocab/:subauthority/:id\n```\n\n### Typical JSON Results\n\nResults are returned in JSON in this format:\n\n```\n[\n    {\"id\" : \"subject_id_1\", \"label\" : \"First labels\"},\n    {\"id\" : \"subject_id_2\", \"label\" : \"Printing labels\"},\n    {\"id\" : \"\", \"label\" : \"This term has no id number\"},\n    {\"id\" : \"\", \"label\" : \"Neither does this\"}\n]\n```\n\n# Authority Sources information\n\nSee the [Questioning Authority wiki](https://github.com/samvera/questioning_authority/wiki) for documentation on how to connect to the supported authorities, documentation on how to create new authorities, and other useful tips.\n\n# Developer Notes\n\n[How to Contribute](./CONTRIBUTING.md)\n\nTo develop this gem, clone the repository, then run:\n\n```\nbundle install\nrake ci\n```\n\nThis will install the gems, create a dummy application under spec/internal and run the tests. After you've made changes, make sure you've included tests and run the test suite with a new sample application:\n\n```\nrake engine_cart:clean\nrake ci\n```\n\nCommit your features into a new branch and submit a pull request.\n\n## Contributing\n\nIf you're working on PR for this project, create a feature branch off of `main`.\n\nThis repository follows the [Samvera Community Code of Conduct](https://samvera.atlassian.net/wiki/spaces/samvera/pages/405212316/Code+of+Conduct) and [language recommendations](https://github.com/samvera/maintenance/blob/main/templates/CONTRIBUTING.md#language).  Please ***do not*** create a branch called `master` for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of this repository.\n\n## Compatibility\nThis gem works with Rails 5.0-7.0 and Ruby 2.5-3.1, provided the version of Rails supports the version of Ruby.\n - Consult `.circleci/config.yml` for a list of supported combinations.\n - The combination of Ruby 3.1 and Rails 6.0 comes with three caveats:\n   - your app will not be able to use `psych 4` (which ordinarily comes with 3.1). See https://bugs.ruby-lang.org/issues/17866 and https://stackoverflow.com/questions/71191685/visit-psych-nodes-alias-unknown-alias-default-psychbadalias/71192990#71192990 for an explanation. One workaround is to modify your app's `Gemfile` to hold back `psych`: `gem 'psych', '\u003c 4'`.\n   - likewise, you want to add gem 'net-smtp', require: false to your Gemfile to get around the bug described in https://stackoverflow.com/questions/70500220/rails-7-ruby-3-1-loaderror-cannot-load-such-file-net-smtp .\n   - finally, you may want to opt in to the latest version of \"mail\". Again, add to your Gemfile the line `gem \"mail\", \"\u003e= 2.8.0.rc1\"`.\n\nSee also  `.circleci/config.yml` and `spec/test_app_templates/Gemfile.extra`.\n\n## Product Owner \u0026 Maintenance\n\n`qa` was a Core Component of the Samvera Community. Given a decline in available labor required for maintenance, this project no longer has a dedicated Product Owner. The documentation for what this means can be found [here](http://samvera.github.io/core_components.html#requirements-for-a-core-component).\n\n### Product Owner\n\n**Vacant**\n\n_Until a Product Owner has been identified, we ask that you please direct all requests for support, bug reports, and general questions to the [`#dev` Channel on the Samvera Slack](https://samvera.slack.com/app_redirect?channel=dev)._\n\n## Releasing\n\n1. `bundle install`\n2. Increase the version number in `lib/qa/version.rb`\n3. Increase the same version number in `.github_changelog_generator`\n4. Update `CHANGELOG.md` by running this command:\n\n  ```\n  github_changelog_generator --user samvera --project questioning_authority --token YOUR_GITHUB_TOKEN_HERE\n  ```\n\n5. Commit these changes to the main branch\n\n6. Run `rake release`\n\n# Help\n\nThe Samvera community is here to help. Please see our [support guide](./SUPPORT.md).\n\n# Acknowledgments\n\nThis software has been developed by and is brought to you by the Samvera community. Learn more at the [Samvera website](http://samvera.org/).\n\n![Samvera Logo](https://wiki.duraspace.org/download/thumbnails/87459292/samvera-fall-font2-200w.png?version=1\u0026modificationDate=1498550535816\u0026api=v2)\n\n## Special thanks to...\n\n[Jeremy Friesen](https://github.com/jeremyf) who gave us the name for our gem.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera%2Fquestioning_authority","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamvera%2Fquestioning_authority","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera%2Fquestioning_authority/lists"}