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);
59 void execute_request_locally_committed(
75 const std::string& kv_prefix = default_js_registry_kv_prefix);
108 const std::string& module_name);
172 const std::string& kv_prefix = default_js_registry_kv_prefix) :
186 const std::string& user_id,
187 const std::string& action_name,
188 const std::vector<uint8_t>& action_body);
198 const 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:151
ccf::ApiResult install_custom_endpoints_v1(ccf::kv::Tx &tx, const ccf::js::Bundle &bundle)
Definition registry.cpp:538
ccf::ApiResult set_js_runtime_options_v1(ccf::kv::Tx &tx, const ccf::JSRuntimeOptions &options)
Definition registry.cpp:720
std::string interpreter_flush_map
Definition registry.h:67
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:664
std::string modules_quickjs_bytecode_map
Definition registry.h:69
std::string runtime_options_map
Definition registry.h:70
std::string modules_map
Definition registry.h:65
ccf::ApiResult get_custom_endpoints_v1(ccf::js::Bundle &bundle, ccf::kv::ReadOnlyTx &tx)
Definition registry.cpp:618
void set_js_kv_namespace_restriction(const ccf::js::NamespaceRestriction &restriction)
Definition registry.cpp:714
ccf::ApiResult get_js_runtime_options_v1(ccf::JSRuntimeOptions &options, ccf::kv::ReadOnlyTx &tx)
Definition registry.cpp:734
ccf::ApiResult get_custom_endpoint_module_v1(std::string &code, ccf::kv::ReadOnlyTx &tx, const std::string &module_name)
Definition registry.cpp:691
std::string metadata_map
Definition registry.h:66
std::string modules_quickjs_version_map
Definition registry.h:68
Definition registry.h:163
ccf::ApiResult check_action_not_replayed_v1(ccf::kv::Tx &tx, uint64_t created_at, const std::span< const uint8_t > action, ccf::InvalidArgsReason &reason)
Definition registry.cpp:948
std::string audit_input_map
Definition registry.h:166
DynamicJSEndpointRegistry(ccf::AbstractNodeContext &context, const std::string &kv_prefix=default_js_registry_kv_prefix)
Definition registry.h:170
std::string recent_actions_map
Definition registry.h:165
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:1018
std::string audit_info_map
Definition registry.h:167
ccf::endpoints::EndpointDefinitionPtr find_endpoint(ccf::kv::Tx &tx, ccf::RpcContext &rpc_ctx) override
Definition registry.cpp:752
void build_api(nlohmann::json &document, ccf::kv::ReadOnlyTx &tx) override
Definition registry.cpp:877
void execute_endpoint_locally_committed(ccf::endpoints::EndpointDefinitionPtr e, ccf::endpoints::CommandEndpointContext &endpoint_ctx, const ccf::TxID &tx_id) override
Definition registry.cpp:859
std::set< RESTVerb > get_allowed_verbs(ccf::kv::Tx &, const ccf::RpcContext &rpc_ctx) override
Definition registry.cpp:913
void execute_endpoint(ccf::endpoints::EndpointDefinitionPtr e, ccf::endpoints::EndpointContext &endpoint_ctx) override
Definition registry.cpp:844
std::string URI
Definition endpoint.h:17
std::shared_ptr< const EndpointDefinition > EndpointDefinitionPtr
Definition endpoint.h:234
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
InvalidArgsReason
Definition base_endpoint_registry.h:70
ApiResult
Definition base_endpoint_registry.h:18
ActionFormat
Definition audit_format.h:12
Definition node_context.h:12
Definition endpoint_context.h:24
Definition endpoint_context.h:55
Definition endpoint.h:161
Definition endpoint.h:253