{"id":23122616,"url":"https://github.com/folio-org/mod-finc-config","last_synced_at":"2025-08-17T02:30:49.849Z","repository":{"id":41805158,"uuid":"177570135","full_name":"folio-org/mod-finc-config","owner":"folio-org","description":"Knowledge base for amsl's finc-config module. Funded by European Regional Development Fund (EFRE).","archived":false,"fork":false,"pushed_at":"2025-04-01T08:16:41.000Z","size":870,"stargazers_count":2,"open_issues_count":0,"forks_count":4,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-04T23:04:52.745Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/folio-org.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-25T11:07:15.000Z","updated_at":"2025-04-01T08:16:42.000Z","dependencies_parsed_at":"2023-01-20T00:46:02.290Z","dependency_job_id":"62d4e255-5efc-492c-ba6d-b40d24a4fcb5","html_url":"https://github.com/folio-org/mod-finc-config","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/folio-org/mod-finc-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fmod-finc-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fmod-finc-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fmod-finc-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fmod-finc-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/folio-org","download_url":"https://codeload.github.com/folio-org/mod-finc-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folio-org%2Fmod-finc-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270798858,"owners_count":24648037,"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-08-17T02:00:09.016Z","response_time":129,"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":[],"created_at":"2024-12-17T07:28:47.362Z","updated_at":"2025-08-17T02:30:49.834Z","avatar_url":"https://github.com/folio-org.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mod-finc-config\n\nCopyright (C) 2019-2023 The Open Library Foundation\n\nThis software is distributed under the terms of the Apache License, Version 2.0. See the\nfile \"[LICENSE](LICENSE)\" for more information.\n\n![Development funded by European Regional Development Fund (EFRE)](assets/EFRE_2015_quer_RGB_klein.jpg)\n\n## Introduction\n\nBackend module for both ui-finc-config and ui-finc-select.\n\nIn general, the finc apps allow the maintenance of metadata sources and collection for the finc user\ncommunity.\n\nThis module works tenant-agnostic. That means, its data is stored in a single database schema. There\nare no separate schemas for each tenant. This enables certain users (ui-finc-config) to have access\nto data of all tenants that are members of the finc user community (ui-finc-select).\n\nui-finc-config gives access to the data as stored. Users of ui-finc-config can see which metadata\nsources and collections are selected by which tenant/isil. In addition, it allows the configuration\nof metadata sources and collections.\n\nui-finc-select provides a view on the same data as ui-finc-config but filtered for the current\ntenant. It allows members of the finc user community (libraries) only to select or deselect metadata\ncollections as well as whole metadata sources.\n\nFor instance, a user of a specific tenant with an isil (International Standard Identifier for\nLibraries and Related Organizations) may have access to the finc-select app. This user can only see\nif its library has selected a certain metadata collection. In addition, the user can only\nselect/deselect a metadata collection for its library. Moreover, the user cannot see if other\nlibraries do have selected the metadata collection.\n\nOnly a user with granted permissions for ui-finc-config can edit the metadata source resp.\ncollection. In addition, only a user with these permissions is able to see which library selected\nwhich metadata source resp. collection.\n\nmod-finc-config does the translation between the _original_ data used by ui-finc-config und the _\nview_ used by ui-finc-select. The _views_ used by ui-finc-select are produced based on the tenant's\nisil.\n\nIn order to implement the mentioned functionality, the module uses Okapi's */_/tenant* interface in\na special way. If the module is registered for a new tenant, its own */_/tenant* interface\noverwrites the given *x-okapi-header* with the prefix predefined in the module, namely *finc*.\n\nHence, it is good practice to first create a Folio tenant named _finc_. Afterwards it is recommended\nto activate the module for this tenant via the interface `_/proxy/tenants/finc/install`. This will\ncreate the needed database schema.\n\nIn the next step the module can be activated for tenants as needed, e.g. tenant _diku_. Note, this\nactivation will not create any database schema.\n\nWhen disabling the module for a tenant, the query parameter `purge=true` works only when disabling\nthe module for the tenant _finc_. This means it is impossible to purge the database schema for any\ntenant different as _finc_.\n\n## Filters\n\nThe following section describes how to upload, download and manage filters.\n\nThe management of filters is done by two endpoints: */finc-select/filters* and */finc-select/files*.\n\n*/finc-select/filters* describes the filter. It has a *label* and a *type* which defines if this is\na *blacklist* or a *whitelist* filter. It also has *filterFiles* which is an array holding\ninformation about associated files. The property *fileId* of *filerFiles* holds a reference (uuid)\nto the file which was uploaded before (see */finc-select/files*). *Filename* is the local's filename\nof the uploaded file.\n\n*/finc-select/files* stores the actual binary file. A file is uploaded via HTTP POST to *\n/finc-select/filter-files*, which returns the file's uuid. A single file can be downloaded via a\nHTTP GET */finc-select/filter-files/{id}*. Note, that you need to upload the binary file first, to\nget its id, which can then be used in the definition of a filter document.\n\n## Harvest EZB holding files\n\nThis module can harvest holding files from the *Elektronische Zeitschriftenbibliothek (EZB)*\nperiodically.\n\nThe harvester will run each night at 1am automatically. In order to activate automatic harvesting\nfor a certain tenant/library you need to define a filter called *EZB holdings* in finc-select. This\nfilter needs to have a file called *EZB file*. In addition, EZB credentials need to be defined for\nthe same tenant.\n\nWith this, the harvesting works as follows: The harvester fetches the EZB credentials of each tenant\nand will harvest the holding file the tenants from the EZB. It will compare the downloaded holding\nfile with the file called *EZB file* of the filter *EZB holdings*. If both files differ, the *EZB\nfile* will be updated by the downloaded one. If the files are equal, nothing will be done.\n\nThus, to activate harvesting of holding files you need to define ezb credentials and add a filter\ncalled *EZB holdings* with a file called *EZB file*.\n\nThe EZB URL needs to be configured using the environment variable `EZB_DOWNLOAD_URL`. This URL must include a '%s'\nplaceholder, which will be substituted with the bidId when processing requests.\n\nProxy settings are honored. Use system properties `http.proxyHost`, `http.proxyPort`\n, `https.proxyHost`, `https.proxyPort`, `http.nonProxyHosts` or environment variables `HTTP_PROXY`\n, `HTTPS_PROXY`, `NO_PROXY` if running as Docker container.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolio-org%2Fmod-finc-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffolio-org%2Fmod-finc-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolio-org%2Fmod-finc-config/lists"}