Module: Odin::Utils::SecurityLimits
- Defined in:
- lib/odin/utils/security_limits.rb
Constant Summary collapse
- MAX_DOCUMENT_SIZE =
10 MB
10 * 1024 * 1024
- MAX_DEPTH =
64- MAX_PATH_SEGMENTS =
32- MAX_STRING_LENGTH =
1 MB
1_000_000- MAX_ARRAY_INDEX =
10_000- MAX_BINARY_SIZE =
10 MB
10_000_000- MAX_RECORDS =
100_000- MAX_ASSIGNMENTS =
100_000- MAX_REGEX_PATTERN_LENGTH =
500- MAX_EXPRESSION_DEPTH =
32
Class Method Summary collapse
-
.env_int(name, default) ⇒ Object
Read an integer limit from ODIN_
, falling back to default. -
.max_expression_depth ⇒ Object
Expression evaluation depth cap; standing default when unset.
-
.max_transform_fuel ⇒ Object
Transform fuel budget; 0 = unbounded.
-
.transform_timeout_ms ⇒ Object
Transform wall-clock timeout in milliseconds; 0 = unbounded.
Class Method Details
.env_int(name, default) ⇒ Object
Read an integer limit from ODIN_
18 19 20 21 22 23 24 25 |
# File 'lib/odin/utils/security_limits.rb', line 18 def self.env_int(name, default) raw = ENV["ODIN_#{name}"] return default if raw.nil? || raw.strip.empty? Integer(raw) rescue ArgumentError default end |
.max_expression_depth ⇒ Object
Expression evaluation depth cap; standing default when unset.
38 39 40 |
# File 'lib/odin/utils/security_limits.rb', line 38 def self.max_expression_depth env_int("MAX_EXPRESSION_DEPTH", MAX_EXPRESSION_DEPTH) end |
.max_transform_fuel ⇒ Object
Transform fuel budget; 0 = unbounded.
28 29 30 |
# File 'lib/odin/utils/security_limits.rb', line 28 def self.max_transform_fuel env_int("MAX_TRANSFORM_FUEL", 0) end |
.transform_timeout_ms ⇒ Object
Transform wall-clock timeout in milliseconds; 0 = unbounded.
33 34 35 |
# File 'lib/odin/utils/security_limits.rb', line 33 def self.transform_timeout_ms env_int("TRANSFORM_TIMEOUT_MS", 0) end |