17#define FMT_HEADER_ONLY
18#include <fmt/format.h>
22 static constexpr auto default_js_registry_kv_prefix =
23 "public:custom_endpoints";
43 std::shared_ptr<ccf::js::AbstractInterpreterCache> interpreter_cache =
50 void do_execute_request(
53 const std::optional<PreExecutionHook>& pre_exec_hook = std::nullopt);
70 const std::string& kv_prefix = default_js_registry_kv_prefix);
103 const std::string& module_name);
167 const std::string& kv_prefix = default_js_registry_kv_prefix) :
181 const std::string& user_id,
182 const std::string& action_name,
183 const std::vector<uint8_t>& action_body);
193 std::span<const uint8_t> action,
ccf::AbstractNodeContext & context
Definition base_endpoint_registry.h:123
Definition rest_verb.h:45
Describes the currently executing RPC.
Definition rpc_context.h:58
Definition app_interface.h:26
virtual ccf::js::extensions::Extensions get_extensions(const ccf::endpoints::EndpointContext &endpoint_ctx)
Definition registry.h:146
ccf::ApiResult install_custom_endpoints_v1(ccf::kv::Tx &tx, const ccf::js::Bundle &bundle)
Definition registry.cpp:523
ccf::ApiResult set_js_runtime_options_v1(ccf::kv::Tx &tx, const ccf::JSRuntimeOptions &options)
Definition registry.cpp:705
std::string interpreter_flush_map
Definition registry.h:62
ccf::ApiResult get_custom_endpoint_properties_v1(ccf::endpoints::EndpointProperties &properties, ccf::kv::ReadOnlyTx &tx, const ccf::RESTVerb &verb, const ccf::endpoints::URI &uri)
Definition registry.cpp:649
std::string modules_quickjs_bytecode_map
Definition registry.h:64
std::string runtime_options_map
Definition registry.h:65
std::string modules_map
Definition registry.h:60
ccf::ApiResult get_custom_endpoints_v1(ccf::js::Bundle &bundle, ccf::kv::ReadOnlyTx &tx)
Definition registry.cpp:603
void set_js_kv_namespace_restriction(const ccf::js::NamespaceRestriction &restriction)
Definition registry.cpp:699
ccf::ApiResult get_js_runtime_options_v1(ccf::JSRuntimeOptions &options, ccf::kv::ReadOnlyTx &tx)
Definition registry.cpp:719
ccf::ApiResult get_custom_endpoint_module_v1(std::string &code, ccf::kv::ReadOnlyTx &tx, const std::string &module_name)
Definition registry.cpp:676
std::string metadata_map
Definition registry.h:61
std::string modules_quickjs_version_map
Definition registry.h:63
Definition registry.h:158
std::string audit_input_map
Definition registry.h:161
ccf::ApiResult check_action_not_replayed_v1(ccf::kv::Tx &tx, uint64_t created_at, std::span< const uint8_t > action, ccf::InvalidArgsReason &reason)
Definition registry.cpp:933
DynamicJSEndpointRegistry(ccf::AbstractNodeContext &context, const std::string &kv_prefix=default_js_registry_kv_prefix)
Definition registry.h:165
std::string recent_actions_map
Definition registry.h:160
ccf::ApiResult record_action_for_audit_v1(ccf::kv::Tx &tx, ccf::ActionFormat format, const std::string &user_id, const std::string &action_name, const std::vector< uint8_t > &action_body)
Definition registry.cpp:1003
std::string audit_info_map
Definition registry.h:162
ccf::endpoints::EndpointDefinitionPtr find_endpoint(ccf::kv::Tx &tx, ccf::RpcContext &rpc_ctx) override
Definition registry.cpp:737
void build_api(nlohmann::json &document, ccf::kv::ReadOnlyTx &tx) override
Definition registry.cpp:862
void execute_endpoint_locally_committed(ccf::endpoints::EndpointDefinitionPtr e, ccf::endpoints::CommandEndpointContext &endpoint_ctx, const ccf::TxID &tx_id) override
Definition registry.cpp:844
std::set< RESTVerb > get_allowed_verbs(ccf::kv::Tx &tx, const ccf::RpcContext &rpc_ctx) override
Definition registry.cpp:898
void execute_endpoint(ccf::endpoints::EndpointDefinitionPtr e, ccf::endpoints::EndpointContext &endpoint_ctx) override
Definition registry.cpp:829
std::string URI
Definition endpoint.h:18
std::shared_ptr< const EndpointDefinition > EndpointDefinitionPtr
Definition endpoint.h:240
std::vector< ExtensionPtr > Extensions
Definition extension_interface.h:24
std::function< KVAccessPermissions(const std::string &map_name, std::string &explanation)> NamespaceRestriction
Definition namespace_restrictions.h:16
ApiResult
Definition base_endpoint_registry.h:18
InvalidArgsReason
Definition base_endpoint_registry.h:70
ActionFormat
Definition audit_format.h:12
Definition node_context.h:12
Definition endpoint_context.h:24
Definition endpoint_context.h:55
Definition endpoint.h:165
Definition endpoint.h:259