CCF
Loading...
Searching...
No Matches
configuration.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3
4#pragma once
5
7#include "ccf/pal/platform.h"
9
10#include <optional>
11#include <string>
12
13namespace host
14{
15 enum class LogFormat : uint8_t
16 {
17 TEXT,
18 JSON
19 };
21 LogFormat, {{LogFormat::TEXT, "Text"}, {LogFormat::JSON, "Json"}});
22
24 {
25 std::string certificate_file;
26 std::optional<std::string> encryption_public_key_file = std::nullopt;
27 std::optional<std::string> data_json_file = std::nullopt;
28 std::optional<ccf::MemberRecoveryRole> recovery_role = std::nullopt;
29
30 bool operator==(const ParsedMemberInfo& other) const = default;
31 };
32
37 encryption_public_key_file,
38 data_json_file,
39 recovery_role);
40
42 {
45 std::optional<std::string> node_client_interface = std::nullopt;
47 std::optional<ccf::ds::TimeString> idle_connection_timeout =
49 std::optional<std::string> node_data_json_file = std::nullopt;
50 std::optional<std::string> service_data_json_file = std::nullopt;
52 std::optional<ccf::SealingRecoveryConfig> sealing_recovery = std::nullopt;
53
55 {
56 std::string node_certificate_file = "nodecert.pem";
57 std::string pid_file = "my_node.pid";
58
59 // Addresses files
61 std::string rpc_addresses_file;
62
63 bool operator==(const OutputFiles&) const = default;
64 };
66
67 struct Logging
68 {
70
71 bool operator==(const Logging&) const = default;
72 };
74
75 struct Memory
76 {
80
81 bool operator==(const Memory&) const = default;
82 };
84
85 struct Command
86 {
88 std::string service_certificate_file = "service_cert.pem";
89
90 struct Start
91 {
92 std::vector<ParsedMemberInfo> members;
93 std::vector<std::string> constitution_files;
96 std::string service_subject_name = "CN=CCF Service";
98
99 bool operator==(const Start&) const = default;
100 };
102
117 Join join = {};
118
119 struct Recover
120 {
123 bool operator==(const Recover&) const = default;
124 };
126 };
128 };
129
134 node_certificate_file,
135 pid_file,
136 node_to_node_address_file,
137 rpc_addresses_file);
138
142
146 CCHostConfig::Memory, circuit_size, max_msg_size, max_fragment_size);
147
150 CCHostConfig::Command::Start, members, constitution_files);
153 service_configuration,
154 initial_service_certificate_validity_days,
155 service_subject_name,
156 cose_signatures);
157
162 retry_timeout,
163 follow_redirect,
164 fetch_recent_snapshot,
165 fetch_snapshot_max_attempts,
166 fetch_snapshot_retry_interval,
167 fetch_snapshot_max_size,
168 host_data_transparent_statement_path);
169
174 initial_service_certificate_validity_days,
175 previous_service_identity_file);
176
180 CCHostConfig::Command, service_certificate_file, start, join, recover);
181
186 tick_interval,
187 slow_io_logging_threshold,
188 node_client_interface,
189 client_connection_timeout,
190 idle_connection_timeout,
191 node_data_json_file,
192 service_data_json_file,
193 ignore_first_sigterm,
194 sealing_recovery,
195 output_files,
196 snapshots,
197 logging,
198 memory);
199}
StartType
Definition enclave_interface_types.h:92
@ Start
Definition enclave_interface_types.h:93
#define DECLARE_JSON_TYPE_WITH_BASE_AND_OPTIONAL_FIELDS(TYPE, BASE)
Definition json.h:724
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:736
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:712
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:811
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:864
Definition configuration.h:14
LogFormat
Definition configuration.h:16
Definition fetch.h:63
Definition startup_config.h:24
Definition cose_signatures_config.h:12
std::string NetAddress
Definition node_info_network.h:81
Definition service_config.h:14
Definition unit_strings.h:122
Definition unit_strings.h:166
Definition configuration.h:104
size_t fetch_snapshot_max_attempts
Definition configuration.h:109
bool fetch_recent_snapshot
Definition configuration.h:108
bool operator==(const Join &) const =default
ccf::NodeInfoNetwork::NetAddress target_rpc_address
Definition configuration.h:105
ccf::ds::SizeString fetch_snapshot_max_size
Definition configuration.h:111
bool follow_redirect
Definition configuration.h:107
std::optional< std::string > host_data_transparent_statement_path
Definition configuration.h:112
ccf::ds::TimeString retry_timeout
Definition configuration.h:106
ccf::ds::TimeString fetch_snapshot_retry_interval
Definition configuration.h:110
Definition configuration.h:120
size_t initial_service_certificate_validity_days
Definition configuration.h:121
bool operator==(const Recover &) const =default
std::string previous_service_identity_file
Definition configuration.h:122
Definition configuration.h:91
bool operator==(const Start &) const =default
std::vector< ParsedMemberInfo > members
Definition configuration.h:92
std::vector< std::string > constitution_files
Definition configuration.h:93
size_t initial_service_certificate_validity_days
Definition configuration.h:95
ccf::ServiceConfiguration service_configuration
Definition configuration.h:94
std::string service_subject_name
Definition configuration.h:96
ccf::COSESignaturesConfig cose_signatures
Definition configuration.h:97
Definition configuration.h:86
std::string service_certificate_file
Definition configuration.h:88
Join join
Definition configuration.h:117
StartType type
Definition configuration.h:87
Start start
Definition configuration.h:101
Recover recover
Definition configuration.h:125
Definition configuration.h:68
LogFormat format
Definition configuration.h:69
bool operator==(const Logging &) const =default
Definition configuration.h:76
ccf::ds::SizeString circuit_size
Definition configuration.h:77
ccf::ds::SizeString max_fragment_size
Definition configuration.h:79
ccf::ds::SizeString max_msg_size
Definition configuration.h:78
bool operator==(const Memory &) const =default
Definition configuration.h:55
std::string rpc_addresses_file
Definition configuration.h:61
bool operator==(const OutputFiles &) const =default
std::string node_to_node_address_file
Definition configuration.h:60
std::string pid_file
Definition configuration.h:57
std::string node_certificate_file
Definition configuration.h:56
Definition configuration.h:42
std::optional< ccf::ds::TimeString > idle_connection_timeout
Definition configuration.h:47
bool ignore_first_sigterm
Definition configuration.h:51
std::optional< std::string > service_data_json_file
Definition configuration.h:50
OutputFiles output_files
Definition configuration.h:65
ccf::ds::TimeString client_connection_timeout
Definition configuration.h:46
ccf::ds::TimeString slow_io_logging_threshold
Definition configuration.h:44
std::optional< std::string > node_client_interface
Definition configuration.h:45
Memory memory
Definition configuration.h:83
Logging logging
Definition configuration.h:73
std::optional< std::string > node_data_json_file
Definition configuration.h:49
std::optional< ccf::SealingRecoveryConfig > sealing_recovery
Definition configuration.h:52
Command command
Definition configuration.h:127
ccf::ds::TimeString tick_interval
Definition configuration.h:43
Definition configuration.h:24
std::optional< ccf::MemberRecoveryRole > recovery_role
Definition configuration.h:28
std::string certificate_file
Definition configuration.h:25
std::optional< std::string > data_json_file
Definition configuration.h:27
std::optional< std::string > encryption_public_key_file
Definition configuration.h:26
bool operator==(const ParsedMemberInfo &other) const =default