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.expand_path('~/.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

Returns:

  • (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_pipObject



45
46
47
# File 'lib/legion/extensions/exec/helpers/constants.rb', line 45

def venv_pip
  "#{LEGION_PYTHON_VENV}/bin/pip3"
end

.venv_pythonObject



41
42
43
# File 'lib/legion/extensions/exec/helpers/constants.rb', line 41

def venv_python
  "#{LEGION_PYTHON_VENV}/bin/python3"
end