@opsimathically/nodenetproccalld 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -84,14 +84,33 @@ nodenetproccalld \
84
84
  --default-config-overwrite
85
85
  ```
86
86
 
87
- 4. Generate TLS material for fresh installs (CA/server/client):
87
+ 4. Generate a default TLS-generation JSON5 config:
88
88
 
89
89
  ```bash
90
- nodenetproccalld --generate-tls-material
90
+ nodenetproccalld --generate-default-tls-config
91
91
  ```
92
92
 
93
93
  By default this writes:
94
94
 
95
+ - `./config/tls_generation.config.json5`
96
+
97
+ You can choose a different output path:
98
+
99
+ ```bash
100
+ nodenetproccalld \
101
+ --generate-default-tls-config \
102
+ --default-tls-config-file ./config/tls_generation.config.json5 \
103
+ --default-tls-config-overwrite
104
+ ```
105
+
106
+ 5. Generate TLS material for fresh installs (CA/server/client):
107
+
108
+ ```bash
109
+ nodenetproccalld --generate-tls-material --tls-generation-config ./config/tls_generation.config.json5
110
+ ```
111
+
112
+ By default (from config) this writes:
113
+
95
114
  - `./config/certs/ca.key.pem`
96
115
  - `./config/certs/ca.cert.pem`
97
116
  - `./config/certs/server.key.pem`
@@ -99,11 +118,16 @@ By default this writes:
99
118
  - `./config/certs/client.key.pem`
100
119
  - `./config/certs/client.cert.pem`
101
120
 
102
- Useful options:
121
+ This JSON5 config controls SAN values (`server_dns_sans`, `server_ip_sans`) so the generated
122
+ server certificate matches real hostnames like `your_server_name_here`, FQDNs, or service IPs.
123
+ `output_dir` in this config is interpreted relative to your current working directory.
124
+
125
+ You can still override via direct CLI options when needed:
103
126
 
104
127
  ```bash
105
128
  nodenetproccalld \
106
129
  --generate-tls-material \
130
+ --tls-generation-config ./config/tls_generation.config.json5 \
107
131
  --tls-output-dir ./config/certs \
108
132
  --tls-overwrite \
109
133
  --tls-ca-cn my-local-ca \
@@ -112,7 +136,29 @@ nodenetproccalld \
112
136
  --tls-valid-days 365
113
137
  ```
114
138
 
115
- 5. Start daemon with custom config paths:
139
+ 6. Generate a default client TLS package JSON5 config:
140
+
141
+ ```bash
142
+ nodenetproccalld --generate-default-client-tls-config
143
+ ```
144
+
145
+ By default this writes:
146
+
147
+ - `./config/client_tls_packages.config.json5`
148
+
149
+ 7. Generate client certificate packages from JSON5 config:
150
+
151
+ ```bash
152
+ nodenetproccalld \
153
+ --generate-client-tls-packages \
154
+ --client-tls-generation-config ./config/client_tls_packages.config.json5
155
+ ```
156
+
157
+ This reads CA key/cert paths from the config file and outputs per-client bundle tarballs in
158
+ the configured output directory (default template uses `./config/client_certs`).
159
+ Paths in `client_tls_packages.config.json5` are resolved relative to that config file.
160
+
161
+ 8. Start daemon with custom config paths:
116
162
 
117
163
  ```bash
118
164
  nodenetproccalld \
@@ -120,7 +166,7 @@ nodenetproccalld \
120
166
  --api-keys-config /absolute/or/relative/api_keys.config.json5
121
167
  ```
122
168
 
123
- 6. CLI help:
169
+ 9. CLI help:
124
170
 
125
171
  ```bash
126
172
  nodenetproccalld --help
package/dist/index.d.mts CHANGED
@@ -115,14 +115,103 @@ type daemon_generated_default_config_t = {
115
115
 
116
116
  type daemon_tls_generation_options_t = {
117
117
  enabled: boolean;
118
+ config_file_path?: string;
118
119
  output_dir: string;
119
120
  overwrite: boolean;
120
121
  ca_common_name: string;
121
122
  server_common_name: string;
122
123
  client_common_name: string;
124
+ server_dns_sans: string[];
125
+ server_ip_sans: string[];
126
+ client_uri_san?: string;
123
127
  valid_days: number;
124
128
  };
125
129
 
130
+ type daemon_tls_generation_config_file_t = {
131
+ output_dir?: string;
132
+ overwrite?: boolean;
133
+ ca_common_name?: string;
134
+ server_common_name?: string;
135
+ client_common_name?: string;
136
+ server_dns_sans?: string[];
137
+ server_ip_sans?: string[];
138
+ client_uri_san?: string;
139
+ valid_days?: number;
140
+ };
141
+
142
+ type daemon_default_tls_config_generation_options_t = {
143
+ enabled: boolean;
144
+ output_file_path: string;
145
+ overwrite: boolean;
146
+ };
147
+
148
+ type daemon_generated_default_tls_config_t = {
149
+ output_file_path: string;
150
+ };
151
+
152
+ type daemon_client_tls_package_config_client_t = {
153
+ client_name: string;
154
+ common_name?: string;
155
+ uri_san?: string;
156
+ package_name?: string;
157
+ valid_days?: number;
158
+ };
159
+
160
+ type daemon_client_tls_package_generation_config_file_t = {
161
+ ca_key_file: string;
162
+ ca_cert_file: string;
163
+ output_dir?: string;
164
+ overwrite?: boolean;
165
+ default_valid_days?: number;
166
+ clients: daemon_client_tls_package_config_client_t[];
167
+ };
168
+
169
+ type daemon_client_tls_package_generation_options_t = {
170
+ enabled: boolean;
171
+ config_file_path: string;
172
+ };
173
+
174
+ type daemon_default_client_tls_config_generation_options_t = {
175
+ enabled: boolean;
176
+ output_file_path: string;
177
+ overwrite: boolean;
178
+ };
179
+
180
+ type daemon_generated_default_client_tls_config_t = {
181
+ output_file_path: string;
182
+ };
183
+
184
+ type daemon_generated_client_tls_package_entry_t = {
185
+ client_name: string;
186
+ package_path: string;
187
+ directory_path: string;
188
+ client_cert_path: string;
189
+ client_key_path: string;
190
+ ca_cert_path: string;
191
+ };
192
+
193
+ type daemon_client_tls_package_runtime_client_t = {
194
+ client_name: string;
195
+ common_name: string;
196
+ uri_san: string;
197
+ package_name: string;
198
+ valid_days: number;
199
+ };
200
+
201
+ type daemon_client_tls_package_generation_runtime_options_t = {
202
+ ca_key_file: string;
203
+ ca_cert_file: string;
204
+ output_dir: string;
205
+ overwrite: boolean;
206
+ default_valid_days: number;
207
+ clients: daemon_client_tls_package_runtime_client_t[];
208
+ };
209
+
210
+ type daemon_generated_client_tls_packages_t = {
211
+ output_dir: string;
212
+ packages: daemon_generated_client_tls_package_entry_t[];
213
+ };
214
+
126
215
  type daemon_generated_tls_material_t = {
127
216
  output_dir: string;
128
217
  ca_key_path: string;
@@ -136,7 +225,10 @@ type daemon_generated_tls_material_t = {
136
225
  type daemon_cli_options_t = daemon_config_paths_t & {
137
226
  help: boolean;
138
227
  default_config_generation: daemon_default_config_generation_options_t;
228
+ default_tls_config_generation: daemon_default_tls_config_generation_options_t;
229
+ default_client_tls_config_generation: daemon_default_client_tls_config_generation_options_t;
139
230
  tls_generation: daemon_tls_generation_options_t;
231
+ client_tls_package_generation: daemon_client_tls_package_generation_options_t;
140
232
  };
141
233
 
142
234
  type daemon_auth_callback_params_t = Parameters<networkprocedurecall_auth_callback_t>[0];
@@ -153,6 +245,30 @@ declare class ApiKeyAuthorizer {
153
245
  private matchOptionalValue;
154
246
  }
155
247
 
248
+ declare class ClientTlsPackageConfigFileLoader {
249
+ loadClientTlsPackageOptions(params: {
250
+ client_tls_package_generation_options: daemon_client_tls_package_generation_options_t;
251
+ }): daemon_client_tls_package_generation_runtime_options_t;
252
+ private buildRuntimeClients;
253
+ private assertUniqueClientNames;
254
+ private assertUniquePackageNames;
255
+ }
256
+
257
+ declare class ClientTlsPackageGenerator {
258
+ generateClientTlsPackages(params: {
259
+ runtime_options: daemon_client_tls_package_generation_runtime_options_t;
260
+ }): daemon_generated_client_tls_packages_t;
261
+ private assertOpenSslAvailable;
262
+ private assertTarAvailable;
263
+ private assertCaFiles;
264
+ private buildClientFileMap;
265
+ private prepareClientOutput;
266
+ private generateClientCertificate;
267
+ private writeClientReadme;
268
+ private createTarPackage;
269
+ private runOpenSslCommand;
270
+ }
271
+
156
272
  declare class ConfigValidator {
157
273
  validateServerConfig(params: {
158
274
  server_config_raw: unknown;
@@ -204,12 +320,24 @@ declare class DaemonProcess {
204
320
  private requestStop;
205
321
  }
206
322
 
323
+ declare class DefaultClientTlsGenerationConfigGenerator {
324
+ generateDefaultClientTlsGenerationConfig(params: {
325
+ default_client_tls_config_generation_options: daemon_default_client_tls_config_generation_options_t;
326
+ }): daemon_generated_default_client_tls_config_t;
327
+ }
328
+
207
329
  declare class DefaultConfigGenerator {
208
330
  generateDefaultConfig(params: {
209
331
  default_config_generation_options: daemon_default_config_generation_options_t;
210
332
  }): daemon_generated_default_config_t;
211
333
  }
212
334
 
335
+ declare class DefaultTlsGenerationConfigGenerator {
336
+ generateDefaultTlsGenerationConfig(params: {
337
+ default_tls_config_generation_options: daemon_default_tls_config_generation_options_t;
338
+ }): daemon_generated_default_tls_config_t;
339
+ }
340
+
213
341
  type daemon_lifecycle_state_t = 'stopped' | 'starting' | 'running' | 'stopping';
214
342
  type daemon_runtime_snapshot_t = {
215
343
  lifecycle_state: daemon_lifecycle_state_t;
@@ -247,6 +375,13 @@ declare class NetworkProcedureCallDaemon {
247
375
  private logMessage;
248
376
  }
249
377
 
378
+ declare class TlsGenerationConfigFileLoader {
379
+ loadTlsGenerationOptions(params: {
380
+ config_file_path: string;
381
+ fallback_options: daemon_tls_generation_options_t;
382
+ }): daemon_tls_generation_options_t;
383
+ }
384
+
250
385
  declare class TlsMaterialGenerator {
251
386
  generateTlsMaterial(params: {
252
387
  tls_generation_options: daemon_tls_generation_options_t;
@@ -262,4 +397,4 @@ declare class TlsMaterialGenerator {
262
397
  private getErrorMessage;
263
398
  }
264
399
 
265
- export { ApiKeyAuthorizer, ConfigFileLoader, ConfigValidator, DaemonCli, DaemonProcess, DefaultConfigGenerator, NetworkProcedureCallDaemon, TlsMaterialGenerator, type daemon_api_key_entry_t, type daemon_api_key_identity_constraints_t, type daemon_api_keys_config_file_t, type daemon_cli_options_t, type daemon_config_paths_t, type daemon_default_config_generation_options_t, type daemon_generated_default_config_t, type daemon_generated_tls_material_t, type daemon_observability_config_t, type daemon_runtime_api_key_entry_t, type daemon_runtime_config_t, type daemon_server_config_file_t, type daemon_tls_file_config_t, type daemon_tls_generation_options_t, type daemon_worker_config_t };
400
+ export { ApiKeyAuthorizer, ClientTlsPackageConfigFileLoader, ClientTlsPackageGenerator, ConfigFileLoader, ConfigValidator, DaemonCli, DaemonProcess, DefaultClientTlsGenerationConfigGenerator, DefaultConfigGenerator, DefaultTlsGenerationConfigGenerator, NetworkProcedureCallDaemon, TlsGenerationConfigFileLoader, TlsMaterialGenerator, type daemon_api_key_entry_t, type daemon_api_key_identity_constraints_t, type daemon_api_keys_config_file_t, type daemon_cli_options_t, type daemon_client_tls_package_config_client_t, type daemon_client_tls_package_generation_config_file_t, type daemon_client_tls_package_generation_options_t, type daemon_client_tls_package_generation_runtime_options_t, type daemon_client_tls_package_runtime_client_t, type daemon_config_paths_t, type daemon_default_client_tls_config_generation_options_t, type daemon_default_config_generation_options_t, type daemon_default_tls_config_generation_options_t, type daemon_generated_client_tls_package_entry_t, type daemon_generated_client_tls_packages_t, type daemon_generated_default_client_tls_config_t, type daemon_generated_default_config_t, type daemon_generated_default_tls_config_t, type daemon_generated_tls_material_t, type daemon_observability_config_t, type daemon_runtime_api_key_entry_t, type daemon_runtime_config_t, type daemon_server_config_file_t, type daemon_tls_file_config_t, type daemon_tls_generation_config_file_t, type daemon_tls_generation_options_t, type daemon_worker_config_t };
package/dist/index.d.ts CHANGED
@@ -115,14 +115,103 @@ type daemon_generated_default_config_t = {
115
115
 
116
116
  type daemon_tls_generation_options_t = {
117
117
  enabled: boolean;
118
+ config_file_path?: string;
118
119
  output_dir: string;
119
120
  overwrite: boolean;
120
121
  ca_common_name: string;
121
122
  server_common_name: string;
122
123
  client_common_name: string;
124
+ server_dns_sans: string[];
125
+ server_ip_sans: string[];
126
+ client_uri_san?: string;
123
127
  valid_days: number;
124
128
  };
125
129
 
130
+ type daemon_tls_generation_config_file_t = {
131
+ output_dir?: string;
132
+ overwrite?: boolean;
133
+ ca_common_name?: string;
134
+ server_common_name?: string;
135
+ client_common_name?: string;
136
+ server_dns_sans?: string[];
137
+ server_ip_sans?: string[];
138
+ client_uri_san?: string;
139
+ valid_days?: number;
140
+ };
141
+
142
+ type daemon_default_tls_config_generation_options_t = {
143
+ enabled: boolean;
144
+ output_file_path: string;
145
+ overwrite: boolean;
146
+ };
147
+
148
+ type daemon_generated_default_tls_config_t = {
149
+ output_file_path: string;
150
+ };
151
+
152
+ type daemon_client_tls_package_config_client_t = {
153
+ client_name: string;
154
+ common_name?: string;
155
+ uri_san?: string;
156
+ package_name?: string;
157
+ valid_days?: number;
158
+ };
159
+
160
+ type daemon_client_tls_package_generation_config_file_t = {
161
+ ca_key_file: string;
162
+ ca_cert_file: string;
163
+ output_dir?: string;
164
+ overwrite?: boolean;
165
+ default_valid_days?: number;
166
+ clients: daemon_client_tls_package_config_client_t[];
167
+ };
168
+
169
+ type daemon_client_tls_package_generation_options_t = {
170
+ enabled: boolean;
171
+ config_file_path: string;
172
+ };
173
+
174
+ type daemon_default_client_tls_config_generation_options_t = {
175
+ enabled: boolean;
176
+ output_file_path: string;
177
+ overwrite: boolean;
178
+ };
179
+
180
+ type daemon_generated_default_client_tls_config_t = {
181
+ output_file_path: string;
182
+ };
183
+
184
+ type daemon_generated_client_tls_package_entry_t = {
185
+ client_name: string;
186
+ package_path: string;
187
+ directory_path: string;
188
+ client_cert_path: string;
189
+ client_key_path: string;
190
+ ca_cert_path: string;
191
+ };
192
+
193
+ type daemon_client_tls_package_runtime_client_t = {
194
+ client_name: string;
195
+ common_name: string;
196
+ uri_san: string;
197
+ package_name: string;
198
+ valid_days: number;
199
+ };
200
+
201
+ type daemon_client_tls_package_generation_runtime_options_t = {
202
+ ca_key_file: string;
203
+ ca_cert_file: string;
204
+ output_dir: string;
205
+ overwrite: boolean;
206
+ default_valid_days: number;
207
+ clients: daemon_client_tls_package_runtime_client_t[];
208
+ };
209
+
210
+ type daemon_generated_client_tls_packages_t = {
211
+ output_dir: string;
212
+ packages: daemon_generated_client_tls_package_entry_t[];
213
+ };
214
+
126
215
  type daemon_generated_tls_material_t = {
127
216
  output_dir: string;
128
217
  ca_key_path: string;
@@ -136,7 +225,10 @@ type daemon_generated_tls_material_t = {
136
225
  type daemon_cli_options_t = daemon_config_paths_t & {
137
226
  help: boolean;
138
227
  default_config_generation: daemon_default_config_generation_options_t;
228
+ default_tls_config_generation: daemon_default_tls_config_generation_options_t;
229
+ default_client_tls_config_generation: daemon_default_client_tls_config_generation_options_t;
139
230
  tls_generation: daemon_tls_generation_options_t;
231
+ client_tls_package_generation: daemon_client_tls_package_generation_options_t;
140
232
  };
141
233
 
142
234
  type daemon_auth_callback_params_t = Parameters<networkprocedurecall_auth_callback_t>[0];
@@ -153,6 +245,30 @@ declare class ApiKeyAuthorizer {
153
245
  private matchOptionalValue;
154
246
  }
155
247
 
248
+ declare class ClientTlsPackageConfigFileLoader {
249
+ loadClientTlsPackageOptions(params: {
250
+ client_tls_package_generation_options: daemon_client_tls_package_generation_options_t;
251
+ }): daemon_client_tls_package_generation_runtime_options_t;
252
+ private buildRuntimeClients;
253
+ private assertUniqueClientNames;
254
+ private assertUniquePackageNames;
255
+ }
256
+
257
+ declare class ClientTlsPackageGenerator {
258
+ generateClientTlsPackages(params: {
259
+ runtime_options: daemon_client_tls_package_generation_runtime_options_t;
260
+ }): daemon_generated_client_tls_packages_t;
261
+ private assertOpenSslAvailable;
262
+ private assertTarAvailable;
263
+ private assertCaFiles;
264
+ private buildClientFileMap;
265
+ private prepareClientOutput;
266
+ private generateClientCertificate;
267
+ private writeClientReadme;
268
+ private createTarPackage;
269
+ private runOpenSslCommand;
270
+ }
271
+
156
272
  declare class ConfigValidator {
157
273
  validateServerConfig(params: {
158
274
  server_config_raw: unknown;
@@ -204,12 +320,24 @@ declare class DaemonProcess {
204
320
  private requestStop;
205
321
  }
206
322
 
323
+ declare class DefaultClientTlsGenerationConfigGenerator {
324
+ generateDefaultClientTlsGenerationConfig(params: {
325
+ default_client_tls_config_generation_options: daemon_default_client_tls_config_generation_options_t;
326
+ }): daemon_generated_default_client_tls_config_t;
327
+ }
328
+
207
329
  declare class DefaultConfigGenerator {
208
330
  generateDefaultConfig(params: {
209
331
  default_config_generation_options: daemon_default_config_generation_options_t;
210
332
  }): daemon_generated_default_config_t;
211
333
  }
212
334
 
335
+ declare class DefaultTlsGenerationConfigGenerator {
336
+ generateDefaultTlsGenerationConfig(params: {
337
+ default_tls_config_generation_options: daemon_default_tls_config_generation_options_t;
338
+ }): daemon_generated_default_tls_config_t;
339
+ }
340
+
213
341
  type daemon_lifecycle_state_t = 'stopped' | 'starting' | 'running' | 'stopping';
214
342
  type daemon_runtime_snapshot_t = {
215
343
  lifecycle_state: daemon_lifecycle_state_t;
@@ -247,6 +375,13 @@ declare class NetworkProcedureCallDaemon {
247
375
  private logMessage;
248
376
  }
249
377
 
378
+ declare class TlsGenerationConfigFileLoader {
379
+ loadTlsGenerationOptions(params: {
380
+ config_file_path: string;
381
+ fallback_options: daemon_tls_generation_options_t;
382
+ }): daemon_tls_generation_options_t;
383
+ }
384
+
250
385
  declare class TlsMaterialGenerator {
251
386
  generateTlsMaterial(params: {
252
387
  tls_generation_options: daemon_tls_generation_options_t;
@@ -262,4 +397,4 @@ declare class TlsMaterialGenerator {
262
397
  private getErrorMessage;
263
398
  }
264
399
 
265
- export { ApiKeyAuthorizer, ConfigFileLoader, ConfigValidator, DaemonCli, DaemonProcess, DefaultConfigGenerator, NetworkProcedureCallDaemon, TlsMaterialGenerator, type daemon_api_key_entry_t, type daemon_api_key_identity_constraints_t, type daemon_api_keys_config_file_t, type daemon_cli_options_t, type daemon_config_paths_t, type daemon_default_config_generation_options_t, type daemon_generated_default_config_t, type daemon_generated_tls_material_t, type daemon_observability_config_t, type daemon_runtime_api_key_entry_t, type daemon_runtime_config_t, type daemon_server_config_file_t, type daemon_tls_file_config_t, type daemon_tls_generation_options_t, type daemon_worker_config_t };
400
+ export { ApiKeyAuthorizer, ClientTlsPackageConfigFileLoader, ClientTlsPackageGenerator, ConfigFileLoader, ConfigValidator, DaemonCli, DaemonProcess, DefaultClientTlsGenerationConfigGenerator, DefaultConfigGenerator, DefaultTlsGenerationConfigGenerator, NetworkProcedureCallDaemon, TlsGenerationConfigFileLoader, TlsMaterialGenerator, type daemon_api_key_entry_t, type daemon_api_key_identity_constraints_t, type daemon_api_keys_config_file_t, type daemon_cli_options_t, type daemon_client_tls_package_config_client_t, type daemon_client_tls_package_generation_config_file_t, type daemon_client_tls_package_generation_options_t, type daemon_client_tls_package_generation_runtime_options_t, type daemon_client_tls_package_runtime_client_t, type daemon_config_paths_t, type daemon_default_client_tls_config_generation_options_t, type daemon_default_config_generation_options_t, type daemon_default_tls_config_generation_options_t, type daemon_generated_client_tls_package_entry_t, type daemon_generated_client_tls_packages_t, type daemon_generated_default_client_tls_config_t, type daemon_generated_default_config_t, type daemon_generated_default_tls_config_t, type daemon_generated_tls_material_t, type daemon_observability_config_t, type daemon_runtime_api_key_entry_t, type daemon_runtime_config_t, type daemon_server_config_file_t, type daemon_tls_file_config_t, type daemon_tls_generation_config_file_t, type daemon_tls_generation_options_t, type daemon_worker_config_t };