Hello Reader, here is this month’s iRODS news and developments!
If you’re facing an issue with iRODS you’re not sure how to solve, please do drop me a line; if I’ve come across a solution or seen something relevant elsewhere, I’ll do my best to let you know. Or just drop me a mail to say ‘Hi’. Always nice to hear from people!
News
Breaking news - I have some very limited availability for consultancy.
My website is still in development, but if I was going to write this as a Thought-leadery LinkedIn post, it would go something like this;
iRODS Infrastructure Consulting Services
Leverage proven expertise to accelerate your iRODS deployment, minimize risks, and optimize performance at scale.
Deployment & Infrastructure • Automated Installation & Orchestration - Streamline deployments across bare metal, Docker, and Kubernetes environments with Infrastructure as Code approaches that reduce deployment time by 60-80% and eliminate configuration drift.
• Architecture Review & Optimization - Drawing from experience managing 40PB across 200+ servers, I provide actionable recommendations to improve performance, reduce costs, and prevent common pitfalls before they impact production
Migration & Upgrades • Low-Downtime Upgrade Strategy - Having successfully upgraded production systems from iRODS 3.3.1 to 4.3.3, I can develop tailored migration plans for your systems that minimize business disruption and eliminate upgrade-related outages
• Risk Assessment & Mitigation - Identify potential upgrade blockers early and create detailed rollback procedures to ensure business continuity throughout the transition
Operations & Reliability • DevSecOps Integration - Implement CI/CD pipelines and automated testing for iRODS configurations, reducing manual errors and accelerating deployment cycles
• Monitoring & Observability Framework - Establish comprehensive monitoring strategies focused on the CAP theorem (Consistency, Availability, Partition tolerance) with early warning systems that prevent outages before they occur
Value Delivered: Reduced operational overhead, improved system reliability, faster time-to-production, and measurable ROI through optimized resource utilization.
OK, pitch over, onto the news!
Mastodon Toots
- with iRODS 5, improves compatibility with earlier versions of iRODS, expands support for targeting replicas for I/O operations, improves write performance to data objects, and removed OAuth client mode (supporting only protected resource mode now). Dockerfiles for EL8 and EL9 have been added to make building packages easier. https://github.com/irods/irods_client_http_api/rel eases/tag/0.6.0#irods#cpp#http#oidc#datamanagementCard:Release 0.6.0 · irods/irods_client_http_apiDescription: This release makes the HTTP API compatible with iRODS 5, improves compatibility with earlier versions of iRODS, expands support for targeting replicas for I/O operations, and improves write perform…
- compatible with iRODS 5 and adds support for Presigned URLs. The server also performs validation of the configuration file on startup. [https://github.com /irods/irods_client_s3api/releases/tag/0.4.0](https://github.com/irods/irods client_s3_api/releases/tag/0.4.0) #irods#s3#datamanagementCard:Release 0.4.0 · irods/irods_client_s3_apiDescription: This release makes the S3 API compatible with iRODS 5 and adds support for Presigned URLs. The server also performs validation of the configuration file on startup. Changed Update default JSON sch…
- Authentication for the Python iRODS Client (PRC) - Sameer Khan - August 11, 2025 https://www.youtube.com/watch?v=oCUrqN0IBlE&list=PL29FhEN41mZNrmk7D7icr qt_fWsi_h6ye&index=1#irods#python#pamCard:TRiRODS: pam_interactive Authentication for the Python iRODS Client (PRC)
- support for the PAM Interactive authentication scheme. It also fixes some compatibility issues with Microsoft Windows. https://github.com/irods/irods4 j/releases/tag/0.3.0#irods#java#windows#datamanagementCard:Release 0.3.0 · irods/irods4jDescription: This release adds support for the PAM Interactive authentication scheme. It also fixes some compatibility issues with Microsoft Windows. Changed Require authentication plugin instance be passed to…
- Management Tool and GenQuery2 - Ramsey Jooss - August 11, 2025 https://ww w.youtube.com/watch?v=GnxzGwiKhXA&list=PL29FhEN41mZNrmk7D7icrqt_fWsi_h6ye&inde x=2#irods#reactjs#sql#cppCard:TRiRODS: Updates to the iRODS Zone Management Tool and GenQuery2
- Migrating from Jargon to irods4j for its iRODS support - Yujun Ming - August 11, 2025 https://www.youtube.com/watch?v=nDlAxsbZenM&list=PL29FhEN41m ZNrmk7D7icrqt_fWsi_h6ye&index=3#irods#java#cyberduckCard:TRiRODS: Refactoring Cyberduck: Migrating from Jargon to irods4j for its iRODS support
- https://irods.org/trirods pam_interactive Authentication for the Python iRODS Client (PRC) - Sameer Khan Jargon-to- irods4j Migration for Cyberduck’s iRODS Support - Yujun Ming Updates to the iRODS Zone Management Tool and GenQuery2 - Ramsey Jooss #irods#java#python#reactjs#sql#cpp#cyberduck#pamCard:iRODS
- development-update- july-2025/](https://irods.org/2025/07/irods-development- update-july-2025/) #irods#cpp#java#python#metalnx#s3#presignedurls#el10#pam#cyberduck#zmt#nfsrods#jargon#irods4j#openidCard:iRODS
GitHub Activity
Robot Warning; the following has been generated by Claude looking through the past 30 days of issues and generating summaries. I do read through them before posting, but in case anything slips through, or doesn't look right, do let me know.
Main Repository (irods/irods
)
Open Issues – irods/irods
Performance Improvement for Rename/Move Operations in iRODS
Overview
A proposed enhancement to improve the performance of rename and move operations in iRODS by restructuring how physical path information is stored in the database.
Current Challenges
The existing database structure requires updating multiple entries during rename/move operations, which can be slow and destructive, especially for large collections.
Proposed Solution
Introduce a new database table r_phy_main
to model physical path information as a tree-like structure:
- Replace
data_path
with a new phy_id
column
- Create a new table with columns:
id
: Unique identifier
pid
: Parent ID
type
: Path element type (file/directory)
path_element
: Single path component
Potential Benefits
- Significantly faster rename/move operations
- Reduced database storage
- Increased flexibility in path manipulation
- Potential for O(1) update
Issue Summary:
A bug has been identified where recalculating physical quotas sometimes produces incorrect totals. The issue was discovered during work on the HTTP API’s quotas support and is reproducible using a provided shell script or via the HTTP API’s test_quotas_endpoint
. The problem persists even with the connection pool disabled, suggesting that it should be replicable with icommands. Initial assumptions pointed to the connection pool as the culprit; however, further testing confirmed that the connection pool is not responsible. The issue is evident in scenarios where quick operations succession does not allow the database transactions to complete correctly, leading to erroneous quota reports, such as reporting quota_over: 24
instead of the expected quota_over: 22
.
Comments Summary:
- e issue might be linked to a previously reported problem, as suggested by a reference to issue #4089.
- quiries were made about which specific operations in the shell script fail unexpectedly; it was clarified that while no operations fail outright, the final quota listing occasionally shows incorrect totals.
- rther clarification was requested on the output considered incorrect or surprising, leading to an update in the issue description to better highlight the erroneous outcomes.
This problem has been observed in version tests against iRODS 4.3.4 and 5.0.1, and adding sleep calls within the HTTP API’s quota tests temporarily resolves the issue, indicating a timing or synchronization problem. The community is encouraged to investigate this further to identify a more permanent solution.
Issue Summary: The iRODS 2025 Roadmap includes plans to integrate certain stable plugins directly into the iRODS server. Among these, the Logical Quotas rule engine plugin (REP) is targeted for redesign and potential absorption. The proposed new design would model after the established physical quotas system, potentially using a new database table to manage quotas, thus eliminating the need for Policy Enforcement Points (PEPs) and possibly metadata. This change is motivated by the need to address inaccuracies and drift in quota totals currently experienced with the Logical Quotas REP, which also necessitates periodic recalibration via a recalculate-totals
command. The redesign aims to simplify the integration process and enhance the reliability and performance of quota management within iRODS.
Summary of Issue:
The issue focuses on the documentation of access_time
grid configuration options for the iadmin get_grid_configuration
command. Currently, while these options are documented in the system overview, they are not listed in the help text for the command. The suggestion is to either add these options to the help text or remove the documented configuration options to maintain consistency.
Recommended Action:
Update the iadmin get_grid_configuration
help text to include access_time
grid configuration options in the 5.0.2 release, ensuring comprehensive and consistent documentation for users.
- State: open Labels: testing Description: https://github.com/irods/irods/issues/8613; https://github.com/irods/irods/issues/8613 will instead be only for
irsync
.
Bug Report: istream Read Behavior with Non-Existent Replica
Issue Summary
A bug was identified in iRODS versions 4.3.4 and 5.0.1 where the istream read
command does not report an error when attempting to read a replica from a resource that does not contain the data object.
Reproduction Steps
- Create two separate resources using
iadmin mkresc
- Create a test file and put it on the first resource using
iput -R resc1
- Attempt to read the file from the second resource using
istream read -R
resc2
Expected Behavior
The command should return an error message indicating that no replica exists on the specified resource, similar to the behavior of iget
.
Actual Behavior
istream read
silently returns the data from the existing replica on the first resource, with a zero exit status, without reporting any error.
Technical Context
This issue appears related to a similar problem previously documented for iget
(referenced in GitHub issue #4475). The problem likely involves the DataObjOpen or replica_open API not properly handling replica accessibility checks.
Observations and Recommendations
- The bug is reproducible across iRODS 5.x versions
- A fix would require modifying the replica access validation in
Summary of Issue:
A critical inconsistency has been identified in how different iRODS clients handle malformed characters (such as null bytes, , and non-printable characters) during metadata operations across iRODS version 5.0.0/1.
Key Observations:
- Different client implementations (PRC, gocmd, iCommands) exhibit varying behaviors when processing metadata with non-standard characters
- iAssociateKeyValuePairsToObj can successfully add metadata with these characters
- n-C++ clients like PRC and gocmd fail when attempting to query or list such metadata
- iquest and ils can handle these characters by treating them as empty text
Specific Failure Modes:
- Python PRC client: Raises XML parsing errors when attempting to query or list metadata
- Go client (gocmd): Generates an “Unexpected error” with XML syntax error
- iCommands: Successfully lists metadata with these characters
Potential Impact: This inconsistency could cause significant interoperability issues between different iRODS client implementations, potentially leading to metadata retrieval failures or data access problems.
Recommended Actions: 1. Standardize metadata character handling across all client implementations 2. Implement consistent error handling or character sanitization 3. Consider adding explicit validation for metadata attribute and value characters
Issue Summary:
A user reported a bug in iRODS 4.3.4 where the msiAssociateKeyValuePairsToObj()
microservice consistently returns a CAT_INVALID_ARGUMENT
error when attempting to attach metadata to data objects, collections, or users using Python Rule Engine Plugin (PREP).
Detailed Observations:
- The issue occurs in multiple scenarios, including rule files and PEP calls
- Consistent error codes include
CAT_INVALID_ARGUMENT
and RULE_ENGINE_ERROR
- fferent test cases produced varying log outputs, including potential UTF-8 encoding issues
Test Scenarios and Results: 1. PEP calls consistently produce CAT_INVALID_ARGUMENT
errors 2. Rule file tests showed varied behaviors:
- Errors when attempting metadata attachment to collections
- Potential UTF-8 byte sequence problems
- Inconsistent error logging depending on specific script modifications
Community Discussion: The issue was initially suspected to be a duplicate of two previous GitHub issues (#8265 and #8528). After extensive testing, the reporter confirmed similarities but noted distinct behavioral differences across iRODS versions.
Recommended Next Steps:
A recent issue has been raised concerning the review of core.re
in the context of determining which options might need to be considered as zone-wide rather than limited to narrower scopes. This initiative stems from ongoing developments related to implementing quotas in the iRODS HTTP API, which highlighted the potential need for better alignment of configuration options at a broader, zone- wide level.
The issue can be traced back to discussions in a pull request on the iRODS HTTP API GitHub repository, where the need for migrating specific options into the catalog was identified. This migration is crucial for supporting enhanced functionality and maintaining consistency across different parts of the iRODS ecosystem.
In the recent GitHub discussion, it was highlighted that there is a discrepancy in the GenQuery1 queries utilized for resource quotas in iRODS. Specifically, the issue points out that while one query condition checks QUOTA_RESC_ID !=
'0'
, another looks at QUOTA_RESC_NAME != '0'
. The links provided in the issue direct to the relevant lines in the iRODS client icommands GitHub repository. The reporter suggests that both queries should uniformly use QUOTA_RESC_ID
for consistency and to prevent potential confusion in the future.
An issue has been raised regarding the behavior of group quotas in iRODS when they are disabled and then re-enabled. The problem is that when a group quota is disabled after updates to data usage and then re-enabled, the quota’s calculated values are not reset but are retained. This behavior is not currently reflected in the iRODS documentation or the iadmin
help text, leading to potential confusion for administrators.
The issue provides a detailed example using the iRODS command line (iadmin
and istream
commands), illustrating that disabling a group quota hides its information without erasing it from the catalog. This retained data is then still visible when the quota is re-enabled, showing no reset in quota calculations despite the quota having been disabled.
The community discussion is centered around whether this behavior should be merely documented or if the functionality itself should be adjusted. The concern is that while this might be an intended optimization, it could be unexpected and confusing for system administrators managing group quotas.
- Documentation Proposal**: The issue suggests adding documentation to both the help text of
iadmin
and the iRODS official documentation site to clarify this behavior.
- Behavioral Change Consideration**: Additionally, there’s an open question regarding whether the behavior itself should be altered — specifically, whether disabling and re-enabling a quota should reset its values to avoid confusion.
Feedback from the community and further discussions are encouraged to determine the best path forward, ensuring both clarity in documentation and intuitive system behavior.
A bug has been identified in the iRODS server where negative integers passed as replica numbers are silently ignored instead of triggering an error. This issue was discovered during HTTP API testing with iRODS server version 5.0.1.
The problem affects multiple stable branches:
- main
- 5-0-stable
- 4-3-stable
The expected behavior is for the server to explicitly report an error when a negative integer is provided as a replica number, rather than silently processing the request.
Additional context and discussion can be found in a GitHub pull request comment at: https://github.com/irods/irods_client_http_api/pull/454#discussion_r2280126746
Recommended action: Implement input validation to ensure replica numbers are non-negative and return an appropriate error message when negative values are detected.
Proposed Enhancement for Error Handling in Server Resource Management
Current Behavior:
- The server already returns an error when both a replica number and resource name are passed simultaneously
- The proposed change would extend this error handling to scenarios involving resource hierarchy strings
Recommended Action:
- Implement error checking across all relevant APIs
- Be sure that when a resource hierarchy string is passed along with either a replica number or resource name, the server returns an appropriate error message
Branches to be Updated:
- main
- 5-0-stable
- 4-3-stable
Implementation Scope:
- Review and modify APIs that handle resource parameters
- Add validation to prevent conflicting parameter combinations
- Provide clear, consistent error messaging
Next Steps:
- Develop test cases to verify the new error handling behavior
- Update documentation to reflect the parameter validation changes
Summary of Issue and Comments
Issue Overview: A user reported a memory usage problem with iRODS iput/irsync commands when uploading large directories. Specifically, the issue occurs during recursive uploads of multiple files, causing the irodsAgent process to consume increasing amounts of memory until it crashes.
Key Details:
- Environment: iRODS version 5.0.1 on AlmaLinux 9.6
- Reproduction Steps:
- Create a directory with 1000 files (5MB each)
- Use iput -vPr or irsync -vr to upload recursively
- Observed Behavior:
- Memory usage of irodsAgent process continuously increases
- Process crashes around 60 files on a 2GB memory container
- Errors include “SYS_HEADER_READ_LEN_ERR” and connection endpoint failures
Potential Impact: The memory leak prevents successful large directory uploads and can cause data transfer interruptions.
Comment Response: A maintainer attempted to reproduce the issue on the main branch using a Docker container but could not replicate the memory problems. They suggested investigating potential local rule configurations that might be causing the unexpected behavior.
Recommended Next Steps: 1. Verify the issue on a clean, vanilla iRODS installation 2. Investigate potential custom rule or configuration interactions
Issue Summary
A user is experiencing authentication issues when attempting to initialize an iRODS connection with a password containing the “#” special character. The problem occurs specifically when using the iinit command, while other authentication methods like CyberDuck work without issue.
Environment Details
- iRODS Version: 4.3.1
- Operating System: Ubuntu 18.04.6 LTS
Observed Problem
When running iinit, the user receives an authentication error: “CAT_INVALID_USER: failed to perform request”. Server logs indicate an authentication plugin operation failure.
Verification Steps
- User account exists and appears normal in iuserinfo
- Password can be set successfully on the iCAT server
- Alternative authentication methods (CyberDuck) function correctly
Recommended Actions
- Investigate potential character escaping or encoding issues with special characters in iRODS authentication
- Check iRODS authentication plugin compatibility with special characters
- Verify client-side authentication mechanism for command-line tools
Next Steps
Users experiencing similar issues should:
- Confirm the exact authentication method
- Verify password complexity and special character handling
- Test alternative authentication mechanisms
- [iadmin moduser type failing in some circumstances.](https://github.com/irods/irods/issues/8607)
Issue Summary:
A user encountered difficulties using the iadmin moduser
command to change user types in iRODS 4.3.1 on Ubuntu 18.04. Specifically:
- Attempts to change users with a custom
ds-service
type to rodsuser
failed
- Changing a user to
rodsadmin
worked, but reverting back to rodsuser
failed
- Errors included
SYS_LIBRARY_ERROR
and CAT_INVALID_USER_TYPE
The failures appeared to be related to inconsistent JSON structure in the zone configuration, specifically in the zones.servers
section where some entries are arrays and others are objects.
Comments Summary:
Developers identified the issue as likely stemming from an incorrect usage of the nlohmann::json
library in the GeneralAdmin API. The root cause appears to be:
- helper function checks for user type changes, potentially throwing an exception
- The
tedgin
user change to rodsadmin
worked because privilege level upgrade checks were bypassed
- The zone configuration’s mixed array/object structure may be causing JSON parsing problems
A sanitized zone configuration file was provided to help diagnose the issue. The recommendation is to investigate the JSON structure and how it’s being parsed in the user type modification process.
Related GitHub issue #8233 about
Issue Summary:
A bug has been identified in iRODS versions 4.2.12 and 4.3.4 involving concurrent replication of data objects, particularly when file or collection names contain single quotes. The issue manifests as failed replication attempts with internal system errors (SYS_INTERNAL_ERR, error code -154000).
Key Observations:
- Occurs during parallel replication of multiple data objects
- nsistently reproducible when single quotes are present in file or collection names
- Not observed in iRODS 5.0.1
- Affects both collection and object names with single quotes
- proximately 407 errors occurred during a batch of 151,000 object replications
Reproduction Steps: 1. Create test files with single quotes in names 2. Attempt parallel replication using multiple threads or background processes 3. Observe replication failures with specific error messages
Potential Root Cause: The issue appears related to GenQuery1 implementation and potential race conditions in the replica access table during concurrent operations.
Recommended Actions:
- Avoid concurrent replication of objects with single quotes in names
- Wait for potential fix in upcoming iRODS 4.3.5 release
- Test replication in sequential mode if single-quoted paths are unavoidable
In the referenced GitHub issue, there is a call to revisit the implementation of the mysql_functions.sql
in the iRODS project. Currently, the script uses command-line client binaries for MySQL/MariaDB instead of interfacing directly via pyodbc. The script features a stored procedure requiring a change in SQL delimiter, which ODBC does not traditionally support, hence the reliance on CLI. The suggestion is made to modify mysql_functions.sql
by adjusting delimiters and newlines to make it compatible with pyodbc. This change would remove the dependency on the MySQL/MariaDB client binaries and address compatibility issues with certain versions of the MySQL ODBC connector (versions 8.0.40 through 8.3.0 and possibly beyond).
Commentary on the issue provides historical context and explores the reasons behind the initial design decisions. One comment inquires about the rationale for the existing abstraction and its presence in legacy iRODS repositories. Another comment notes that MySQL’s lack of native sequence support led to the emulation of sequences via tables and stored procedures. A lack of comprehensive documentation on creating stored procedures with compound statements through ODBC is speculated to be a reason for the original reliance on CLI tools instead of pyodbc. There is also a mention of having used pypyodbc as an intermediary solution. The discussions highlight a general uncertainty and a need for documentation regarding the use of ODBC for complex SQL operations within iRODS.
Summary of Issue:
The issue discusses an unnecessary CMake preprocessing step for the mysql_functions.sql
file in the iRODS database plugin. Currently, the project uses configure_file
to generate mysql_functions.sql
from mysql_functions.sql.in
, but the template contains no CMake variable references, resulting in an identical output file.
The recommendation is to remove this redundant preprocessing step, as it serves no functional purpose in the current version of the software.
Discussion Context:
The comments reveal historical context for the preprocessing step. It was previously necessary for compatibility with MySQL versions prior to 5.5, where some variable substitutions were likely required. However, in the current software version, this preprocessing is no longer needed.
A specific commit reference was shared demonstrating the previous need for variable substitution, confirming that the preprocessing was once meaningful but is now superfluous.
Recommended Action:
- Remove the
configure_file
call for mysql_functions.sql.in
- Directly use the original template file
- Verify no loss of functionality after removing the preprocessing step
The proposed enhancement involves extending the HTTP API’s procApiRequest
functionality to allow more flexible specification of packing instructions during serialization. This would enable callers to provide custom packing instruction tables, which would require corresponding support for deserialization in the iRODS server.
The enhancement aims to improve the flexibility of data serialization in the iRODS HTTP API, potentially allowing more customized data handling and transmission. The implementation would involve modifying the current API request processing to support dynamic packing instruction configuration.
A reference to a specific GitHub pull request discussion (https://github.com/irods/irods_client_http_api/pull/432#discussion_r2229679214) is provided for additional context about the proposed changes.
Closed Issues – irods/irods
Python iRODS Client (irods/python-irodsclient
)
Open Issues – irods/python-irodsclient
Summary of Issue:
A user encountered an issue while trying to install the Python iRODS client on Ubuntu 24, facing a system-wide package management restriction (PEP 668) that prevents direct pip installation. Upon attempting to use the apt-installed version of python3-irodsclient, they discovered the package is significantly outdated (version 0.8.1 from 2018). The user seeks guidance on either updating the apt package version or removing the old version.
Key Technical Details:
- Ubuntu 24 enforces externally managed Python environments
- Recommended solutions include:
- Using virtual environments
- Installing via apt-get
- Using pipx for package management
Summary of Comments:
The project maintainers responded that they:
- Do not manage the Ubuntu distribution package
- Only publish packages to PyPI for pip installation
- ggested the user contact Ubuntu package maintainers to request a version update
Recommended Actions: 1. Create a Python virtual environment 2. Contact Ubuntu package maintainers about updating the package version 3. Consider using pipx for easier Python package management
Potential Workarounds:
- Use
python3 -m venv
to create an isolated environment
- Install the latest version directly from PyPI within a virtual environment
- Use
pipx
for application-specific package installations
Issue Summary:
A bug was discovered in the user creation process where attempting to create a local zone user with the same name as an existing remote user causes a MultipleResultsFound
error. The proposed solution involves modifying the userManager.get()
method to expand the user zone to the full local zone name when no zone is explicitly specified.
Potential Impact:
- Affects user creation methods, including
create()
and create_with_password()
- Prevents creating local users with names that match existing remote users
Technical Details:
- Error occurs during user creation when zone is not explicitly defined
- Recommended fix: Ensure all iRODS calls include complete user zone information
Resolution Status: The issue has been addressed and the fix was incorporated into a related pull request (#760). The development team plans to conduct further testing to validate the solution.
Discussion Highlights: The team acknowledged the bug and agreed on the proposed approach to resolve the user creation zone-matching problem. Consensus was reached quickly, with developers confirming the proposed solution and its implementation.
Next Steps:
- Complete testing of the implemented fix
- Verify resolution across different user creation scenarios
Issue Summary:
A bug has been identified in the GeneralAdminRequest API for removing remote users. When removing a user from a non-local zone, the home collection is only successfully deleted when the user is specified in the “user#zone” format. If the user and zone are passed as separate parameters, the home collection remains in the catalog.
Reproduction Steps: 1. Create a remote zone 2. Create a user in the remote zone 3. Attempt to remove the user using different parameter formats 4. Verify home collection removal
The issue demonstrates two scenarios:
- th GENADM_REMOVE_USER_FMT=’combined’: Home and trash collections are successfully removed
- With GENADM_REMOVE_USER_FMT=’’: Home and trash collections are not removed
Technical Impact: This bug affects the complete removal of remote users, potentially leaving orphaned collections in the iRODS catalog when using the GeneralAdmin API.
Recommended Action: Modify the GeneralAdmin API to consistently handle user removal across different parameter passing formats, ensuring home and trash collections are always removed when a user is deleted.
Environment:
- Python iRODS Client (PRC)
- iRODS system with remote zone functionality
A potential improvement has been proposed for the Python iRODS Client library regarding query behavior. The suggestion is to raise an error when attempting to execute a GenQuery without specifying any columns to return.
The rationale is that such a query carries no meaningful purpose, as no rows could or should be returned. By implementing an error, the library would prevent potentially confusing or unintended query executions and provide clearer guidance to developers about proper query construction.
This suggestion was originally raised by @korydraughn, indicating a focus on improving the library’s robustness and usability.
In the group admin interface of iRODS, there is an issue where the user_zone
parameter is being ignored when using the UserAdminRequest
endpoint. Attempts to use the zone
parameter result in a CAT_SQL_ERR
, as detailed in a related GitHub issue (https://github.com/irods/irods/issues/8583).
The comments on the issue provide further insights:
- Initially, it was assumed that this behavior was by design, suggesting that the function
users.create_with_password
was not intended to handle the creation of remote users.
- However, this assumption was quickly retracted when a commenter mentioned successfully adding a remote user using the
igroupadmin mkuser
user@otherzone
command.
- Additionally, a link to a work-in-progress fix for this issue was shared, which can be found at https://github.com/irods/python-irodsclient/pull/760. This indicates ongoing efforts to address the problem directly in the client library.
Closed Issues – irods/python-irodsclient
externals (irods/externals
)
Open Issues – irods/externals
Closed Issues – irods/externals
YODA (UtrechtUniversity/yoda
)
Open Issues – UtrechtUniversity/yoda
Feature Request: Multiple Schema Support in Public Metadata Editor
Problem Statement: The current public metadata editor for the Yoda project only displays the latest default schema (version 3), despite multiple schemas being available within the Yoda system. Researchers and users need more flexibility in selecting and using different metadata schemas.
Proposed Solution: Implement a dropdown selection box that allows users to choose from available schemas, which would then load the selected schema in the public editor for metadata completion.
Motivation: While Yoda is an excellent metadata tool, it isn’t universally available across all organizations. Existing alternatives like CodeMeta and Dublin Core generators lack the user-friendly interface of the Yoda public editor.
Acceptance Criteria:
- Add a schema selection mechanism to the public metadata editor
- Enable users to choose from multiple available schemas
- Dynamically load the selected schema for metadata input
Key Considerations:
- Enhance usability for researchers with varying metadata requirements
- Provide a more flexible metadata capture experience
- Maintain the current intuitive design of the public editor
Next Steps:
- Evaluate technical implementation of schema selection
- Design user interface for schema dropdown
- Test compatibility with existing metadata schema structures
The feature would significantly improve the metadata collection process by offering greater schema flexibility and user choice.
If you think someone else would appreciate this newsletter, they can sign up at https://theresource.metadata.school/
Seven (!) Yaks were shaved in the making of this newsletter. That's what I get for asking A.I. to help.