Kory Draughn
Chief Technologist
iRODS Consortium
Technology Update
May 28-31, 2024
iRODS User Group Meeting 2024
Amsterdam, Netherlands
Contributors
iRODS Release | Issues Closed |
---|---|
4.3.1 | 236 |
4.3.2 | 154 |
$ git shortlog --summary --numbered 4.3.0..4.3.2 228 Kory Draughn 148 Alan King 58 Markus Kitsinger (SwooshyCueb) 18 Martin Jaime Flores Jr 15 Justin James 15 Nishant Dash 11 Derek D 10 d-w-moore
7 Terrell Russell 7 Violet White 4 Felix A. Croes 2 Phillip Davis 1 Awab 1 Peter Verraedt 1 june-releford 1 lenocil
4.3.1 Release - Updates since UGM 2023 (not exhaustive)
iadmin
subcommands
get/set_grid_configuration
Manage zone-wide settings stored in R_GRID_CONFIGURATION
iadmin
modify_ts_millis
column to R_RESC_MAIN
Known in GenQuery as RESC_MODIFY_TIME_MILLIS
4.3.2 Release
iRODS 4.3.2 is available!
The goals remain the same ...
iRODS 4.3.2 is smaller than previous releases, but offers improved stability with some nice additions.
4.3.2 User Experience Updates
irsync
and iput
correctly ignore symlinksibun
now uses the pax format when handling archive filesiadmin rmuser/rmgroup
are no longer interchangeable4.3.2 Core Server Updates
** Bold items discussed in this talk **
GenQuery2
GenQuery2 is now shipped with the server.
It is still considered experimental, but use is encouraged.
Its implementation can change as a result of community feedback.
Not used by the server, yet.
GenQuery2 will be available in the next release of the Python iRODS Client and Jargon.
New API - rc_replica_truncate
Allows applications to adjust the size of a single replica.
Motivated by NFSRODS.
Additional Information
truncate(2)
rcDataObjTruncate
(deprecated)
There are plans to add support for an ftruncate
-style API as well.
Serialization of more iRODS data types
iRODS 4.3.2 now serializes the following data types for the rule engine plugin framework.
StructFileExtAndRegInp
(ibun
)
ExecMyRuleInp
(irule
)
MsParamArray
(irule
)
Policy implementers can now inspect the contents of requests dealing with archive files and rule execution, and react accordingly.
iRODS 5.0 - Primary Goals
Modernize the startup/shutdown process for the iRODS server.
Things we are going to address ...
SIGHUP
signal
We are considering ...
iRODS 5.0 - Early Design and Implementation
Experimentation is now in progress. It's too early to assert anything about the design/implementation. Initial design is heavily influenced by the iRODS HTTP API.
At the moment, the plan is to honor the following ...
Core Development Team Talks
Not in This Talk / Separate Talks
Phil Owen
iRODS Build and Test v9: Automation via GitHub and Kubernetes
Markus Kitsinger
iRODS Build and Packaging: 2024 Update
Kory Draughn and Martin Flores
iRODS HTTP API v0.3.0 with OpenID Connect
Justin James
iRODS S3 API v0.2.0 with Multipart
Terrell Russell
DAViDD: Initial data management solution for UNC's READDI AViDD Center
iRODS Metadata Templates Working Group: Building Blocks and Lessions Learned
Included in This Talk
Kory Draughn
Indexing Capability Plugin
Python Rule Engine Plugin
Derek Dong
Metadata Guard Rule Engine Plugin
Justin James
S3 Resource Plugin
Globus Connector
Daniel Moore
Python iRODS Client
Kory Draughn
NFSRODS
Indexing Capability Plugin
Python Rule Engine Plugin
irods_rule_vars
now available in more contexts
irods_rule_vars
formerly known as global_vars
global_vars
Improved documentation
print()
Metadata Guard Rule Engine Plugin
Resolved some holes in the implementation.
imeta rmw
"irod%"
)S3 Resource Plugin and Globus Connector
S3 Resource Plugin
Globus Connector
O_CREAT
flag is now set on the first open for write operationsPython iRODS Client - from 1.1.9 to 2.0.1
$ git shortlog --summary --numbered v1.1.9..v2.0.1 25 d-w-moore 7 Terrell Russell 1 Raoul Schram
Release | Issues Affected |
---|---|
1.1.9 | 6 |
2.0.0 | 20 |
2.0.1 | 9 |
Total | 35 |
Python iRODS Client - from 1.1.9 to 2.0.1 (cont.)
Bug fixes
ssl_verify_server = 'none'
stopped working
New features
Python iRODS Client - from 1.1.9 to 2.0.1 (cont.)
Deprecation and Removal
permissions
manager has been removed (originally deprecated)
acls
manager
ils -A
Compatibility Updates
pam_password
support since 2.0.0
NFSRODS - from 2.1.0 to 2.3.0
Updates
ips
Ongoing Investigations
Release | Issues Closed |
---|---|
2.2.0 | 14 |
2.3.0 | 6 |
iRODS Internships - Summer 2024
Convert existing web applications to our new HTTP API (ReactJS + HTTP)
The relatively new iRODS Zone Management Tool is due for its first refactor. Originally built to talk with a REST API, it needs to be converted to talk to the new iRODS HTTP API. If this work on the administrator tool proves pretty straightforward, we are interested in evaluating a similar refactor for our user-level GUI, Metalnx (or to even start designing a new webapp from scratch).
Create new client libraries around our new HTTP API (Various Languages)
Our new iRODS HTTP API is making it easier for developers to interact with the iRODS ecosystem. We would like to help them even more by providing new client libraries in various languages that wrap their native or library-provided http calls. We are most interested in Java, Python, and Javascript, but any language will provide a learning opportunity and help map out the space for other languages.
Big Picture
Core
4.3 - Focus on stability, bug fixes, plugins, clients
5.0 - Modernize the deployment process, improve determinism, libstdc++
Clients
GUIs (ZMT, Metalnx, et al.)
Onboarding and Syncing (Automated Ingest)
File System Integration (NFSRODS, SFTP)
iRODS HTTP API
iRODS S3 API
Continue building out policy components (Capabilities).
We want installation and management of iRODS to become about policy design, composition, and configuration.
Please share your ...
Use cases
Pain points
Hopes and dreams
Open Source Community Engagement
Get Involved
Working Groups
GitHub Issues
Pull Requests
Chat List
Consortium Membership
Tell Others
Publish, Cite, Advocate, Refer