commit 2c3809bbf9d152bb5a2ba905cf827b231bd2d669 Author: Lucas Gass Date: Tue Nov 18 18:16:21 2025 +0000 Bug 37893: (RM follow-up) Adjust db_rev Signed-off-by: Lucas Gass commit 9e40c7caf5b03178c507619aabd01cfe1e11824d Author: Lucas Gass Date: Tue Nov 18 17:36:59 2025 +0000 Bug 37893: DBRev 25.06.00.035 Signed-off-by: Lucas Gass commit f57ea320bd07f886417abc8b1c4023dd8ba50031 Author: Lucas Gass Date: Tue Nov 18 17:35:04 2025 +0000 Bug 37893: Fix http links Signed-off-by: Lucas Gass commit 0aa77814c78f20a80df17bc091444a402dcf282d Author: Pedro Amorim Date: Tue Nov 18 16:53:19 2025 +0000 Bug 37893: (QA follow-up): Fix database inconsistencies: This should pass: perl /kohadevbox/misc4dev/run_tests.pl --instance=kohadev --db-password=password --run-db-compare-only --compare-with=HEAD This is a squash of the following: 1) Fix charset in kohastructure.sql 2) Fix NULL => DEFAULT NULL 3) Reorder tables in kohastructure.sql 4) typos Signed-off-by: Lucas Gass commit 94eab622c7826f285bdcaac83dd97e4a062a3718 Author: Pedro Amorim Date: Tue Nov 18 16:04:43 2025 +0000 Bug 37893: (QA follow-up): Fix xt/api.t Signed-off-by: Lucas Gass commit 8ef32181e7b310fbc91841433dfa6c4cb7f599d6 Author: Pedro Amorim Date: Fri Nov 7 14:06:01 2025 +0000 Bug 37893: (QA follow-up): Update cypress tests Addressing QA lines of feedback has changed the forms. Cypress tests need to be updated accordingly. cypress run --spec t/cypress/integration/SIP2/Accounts.ts --config video=false,screenshotOnRunFailure=false cypress run --spec t/cypress/integration/SIP2/Institutions.ts --config video=false,screenshotOnRunFailure=false cypress run --spec t/cypress/integration/SIP2/SystemPreferenceOverrides.ts --config video=false,screenshotOnRunFailure=false Signed-off-by: Lucas Gass commit 987db4f5ce585f022f86528b090137c9b37ba2ba Author: Pedro Amorim Date: Fri Nov 7 09:45:45 2025 -0100 Bug 37893: (QA follow-up): Add changes to etc/koha-httpd.conf Signed-off-by: Lucas Gass commit 8b5497fd0eceb6ab47053747c0ec29691b8bcc02 Author: Pedro Amorim Date: Fri Nov 7 10:15:39 2025 +0000 Bug 37893: (QA follow-up): Clean-up store code, fix erm => sip2 Signed-off-by: Lucas Gass commit d968e4e77c2b8617b8de96c046b5261ad29782f3 Author: Pedro Amorim Date: Thu Nov 6 15:50:38 2025 -0100 Bug 37893: (QA follow-up): Update SIP2 breadcrumbs to start with Administration Signed-off-by: Lucas Gass commit 73398675509e83a8fb570e8fcca798edc8618d29 Author: Pedro Amorim Date: Fri Nov 7 09:59:18 2025 -0100 Bug 37893: (QA follow-up): Remove nonexistent js-patron-format.inc After bug 40958 Signed-off-by: Lucas Gass commit 5dd9966c8e891b352682f2587149dcc798911e6a Author: Pedro Amorim Date: Thu Nov 6 16:45:00 2025 +0000 Bug 37893: (QA follow-up): Fix sip2 div app container Signed-off-by: Lucas Gass commit 4c4e64dc7af8f194b254d39e43717f27445025bd Author: Pedro Amorim Date: Thu Nov 6 16:41:08 2025 +0000 Bug 37893: (QA follow-up): Add Koha::SIP2::Accounts unit tests Signed-off-by: Lucas Gass commit c24a5b25c56a464c3a25d687c2a8ce0069545e7e Author: Pedro Amorim Date: Thu Nov 6 15:53:05 2025 +0000 Bug 37893: (QA follow-up): Remove file_transports database table This was clearly a mistake due a botched rebase. Signed-off-by: Lucas Gass commit ba9c8d69a31bb3c8ce43037288930f70ae5bd34f Author: Pedro Amorim Date: Fri Nov 7 10:23:25 2025 +0000 Bug 37893: (QA follow-up): Remove uneeded singular form of the module Signed-off-by: Lucas Gass commit dccff42870158cde5c78ed146e7bc3734ac92f35 Author: Pedro Amorim Date: Fri Nov 7 10:54:03 2025 +0000 Bug 37893: (QA follow-up): Add new line to apache-shared-intranet.conf Signed-off-by: Lucas Gass commit 49e51aa3be812bd8e5917a14bfdec56ce295c22c Author: Pedro Amorim Date: Thu Nov 6 14:24:07 2025 +0000 Bug 37893: (QA follow-up): Explicitly set boolean => 0 for tinyints which arent boolean Signed-off-by: Lucas Gass commit cf11f3863dc528c3ec58aaaf37c6f85978ecac45 Author: Pedro Amorim Date: Tue Nov 4 15:48:32 2025 +0000 Bug 37893: (QA follow-up): Insert defaults to database for delimiter and terminator Not considering here encoding here as I'm uncertain from the code if it should utf8 or ascii Signed-off-by: Lucas Gass commit a15bfabf37b9843f17303f2da0b499774799e4a6 Author: Pedro Amorim Date: Tue Nov 4 14:56:28 2025 +0000 Bug 37893: (QA follow-up): Add tooltip for relationshipWidget patron_attributes: code Signed-off-by: Lucas Gass commit 244a0bd22b3156d597a4943819df58a3dea6fed9 Author: Pedro Amorim Date: Tue Nov 4 14:50:36 2025 +0000 Bug 37893: (QA follow-up): Default terminator to CRLF Signed-off-by: Lucas Gass commit 57b92e9237b53c03ee6e2c863e556971ed98d56d Author: Pedro Amorim Date: Tue Nov 4 14:48:44 2025 +0000 Bug 37893: (QA follow-up): Update prevcheckout_block_checkout label and tooltip Signed-off-by: Lucas Gass commit e02fe6da521270778c27b57dd97c7ef48fdb475a Author: Pedro Amorim Date: Tue Nov 4 14:47:05 2025 +0000 Bug 37893: (QA follow-up): Set label for holds_get_captured Signed-off-by: Lucas Gass commit 76fe7446914601bcdec9bfdec64fb542ee381756 Author: Pedro Amorim Date: Tue Nov 4 14:44:33 2025 +0000 Bug 37893: (QA follow-up): Set tooltip for 'Format due date' Signed-off-by: Lucas Gass commit 04542a4ee1b8b537aba1e993f0b9807a8569f0a3 Author: Pedro Amorim Date: Tue Nov 4 14:41:48 2025 +0000 Bug 37893: (QA follow-up): Ensure convert_nonprinting_characters is null if empty string Signed-off-by: Lucas Gass commit 3e4fc7db7edc2f5bf2d22a2103a6c915a99c8a39 Author: Pedro Amorim Date: Tue Nov 4 13:28:19 2025 -0100 Bug 37893: (QA follow-up): Add maxlength to number attributes. Set '3' for SIP2 institutions retires Signed-off-by: Lucas Gass commit 5e76fb103aa5ca592d7bfb7fbbdf21440009b7b8 Author: Pedro Amorim Date: Tue Nov 4 13:21:41 2025 -0100 Bug 37893: (QA follow-up): Default institution policy attributes to true Signed-off-by: Lucas Gass commit f342ae3dd37117c98818e83217cd43135adbc22e Author: Pedro Amorim Date: Tue Nov 4 13:15:46 2025 -0100 Bug 37893: (QA follow-up): Update institution name label Signed-off-by: Lucas Gass commit e94e205419fda966645c1ddd17d9d19505f72f39 Author: Pedro Amorim Date: Thu Oct 30 13:48:58 2025 +0000 Bug 37893: (QA follow-up): Update admin-home module description Signed-off-by: Lucas Gass commit e713c0e5f54f47d41c34d9503a731a7e0356f916 Author: Martin Renvoize Date: Wed Oct 29 16:09:36 2025 +0000 Bug 37893: (QA follow-up): Add tooltip for account Staff userid The userid field for accounts was missing a tooltip; We add one here that clarifies that the userid must match an existing Koha user with appropriate circulation permissions for the sip client. NOTE: A future follow-up should introduce a patron autocomplete or select type input allowing administrators to just search users to add for this field, but such a component doesn't exist in the Vue architecture yet. Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit a0c3d523bccfc6e90eb5ec0f004b40b3d81bd11f Author: Martin Renvoize Date: Fri Oct 24 16:30:51 2025 +0100 Bug 37893: (QA follow-up): Update tooltip for institution Name The institution name tooltip was slightly misleading, we clarify it here. Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit b5f515422aa195777f6bb767f2673be7ec71f233 Author: Martin Renvoize Date: Fri Oct 24 15:49:57 2025 +0100 Bug 37893: (QA follow-up): Update DBIx::Class schema for sip_accounts Remove login_password column from the DBIx::Class schema result class to reflect the database structure changes. This updates the auto-generated schema to match the removal of the login_password column from the sip_accounts table. Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit c1a97af67c16cc67192f71bd93041f9edb8c7624 Author: Martin Renvoize Date: Fri Oct 24 15:49:21 2025 +0100 Bug 37893: (QA follow-up): Remove plaintext password storage from SIP2 This follow-up removes the security vulnerability of storing plaintext passwords in the sip_accounts table. The SIP2 system now relies entirely on Koha's secure password authentication. Changes: - Remove plaintext password comparison from login_core() and telnet_transport() - Remove login_password column from sip_accounts table - Update database schema files and atomic update - Remove password field from API definitions and Vue form - Update all tests to remove login_password references Authentication now works in two stages: 1. Access control: Check if userid exists in sip_accounts (allowlist) 2. Authentication: Validate password against hash in borrowers table This maintains SIP access control while eliminating plaintext password storage. Staff users authenticate with their Koha password (securely hashed). Test plan: 1. Run updated tests to verify they pass 2. Verify SIP2 authentication works with staff user credentials 3. Confirm no plaintext passwords are stored Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit dfd9e08b6ba2da956bea3ab288857df2ee63914e Author: Pedro Amorim Date: Mon Oct 13 12:55:28 2025 +0000 Bug 37893: Add warning notes to obsolete xml file sections Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit e49697234e313ae0f98dcf0c6fe5e0958d80f3a3 Author: Pedro Amorim Date: Mon Oct 13 11:14:41 2025 +0000 Bug 37893: API tests prove t/db_dependent/api/v1/sip2_accounts.t prove t/db_dependent/api/v1/sip2_institutions.t prove t/db_dependent/api/v1/sip2_system_preference_overrides.t Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit b90f7c88ad8a46c92cac12ef5d80934ebfaaf99e Author: Pedro Amorim Date: Mon Oct 13 11:14:54 2025 +0000 Bug 37893: Add sip2 module permission Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit f70d7a54050ad8ee1949ba8a201264969a082f0d Author: Pedro Amorim Date: Fri Oct 10 15:59:12 2025 +0000 Bug 37893: (QA follow-up): Address qa script complaints Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit ab7684ca2b53ad1feb8b56c726d01f6e99b2b165 Author: Pedro Amorim Date: Fri Oct 10 13:31:46 2025 +0000 Bug 37893: Reimplement check for fresh SIP config Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 75827c831e2c438029ad41ef250ee4a625a7b178 Author: Pedro Amorim Date: Thu Oct 9 15:46:37 2025 +0000 Bug 37893: Remove redundant inheritance Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 3866d8555511df12197d56a420b1195b8a35b981 Author: Pedro Amorim Date: Thu Oct 9 14:57:05 2025 +0000 Bug 37893: (QA follow-up): Nuke server params and listeners from UI Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 6b28a7da7d46782b2b8e01add3c0ea0e0d2411a9 Author: Pedro Amorim Date: Tue Oct 7 14:33:23 2025 +0000 Bug 37893: Rewrite: Move to composition API as well as other changes to use the latest of bug 38201 Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit cd25cca2b5dbba0c4da8ece2b5138a1f42f3bd95 Author: Pedro Amorim Date: Thu Oct 9 12:27:34 2025 +0000 Bug 37893: VueJS Framework: Consider rendering of relationshipSelect attribute on list The display of a relationshipSelect on the ResourceList defaults to whats in the showElement part of the attribute definition. This also means we can now get rid of the 'vendor' attribute type and have that be a 'relationshipSelect' instead. Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit d6ba3806faf4ea28831078ee3321e690ce594a6f Author: Pedro Amorim Date: Mon Feb 17 16:05:44 2025 -0100 Bug 37893: Add cypress tests cypress run --spec t/cypress/integration/SIP2/Institutions.ts cypress run --spec t/cypress/integration/SIP2/Accounts.ts cypress run --spec t/cypress/integration/SIP2/SystemPreferenceOverrides.ts Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 9029216d77abcf5d35560ef7c5f4f063f621b6c6 Author: Pedro Amorim Date: Fri Feb 14 15:32:21 2025 +0000 Bug 37893: Add SIP2 module item menu to admin-home and admin-menu Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 2ed892b38ca99220f367e5c09c60134c2ffba356 Author: Pedro Amorim Date: Fri May 9 13:16:22 2025 +0000 Bug 37893: (QA follow-up): Check if port already in use when storing a listener To test: 1) Ensure a port is already in use in the server 2) Try creating a new listener using that same port. 3) Notice the error 'Something went wrong: Error: Can't listen on port 127.0.0.1:8023/tcp/IPv4. Port already in use.' is shown on the UI Co-authored-by: Martin Renvoize Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit ee62bd459eca9f675051b93e349140f9fb1ab30e Author: Pedro Amorim Date: Fri May 9 10:51:46 2025 +0000 Bug 37893: (QA follow-up) Add tooltips to institutions form Also make 'ILS' the default value and placeholder of 'implementation' Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit c01f870d7e1c5069cf7810ea9cd99282fda94968 Author: Pedro Amorim Date: Thu May 8 13:34:31 2025 +0000 Bug 37893: Add tests: DB changes get picked up by get_configuration without a server restart prove t/db_dependent/Koha/SIP2/SIP2ModuleMigration.t Test plan for the whole module: [MODULE UI TESTING] 1) Checkout the branch and reset_all 2) Run 'updatedatabase'. The contents from /etc/koha/sites/kohadev/SIPConfig.xml have been migrated to the database and should be accessible in the UI. 3) Visit the administration page: http://localhost:8081/cgi-bin/koha/admin/admin-home.pl 4) Notice the new 'Self-service circulation (SIP2)' item under 'Patrons and circulation'. Click it. 5) Notice you are now on the new SIP2 module. Create some institutions, accounts, listeners, etc. Play around with the forms. 6) Confirm all the data has been migrated correctly, and is editable in the UI as expected. [SIP TESTING] 1) On ktd, run the following SIP emulator command: $ perl misc/sip_cli_emulator.pl -su koha -sp koha -l kohalibrary --host localhost --patron 42 -m patron_information 2) Note that the response message contains 'Greetings from Koha'. 3) Using the module UI, visit SIP accounts: http://localhost:8081/cgi-bin/koha/sip2/accounts 4) Find the SIP account that has 'koha' as login. Click edit. 5) Scroll down to 'SIP response mappings' and click 'Add new screen msg regex'. 6) On 'Find', enter 'Greetings from Koha'. On 'Replace', enter 'Hello from 37893 test plan'. Save. 7) Repeat the sip command from 1). Note that 'Greetings from Koha has been replaced with 'Hello from 37893 test plan', without having to restart the SIP server. [OPTIONAL] 1) You can repeat the previous steps in [MODULE UI TESTING] but edit the contents of /etc/koha/sites/kohadev/SIPConfig.xml beforehand with a more complex and thorough configuration (something resembling a real SIPConfig.xml) 2) After updating the contents of SIPConfig.xml, restart SIP: koha-sip --restart 3) Test the module again, verify the contents have been migrated as expected. Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit b1c964db86224201a8bc258369f2584765c473dd Author: Pedro Amorim Date: Tue May 6 14:10:53 2025 +0000 Bug 37893: Handle SIP config updates The classes that use Koha::SIP2::Object as base update the config_timestamp server param whenever an object of said classes is inserted, updated or deleted. This patch considers that, and performs a check to see if the config_timestamp is more recent than the one which the SIP server was started with. If it is, config is fetched from the database for up to date configurations. Note: The classes currently using Koha::SIP2::Object as base are as follows: Koha::SIP2::Account Koha::SIP2::Institution Koha::SIP2::SystemPreferenceOverride The 2 classes that are left out are: Koha::SIP2::Listener Koha::SIP2::ServerParam A UI message is shown when CRUDing any of the 2 above informing that a SIP server restart is required for the changes to take effect. The reason these 2 are left out is because they're loaded and only utilized when the SIP server is launched. Co-authored-by: Mark Hofstetter Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit c3a9bc3ff38bdca503e75436726ea2aa9d22d77f Author: Pedro Amorim Date: Thu Feb 13 10:07:24 2025 -0100 Bug 37893: Add data migration tests This test file utilizes the same SIPconfig.xml as the atomicupdate. To test different SIPConfig.xml configurations using k-t-d, edit the contents of /etc/koha/sites/kohadev/SIPConfig.xml and run the test file again. All tests should always pass. [IMPORTANT]: The atomicupdate file used in this test (bug_37893.pl) needs to be updated to the respective DBrev file when it's pushed. prove t/db_dependent/Koha/SIP2/SIP2ModuleMigration.t Test plan for the whole module: 1) Checkout the branch and reset_all 2) Visit the administration page: /cgi-bin/koha/admin/admin-home.pl 3) Notice the new 'Self-service circulation (SIP2)' item under 'Patrons and circulation'. Click it. 4) Notice you are now on the new SIP2 module. Create some institutions, accounts, listeners, etc. Play around with the forms. 5) Notice everytime you add/edit a new SIP2 'resource', a prompt asking to restart the SIP2 server is shown. If you confirm it, it will restart the SIP server in order for the new data to take effect. 6) Run 'updatedatabase'. Notice the contents from /etc/koha/sites/kohadev/SIPConfig.xml have been migrated to the database are should be accessible in the UI. 7) Confirm all the data has been migrated correctly, and is editable in the UI as expected. 8) You can repeat this test plan but edit the contents of /etc/koha/sites/kohadev/SIPConfig.xml with a more complex and thorough configuration (something resembling a real SIPConfig.xml) 9) After updating the contents of SIPConfig.xml, restart SIP: koha-sip --restart 10) Test the module again, verify the contents have been migrated as expected. 11) Run the migration test again to ensure that SIP2 is being served the exact same configuration before and after the migration: prove t/db_dependent/Koha/SIP2/SIP2ModuleMigration.t Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit f3dc7ce05e6a1adfc59349d9beedfe979daa36b0 Author: Pedro Amorim Date: Tue Feb 18 16:02:05 2025 -0100 Bug 37893: Add tables to atomicupdate Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 8e83b27a0f27497f9cdfc27f689ac57371c09618 Author: Pedro Amorim Date: Thu Oct 10 10:47:58 2024 +0000 Bug 37893: SIP Configuration read from database To test: perl ./C4/SIP/SIPServer.pm /etc/koha/sites/kohadev/SIPconfig.xml Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass commit 1cea8fb01de9b585739ef829ce803b17c36cdaf6 Author: Pedro Amorim Date: Wed Feb 12 15:58:32 2025 -0100 Bug 37893: SIP accounts - automated dbic - add register Signed-off-by: Andrew Fuerste Henry Signed-off-by: Lisette Scheer Signed-off-by: Martin Renvoize Signed-off-by: Lucas Gass