42#define FOREACH_JSENGINE_FIELD(XX) \
43 XX(max_heap_bytes, decltype(JSRuntimeOptions::max_heap_bytes)) \
44 XX(max_stack_bytes, decltype(JSRuntimeOptions::max_stack_bytes)) \
45 XX(max_execution_time_ms, decltype(JSRuntimeOptions::max_execution_time_ms)) \
46 XX(log_exception_details, decltype(JSRuntimeOptions::log_exception_details)) \
48 return_exception_details, \
49 decltype(JSRuntimeOptions::return_exception_details)) \
51 max_cached_interpreters, \
52 decltype(JSRuntimeOptions::max_cached_interpreters))
59 j = nlohmann::json::object();
60#define XX(field, field_type) j[#field] = options.field;
68#define XX(field, field_type) \
70 const auto it = j.find(#field); \
73 options.field = it->get<field_type>(); \
83 return "JSRuntimeOptions";
88 schema = nlohmann::json::object();
89 schema[
"type"] =
"object";
91 auto properties = nlohmann::json::object();
93#define XX(field, field_type) \
94 properties[#field] = ccf::ds::openapi::components_ref_object( \
95 ccf::ds::json::schema_name<field_type>());
101 schema[
"properties"] = properties;
104#undef FOREACH_JSENGINE_FIELD
110 static constexpr auto JSENGINE =
"public:ccf.gov.js_runtime_options";
#define FOREACH_JSENGINE_FIELD(XX)
Definition jsengine.h:42
Definition app_interface.h:14
void fill_json_schema(nlohmann::json &schema, const ClaimsDigest *)
Definition claims_digest.h:64
std::string schema_name(const ClaimsDigest *)
Definition claims_digest.h:59
void from_json(const nlohmann::json &j, ClaimsDigest &hash)
Definition claims_digest.h:54
void to_json(nlohmann::json &j, const ClaimsDigest &hash)
Definition claims_digest.h:49
#define XX(num, name, string)
static constexpr bool return_exception_details
Definition jsengine.h:19
static constexpr size_t max_heap_bytes
Definition jsengine.h:15
static constexpr bool log_exception_details
Definition jsengine.h:18
static constexpr size_t max_cached_interpreters
Definition jsengine.h:20
static constexpr uint64_t max_execution_time_ms
Definition jsengine.h:17
static constexpr size_t max_stack_bytes
Definition jsengine.h:16
bool return_exception_details
return exception details in the response NOTE: this is a security risk as it may leak sensitive infor...
Definition jsengine.h:37
size_t max_stack_bytes
stack size for QuickJS runtime
Definition jsengine.h:26
size_t max_heap_bytes
heap size for QuickJS runtime
Definition jsengine.h:24
uint64_t max_execution_time_ms
max execution time for QuickJS
Definition jsengine.h:28
bool log_exception_details
emit exception details to the log NOTE: this is a security risk as it may leak sensitive information ...
Definition jsengine.h:33
size_t max_cached_interpreters
how many interpreters may be cached in-memory for future reuse
Definition jsengine.h:39