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
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
54 {
55 std::string node_certificate_file = "nodecert.pem";
56 std::string pid_file = "my_node.pid";
57
58 // Addresses files
59 std::string node_to_node_address_file = "";
60 std::string rpc_addresses_file = "";
61
62 std::optional<std::string> sealed_ledger_secret_location = std::nullopt;
63
64 bool operator==(const OutputFiles&) const = default;
65 };
67
68 struct Logging
69 {
71
72 bool operator==(const Logging&) const = default;
73 };
75
76 struct Memory
77 {
81
82 bool operator==(const Memory&) const = default;
83 };
85
86 struct Command
87 {
89 std::string service_certificate_file = "service_cert.pem";
90
91 struct Start
92 {
93 std::vector<ParsedMemberInfo> members = {};
94 std::vector<std::string> constitution_files = {};
97 std::string service_subject_name = "CN=CCF Service";
99
100 bool operator==(const Start&) const = default;
101 };
103
113 Join join = {};
114
115 struct Recover
116 {
119 std::optional<std::string> previous_sealed_ledger_secret_location =
120 std::nullopt;
121 bool operator==(const Recover&) const = default;
122 };
124 };
126 };
127
132 node_certificate_file,
133 pid_file,
134 node_to_node_address_file,
135 rpc_addresses_file,
136 sealed_ledger_secret_location);
137
141
145 CCHostConfig::Memory, circuit_size, max_msg_size, max_fragment_size);
146
149 CCHostConfig::Command::Start, members, constitution_files);
152 service_configuration,
153 initial_service_certificate_validity_days,
154 service_subject_name,
155 cose_signatures);
156
161 retry_timeout,
162 follow_redirect,
163 fetch_recent_snapshot);
164
169 initial_service_certificate_validity_days,
170 previous_service_identity_file,
171 previous_sealed_ledger_secret_location);
172
176 CCHostConfig::Command, service_certificate_file, start, join, recover);
177
182 tick_interval,
183 slow_io_logging_threshold,
184 node_client_interface,
185 client_connection_timeout,
186 idle_connection_timeout,
187 node_data_json_file,
188 service_data_json_file,
189 ignore_first_sigterm,
190 output_files,
191 snapshots,
192 logging,
193 memory);
194}
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:702
#define DECLARE_JSON_REQUIRED_FIELDS(TYPE,...)
Definition json.h:714
#define DECLARE_JSON_TYPE_WITH_OPTIONAL_FIELDS(TYPE)
Definition json.h:690
#define DECLARE_JSON_OPTIONAL_FIELDS(TYPE,...)
Definition json.h:786
#define DECLARE_JSON_ENUM(TYPE,...)
Definition json.h:837
Definition configuration.h:14
LogFormat
Definition configuration.h:16
Definition fetch.h:35
Definition startup_config.h:22
Definition cose_signatures_config.h:12
std::string NetAddress
Definition node_info_network.h:86
Definition service_config.h:14
Definition unit_strings.h:122
Definition unit_strings.h:159
Definition configuration.h:105
bool fetch_recent_snapshot
Definition configuration.h:109
bool operator==(const Join &) const =default
ccf::NodeInfoNetwork::NetAddress target_rpc_address
Definition configuration.h:106
bool follow_redirect
Definition configuration.h:108
ccf::ds::TimeString retry_timeout
Definition configuration.h:107
Definition configuration.h:116
size_t initial_service_certificate_validity_days
Definition configuration.h:117
bool operator==(const Recover &) const =default
std::string previous_service_identity_file
Definition configuration.h:118
std::optional< std::string > previous_sealed_ledger_secret_location
Definition configuration.h:119
Definition configuration.h:92
bool operator==(const Start &) const =default
std::vector< ParsedMemberInfo > members
Definition configuration.h:93
std::vector< std::string > constitution_files
Definition configuration.h:94
size_t initial_service_certificate_validity_days
Definition configuration.h:96
ccf::ServiceConfiguration service_configuration
Definition configuration.h:95
std::string service_subject_name
Definition configuration.h:97
ccf::COSESignaturesConfig cose_signatures
Definition configuration.h:98
Definition configuration.h:87
std::string service_certificate_file
Definition configuration.h:89
Join join
Definition configuration.h:113
StartType type
Definition configuration.h:88
Start start
Definition configuration.h:102
Recover recover
Definition configuration.h:123
Definition configuration.h:69
LogFormat format
Definition configuration.h:70
bool operator==(const Logging &) const =default
Definition configuration.h:77
ccf::ds::SizeString circuit_size
Definition configuration.h:78
ccf::ds::SizeString max_fragment_size
Definition configuration.h:80
ccf::ds::SizeString max_msg_size
Definition configuration.h:79
bool operator==(const Memory &) const =default
Definition configuration.h:54
std::string rpc_addresses_file
Definition configuration.h:60
bool operator==(const OutputFiles &) const =default
std::string node_to_node_address_file
Definition configuration.h:59
std::string pid_file
Definition configuration.h:56
std::optional< std::string > sealed_ledger_secret_location
Definition configuration.h:62
std::string node_certificate_file
Definition configuration.h:55
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:66
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:84
Logging logging
Definition configuration.h:74
std::optional< std::string > node_data_json_file
Definition configuration.h:49
Command command
Definition configuration.h:125
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