Module: Legion::Extensions::Exec::Helpers::Constants
- Defined in:
- lib/legion/extensions/exec/helpers/constants.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
120 seconds in ms
120_000- MAX_TIMEOUT =
10 minutes in ms
600_000- MAX_OUTPUT_BYTES =
1 MB
1_048_576- LEGION_PYTHON_VENV =
(ENV['LEGION_PYTHON_VENV'] || File.('~/.legionio/python')).freeze
- BASE_ALLOWED_COMMANDS =
%w[ bundle git gh ruby rspec rubocop ls cat mkdir cp mv rm touch echo wc head tail python3 pip3 ].freeze
- VENV_ALLOWED_COMMANDS =
[ "#{LEGION_PYTHON_VENV}/bin/python3", "#{LEGION_PYTHON_VENV}/bin/pip3" ].freeze
- ALLOWED_COMMANDS =
(BASE_ALLOWED_COMMANDS + VENV_ALLOWED_COMMANDS).freeze
- BLOCKED_PATTERNS =
[ %r{rm\s+-rf\s+/}, /rm\s+-rf\s+~/, /rm\s+-rf\s+\.\./, /sudo/, /chmod\s+777/, /curl.*\|.*sh/, %r{>\s*/etc}, %r{>\s*/usr} ].freeze
- AUDIT_FIELDS =
%i[command cwd exit_code duration_ms executed_at truncated].freeze
Class Method Summary collapse
Class Method Details
.venv_exists? ⇒ Boolean
49 50 51 |
# File 'lib/legion/extensions/exec/helpers/constants.rb', line 49 def venv_exists? File.exist?("#{LEGION_PYTHON_VENV}/pyvenv.cfg") end |
.venv_pip ⇒ Object
45 46 47 |
# File 'lib/legion/extensions/exec/helpers/constants.rb', line 45 def venv_pip "#{LEGION_PYTHON_VENV}/bin/pip3" end |
.venv_python ⇒ Object
41 42 43 |
# File 'lib/legion/extensions/exec/helpers/constants.rb', line 41 def venv_python "#{LEGION_PYTHON_VENV}/bin/python3" end |