[Feature Request] Support wildcard/regex patterns for Unix socket path allowlisting
Bug Description
Some Ruby libraries generate Unix socket paths dynamically, making it impossible to allowlist them with the current static path configuration.
Example: DRb (Distributed Ruby)
DRb generates socket paths using the pattern:
${TMPDIR}/druby${PID}.${N}
Reference: https://github.com/ruby/drb/blob/master/lib/drb/unix.rb#L77
Use case:
This commonly occurs when running parallel Rails tests, which is the default behavior when running 50+ tests. Each parallel worker spawns processes with different PIDs, resulting in unpredictable socket paths.
Problem:
It's not always possible to configure the socket path—especially when the socket is created by a dependency rather than your own code.
Proposed solution:
Add support for wildcard or regex patterns when configuring allowed Unix sockets, e.g.:
${TMPDIR}/druby*.sock/tmp/druby[0-9]+\.[0-9]+
Environment Info
- Platform: darwin
- Terminal: tmux
- Version: 2.1.15
- Feedback ID: 3210e5a5-addb-4223-abdd-2838bd54838d
Errors
/Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:89:in `initialize': Operation not permitted - connect(2) for /tmp/claude/druby35814.0 (Errno::EPERM)
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:89:in `new'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:89:in `temp_server'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/unix.rb:37:in `open_server'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:795:in `block in open_server'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:793:in `each'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:793:in `open_server'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:1491:in `initialize'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:1819:in `new'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/drb-2.2.3/lib/drb/drb.rb:1819:in `start_service'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelization.rb:40:in `initialize'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:38:in `new'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:38:in `build_parallel_executor'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:32:in `parallel_executor'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:74:in `execution_info'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:69:in `show_execution_info'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/activesupport-8.1.1/lib/active_support/testing/parallelize_executor.rb:17:in `start'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/minitest-5.26.2/lib/minitest.rb:299:in `run'
from /Users/joedupuis/workspace/rails_relay/.devenv/state/.bundle/ruby/3.3.0/gems/minitest-5.26.2/lib/minitest.rb:86:in `block in autorun'This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗