Alan King and Derek Dong
iRODS Consortium

Technology Update
iRODS 4.3.1
November 12-17, 2023
Supercomputing 2023
Denver, CO
Contributors - 4.3.1
| iRODS Release | Issues Closed |
|---|---|
| 4.3.1 | 236 |
~/irods $ git shortlog --summary --numbered 4.3.0..4.3.1
204 Kory Draughn
101 Alan King
24 Markus Kitsinger (SwooshyCueb)
15 Nishant Dash
14 Martin Jaime Flores Jr
12 Justin James
10 Daniel Moore
7 Violet White
4 Felix A. Croes
3 Terrell Russell
2 Derek Dong
2 Phillip Davis
1 Awab Masroor
1 Peter Verraedt
1 June Releford
1 Leonardo Lenoci

4.3.1 User Experience Updates
- Removed setup for rsyslog/logrotate (syslog implementation assumptions)
- Replaced log_facility with server_zone in log message output
- Deprecated SimpleQuery
- Exposed client connection information to acPreConnect()
- ichmod honors the permission model
- unixfilesystem resource plugin supports detached mode
- Additional info added to izonereport; structure flattened for clarity
- New configuration options: TCP keepalive, authentication
- Newly packaged for Ubuntu 22, Debian 12, and Enterprise Linux 9

4.3.1 Core Server Enhancements
- Approaching GCC compatibility
- Added support for Address Sanitizer
- New API plugin: rc_switch_user
- iRODS Project Templates for C++
- Improved documentation

- Library feature tests
- New API plugin: rc_check_auth_credentials
- New zone administration library for C++
- New ticket administration library for C++
- New C++ library: process_stash
Build and Packaging
We continue to move towards a more Normal and Boring approach to build and packaging:
- Build against libstdc++
- Reduction / Elimination of irods-externals
- Unprivileged build and packaging in development environment containers
This effort will enable iRODS to exist on more platforms and architectures, increasing accessibility for users and developers.

Improved Documentation - Policy Cookbook
An online resource dedicated to providing best practices and the latest techniques to various policy-based situations encountered in the iRODS ecosystem.
The cookbook covers topics such as ...
- Synchronizing Delay Rules using Metadata
- Naming Schemes and Conventions
- Sharing data across PEPs
- Simulating User Quotas
- Implementing maintainable Policy through reusable rules
If you have suggestions on how to improve the cookbook, please reach out.

iRODS Clients

Protocols
- HTTP API
- S3 API
- NFSRODS
- irodsfs (FUSE)
- SFTPGo
- k8s CSI Driver
- Davrods
Libraries
- irods-dev (C/C++)
- python-irodsclient (Python)
- go-irodsclient (Go)
- Jargon (Java)
- rirods (R)
CLIs
- iCommands
- iRODS CLI
- gocommands
GUIs
- Metalnx
- ZMT
- iBridges
iRODS CLI

Restart of a previous effort to make a modernized iRODS CLI:
-
A brand new client, not just an icommands rewrite
- The aim is to write everything with idiomatic C++
-
Single executable instead of 50+ icommands
-
$ irods put testFile
-
-
Optionally modular, thanks to CMake magic (and a hint of preprocessor)
- Reads .so plugins as sub-commands via boost:dll, or
- Sub-commands compiled into main executable
-
Aims to make use of the newest libraries
-
irods::filesystem and friends for iRODS things
- Avoiding icommand-specific libraries, too
- A lot of boost, everywhere
-
irods::filesystem and friends for iRODS things
-
Implementations for several of the simpler commands are in a working state
- ls, mv, put, get, etc.
- Still a WIP, first goal is to reach feature parity with icommands
Big Picture
Core
-
4.3.x/4.4.x/5.0 - Satisfy Roadmap (Cloud-friendliness, Replace PackStruct, etc.)
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

Technology Update - iRODS 4.3.1 (Booth Edition)
By Alan King
Technology Update - iRODS 4.3.1 (Booth Edition)
- 1,034