Repository navigation
ILLDEV-570 additional LMS profiles - #828
Merged
Merged
Conversation
Implement Evergreen, Horizon, Polaris and Symphony as configurable profiles, including the catalog and circulation options. NCIP transport remains unchanged. - Add fixture regressions, override tests, persistence/import tests, and migration rollback coverage. - Broker, Directory and illmock checks pass; builds, lint and focused race checks pass. One broker event-order failure passed on rerun. - Live vendor compatibility remains unverified. Apply migration 021_catalog_identifier_options and deploy the updated broker before enabling the profiles. Details are in [host-profiles.md](/home/adam/proj/crosslink/directory/host-profiles.md).
adamdickmeiss
requested review from
JanisSaldabols,
jakub-id,
kurtnordstrom and
skomorokh
as code owners
October 26, 2026 13:06
adamdickmeiss
marked this pull request as draft
October 26, 2026 13:06
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
New vendor defaults and coordinated Directory/broker deployment warrant human sign-off while live vendor compatibility remains unverified.
No open issues 🎉
What changed in this PR
Extends CrossLink’s existing host-profile system with Evergreen, Horizon, Polaris and Symphony catalog and circulation settings, while retaining the current NCIP transport.
Changes:
- Adds vendor defaults, identifier transformations, and configurable holdings availability and loan-policy extraction.
- Extends Directory validation, persistence and imports, with migration 021 for catalog identifier options.
- Adds fixture regressions, override and rollback tests, and deployment guidance.
| File | Description |
|---|---|
| directory/test/import_test.go | Tests importing and clearing new overrides. |
| directory/test/host_profiles_test.go | Tests profile persistence, PATCH behavior and validation. |
| directory/test/host_profiles_migration_test.go | Tests migration preservation and rollback. |
| directory/RELEASE-NOTES.md | Announces profiles and deployment prerequisites. |
| directory/README.md | Updates vendor-specific NCIP defaults. |
| directory/query.sql | Persists identifier transformation options. |
| directory/migrations/021_catalog_identifier_options.up.sql | Adds nullable identifier-option columns. |
| directory/migrations/021_catalog_identifier_options.down.sql | Removes identifier-option columns on rollback. |
| directory/import/model/config.go | Adds import fields and validation. |
| directory/import/db/entry.go | Stores imported identifier options. |
| directory/host-profiles.md | Documents defaults, overrides and deployment order. |
| directory/api/import_contract_test.go | Checks compatibility of additive import fields. |
| directory/api/entries.go | Returns stored identifier options. |
| directory/api/catalog_config.go | Maps new options and validates predicates. |
| directory/api.yaml | Defines vendor profiles and configuration contracts. |
| broker/profiles/resolve.go | Supports new profiles and query-language overrides. |
| broker/profiles/resolve_test.go | Tests validation and explicit overrides. |
| broker/profiles/builtin_test.go | Expands built-in and concurrent-resolution coverage. |
| broker/ncipclientv1/README.md | Documents vendor-specific version selection. |
| broker/lms/profiles_test.go | Tests adapter defaults and identifier normalization. |
| broker/lms/lms_adapter_ncip1.go | Uses shared normalization for NCIP 1 requests. |
| broker/lms/lms_adapter_ncip1_test.go | Tests new-profile NCIP 1 request fields. |
| broker/lms/lms_adapter_ncip.go | Uses shared normalization for NCIP 2 requests. |
| broker/lms/bib_identifier.go | Centralizes circulation identifier normalization. |
| broker/catalog/testdata/host-profiles/symphony-stanford.xml | Supplies a Symphony holdings fixture. |
| broker/catalog/testdata/host-profiles/polaris-with-out-item-status.xml | Supplies a checked-out Polaris fixture. |
| broker/catalog/testdata/host-profiles/polaris-with-in-item-status.xml | Supplies an available Polaris fixture. |
| broker/catalog/testdata/host-profiles/polaris-with-held-item-status.xml | Supplies a held Polaris fixture. |
| broker/catalog/testdata/host-profiles/horizon-jhu.xml | Supplies a Horizon shelving-data fixture. |
| broker/catalog/testdata/host-profiles/horizon-hennepin.xml | Supplies another Horizon holdings fixture. |
| broker/catalog/testdata/host-profiles/evergreen-traverse-de-sioux-with-available-item-status.xml | Supplies an available Evergreen fixture. |
| broker/catalog/testdata/host-profiles/evergreen-north-west-with-available-item-status.xml | Supplies an available Evergreen fixture. |
| broker/catalog/testdata/host-profiles/evergreen-lake-agassiz-with-available-item-status.xml | Supplies an available Evergreen fixture. |
| broker/catalog/testdata/host-profiles/evergreen-east-central-with-in-transit-item-status.xml | Supplies an in-transit Evergreen fixture. |
| broker/catalog/testdata/host-profiles/evergreen-east-central-with-checked-out-item-status.xml | Supplies a checked-out Evergreen fixture. |
| broker/catalog/query_builder_general.go | Transforms identifiers before query escaping. |
| broker/catalog/holdings_parser_opac.go | Adds exclusions, trimming and loan-policy sources. |
| broker/catalog/holdings_parser_marc.go | Adds presence/exclusion predicates and loan-policy mapping. |
| broker/catalog/additional_profiles_test.go | Tests fixtures, predicates, policy sources and queries. |
Review effort: Balanced
adamdickmeiss
marked this pull request as ready for review
October 26, 2026 13:14
jakub-id
approved these changes
Oct 27, 2026
Contributor
|
@adamdickmeiss Looks good but can you please make sure the profiles are used during export (in a separate PR) |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Implement Evergreen, Horizon, Polaris and Symphony as configurable profiles, including the catalog and circulation options. NCIP transport remains unchanged.
Apply migration 021_catalog_identifier_options and deploy the updated broker before enabling the profiles. Details are in
host-profiles.md.