pkg/cmd/flags/serve.go   F
last analyzed

Size/Duplication

Total Lines 592
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 164
eloc 332
dl 0
loc 592
rs 2
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
F flags.RegisterServeFlags 0 584 164
1
package flags
2
3
import (
4
	"github.com/spf13/pflag"
5
	"github.com/spf13/viper"
6
)
7
8
// RegisterServeFlags - Define and registers permify CLI flags
9
func RegisterServeFlags(flags *pflag.FlagSet) {
10
	var err error
11
12
	// Config File
13
	if err = viper.BindPFlag("config.file", flags.Lookup("config")); err != nil {
14
		panic(err)
15
	}
16
17
	if err = viper.BindPFlag("account_id", flags.Lookup("account-id")); err != nil {
18
		panic(err)
19
	}
20
	if err = viper.BindEnv("account_id", "PERMIFY_ACCOUNT_ID"); err != nil {
21
		panic(err)
22
	}
23
24
	// Server
25
	if err = viper.BindPFlag("server.rate_limit", flags.Lookup("server-rate-limit")); err != nil {
26
		panic(err)
27
	}
28
	if err = viper.BindEnv("server.rate_limit", "PERMIFY_RATE_LIMIT"); err != nil {
29
		panic(err)
30
	}
31
32
	if err = viper.BindPFlag("server.name_override", flags.Lookup("server-name-override")); err != nil {
33
		panic(err)
34
	}
35
	if err = viper.BindEnv("server.name_override", "PERMIFY_NAME_OVERRIDE"); err != nil {
36
		panic(err)
37
	}
38
39
	// GRPC Server
40
	if err = viper.BindPFlag("server.grpc.port", flags.Lookup("grpc-port")); err != nil {
41
		panic(err)
42
	}
43
	if err = viper.BindEnv("server.grpc.port", "PERMIFY_GRPC_PORT"); err != nil {
44
		panic(err)
45
	}
46
47
	if err = viper.BindPFlag("server.grpc.tls.enabled", flags.Lookup("grpc-tls-enabled")); err != nil {
48
		panic(err)
49
	}
50
	if err = viper.BindEnv("server.grpc.tls.enabled", "PERMIFY_GRPC_TLS_ENABLED"); err != nil {
51
		panic(err)
52
	}
53
54
	if err = viper.BindPFlag("server.grpc.tls.key", flags.Lookup("grpc-tls-key-path")); err != nil {
55
		panic(err)
56
	}
57
	if err = viper.BindEnv("server.grpc.tls.key", "PERMIFY_GRPC_TLS_KEY_PATH"); err != nil {
58
		panic(err)
59
	}
60
61
	if err = viper.BindPFlag("server.grpc.tls.cert", flags.Lookup("grpc-tls-cert-path")); err != nil {
62
		panic(err)
63
	}
64
	if err = viper.BindEnv("server.grpc.tls.cert", "PERMIFY_GRPC_TLS_CERT_PATH"); err != nil {
65
		panic(err)
66
	}
67
68
	// HTTP Server
69
	if err = viper.BindPFlag("server.http.enabled", flags.Lookup("http-enabled")); err != nil {
70
		panic(err)
71
	}
72
	if err = viper.BindEnv("server.http.enabled", "PERMIFY_HTTP_ENABLED"); err != nil {
73
		panic(err)
74
	}
75
76
	if err = viper.BindPFlag("server.http.port", flags.Lookup("http-port")); err != nil {
77
		panic(err)
78
	}
79
	if err = viper.BindEnv("server.http.port", "PERMIFY_HTTP_PORT"); err != nil {
80
		panic(err)
81
	}
82
83
	if err = viper.BindPFlag("server.http.tls.enabled", flags.Lookup("http-tls-enabled")); err != nil {
84
		panic(err)
85
	}
86
	if err = viper.BindEnv("server.http.tls.enabled", "PERMIFY_HTTP_TLS_ENABLED"); err != nil {
87
		panic(err)
88
	}
89
90
	if err = viper.BindPFlag("server.http.tls.key", flags.Lookup("http-tls-key-path")); err != nil {
91
		panic(err)
92
	}
93
	if err = viper.BindEnv("server.http.tls.key", "PERMIFY_HTTP_TLS_KEY_PATH"); err != nil {
94
		panic(err)
95
	}
96
97
	if err = viper.BindPFlag("server.http.tls.cert", flags.Lookup("http-tls-cert-path")); err != nil {
98
		panic(err)
99
	}
100
	if err = viper.BindEnv("server.http.tls.cert", "PERMIFY_HTTP_TLS_CERT_PATH"); err != nil {
101
		panic(err)
102
	}
103
104
	if err = viper.BindPFlag("server.http.cors_allowed_origins", flags.Lookup("http-cors-allowed-origins")); err != nil {
105
		panic(err)
106
	}
107
	if err = viper.BindEnv("server.http.cors_allowed_origins", "PERMIFY_HTTP_CORS_ALLOWED_ORIGINS"); err != nil {
108
		panic(err)
109
	}
110
111
	if err = viper.BindPFlag("server.http.cors_allowed_headers", flags.Lookup("http-cors-allowed-headers")); err != nil {
112
		panic(err)
113
	}
114
	if err = viper.BindEnv("server.http.cors_allowed_headers", "PERMIFY_HTTP_CORS_ALLOWED_HEADERS"); err != nil {
115
		panic(err)
116
	}
117
118
	// PROFILER
119
	if err = viper.BindPFlag("profiler.enabled", flags.Lookup("profiler-enabled")); err != nil {
120
		panic(err)
121
	}
122
	if err = viper.BindEnv("profiler.enabled", "PERMIFY_PROFILER_ENABLED"); err != nil {
123
		panic(err)
124
	}
125
126
	if err = viper.BindPFlag("profiler.port", flags.Lookup("profiler-port")); err != nil {
127
		panic(err)
128
	}
129
	if err = viper.BindEnv("profiler.port", "PERMIFY_PROFILER_PORT"); err != nil {
130
		panic(err)
131
	}
132
133
	// LOG
134
	if err = viper.BindPFlag("logger.level", flags.Lookup("log-level")); err != nil {
135
		panic(err)
136
	}
137
	if err = viper.BindEnv("logger.level", "PERMIFY_LOG_LEVEL"); err != nil {
138
		panic(err)
139
	}
140
141
	if err = viper.BindPFlag("logger.output", flags.Lookup("log-output")); err != nil {
142
		panic(err)
143
	}
144
	if err = viper.BindEnv("logger.output", "PERMIFY_LOG_OUTPUT"); err != nil {
145
		panic(err)
146
	}
147
148
	if err = viper.BindPFlag("logger.enabled", flags.Lookup("log-enabled")); err != nil {
149
		panic(err)
150
	}
151
	if err = viper.BindEnv("logger.enabled", "PERMIFY_LOG_ENABLED"); err != nil {
152
		panic(err)
153
	}
154
155
	if err = viper.BindPFlag("logger.exporter", flags.Lookup("log-exporter")); err != nil {
156
		panic(err)
157
	}
158
	if err = viper.BindEnv("logger.exporter", "PERMIFY_LOG_EXPORTER"); err != nil {
159
		panic(err)
160
	}
161
162
	if err = viper.BindPFlag("logger.endpoint", flags.Lookup("log-endpoint")); err != nil {
163
		panic(err)
164
	}
165
	if err = viper.BindEnv("logger.endpoint", "PERMIFY_LOG_ENDPOINT"); err != nil {
166
		panic(err)
167
	}
168
169
	if err = viper.BindPFlag("logger.insecure", flags.Lookup("log-insecure")); err != nil {
170
		panic(err)
171
	}
172
	if err = viper.BindEnv("logger.insecure", "PERMIFY_LOG_INSECURE"); err != nil {
173
		panic(err)
174
	}
175
176
	if err = viper.BindPFlag("logger.urlpath", flags.Lookup("log-urlpath")); err != nil {
177
		panic(err)
178
	}
179
	if err = viper.BindEnv("logger.urlpath", "PERMIFY_LOG_URL_PATH"); err != nil {
180
		panic(err)
181
	}
182
183
	if err = viper.BindPFlag("logger.headers", flags.Lookup("log-headers")); err != nil {
184
		panic(err)
185
	}
186
	if err = viper.BindEnv("logger.headers", "PERMIFY_LOG_HEADERS"); err != nil {
187
		panic(err)
188
	}
189
190
	if err = viper.BindPFlag("logger.protocol", flags.Lookup("log-protocol")); err != nil {
191
		panic(err)
192
	}
193
	if err = viper.BindEnv("logger.protocol", "PERMIFY_LOG_PROTOCOL"); err != nil {
194
		panic(err)
195
	}
196
197
	// AUTHN
198
	if err = viper.BindPFlag("authn.enabled", flags.Lookup("authn-enabled")); err != nil {
199
		panic(err)
200
	}
201
	if err = viper.BindEnv("authn.enabled", "PERMIFY_AUTHN_ENABLED"); err != nil {
202
		panic(err)
203
	}
204
205
	if err = viper.BindPFlag("authn.method", flags.Lookup("authn-method")); err != nil {
206
		panic(err)
207
	}
208
	if err = viper.BindEnv("authn.method", "PERMIFY_AUTHN_METHOD"); err != nil {
209
		panic(err)
210
	}
211
212
	if err = viper.BindPFlag("authn.preshared.keys", flags.Lookup("authn-preshared-keys")); err != nil {
213
		panic(err)
214
	}
215
	if err = viper.BindEnv("authn.preshared.keys", "PERMIFY_AUTHN_PRESHARED_KEYS"); err != nil {
216
		panic(err)
217
	}
218
219
	if err = viper.BindPFlag("authn.oidc.issuer", flags.Lookup("authn-oidc-issuer")); err != nil {
220
		panic(err)
221
	}
222
	if err = viper.BindEnv("authn.oidc.issuer", "PERMIFY_AUTHN_OIDC_ISSUER"); err != nil {
223
		panic(err)
224
	}
225
226
	if err = viper.BindPFlag("authn.oidc.audience", flags.Lookup("authn-oidc-audience")); err != nil {
227
		panic(err)
228
	}
229
	if err = viper.BindEnv("authn.oidc.audience", "PERMIFY_AUTHN_OIDC_AUDIENCE"); err != nil {
230
		panic(err)
231
	}
232
233
	if err = viper.BindPFlag("authn.oidc.refresh_interval", flags.Lookup("authn-oidc-refresh-interval")); err != nil {
234
		panic(err)
235
	}
236
	if err = viper.BindEnv("authn.oidc.refresh_interval", "PERMIFY_AUTHN_OIDC_REFRESH_INTERVAL"); err != nil {
237
		panic(err)
238
	}
239
240
	if err = viper.BindPFlag("authn.oidc.backoff_interval", flags.Lookup("authn-oidc-backoff-interval")); err != nil {
241
		panic(err)
242
	}
243
	if err = viper.BindEnv("authn.oidc.backoff_interval", "PERMIFY_AUTHN_OIDC_BACKOFF_INTERVAL"); err != nil {
244
		panic(err)
245
	}
246
247
	if err = viper.BindPFlag("authn.oidc.backoff_max_retries", flags.Lookup("authn-oidc-backoff-max-retries")); err != nil {
248
		panic(err)
249
	}
250
	if err = viper.BindEnv("authn.oidc.backoff_max_retries", "PERMIFY_AUTHN_OIDC_BACKOFF_RETRIES"); err != nil {
251
		panic(err)
252
	}
253
254
	if err = viper.BindPFlag("authn.oidc.backoff_frequency", flags.Lookup("authn-oidc-backoff-frequency")); err != nil {
255
		panic(err)
256
	}
257
	if err = viper.BindEnv("authn.oidc.backoff_frequency", "PERMIFY_AUTHN_OIDC_BACKOFF_FREQUENCY"); err != nil {
258
		panic(err)
259
	}
260
261
	if err = viper.BindPFlag("authn.oidc.valid_methods", flags.Lookup("authn-oidc-valid-methods")); err != nil {
262
		panic(err)
263
	}
264
	if err = viper.BindEnv("authn.oidc.valid_methods", "PERMIFY_AUTHN_OIDC_VALID_METHODS"); err != nil {
265
		panic(err)
266
	}
267
268
	// TRACER
269
	if err = viper.BindPFlag("tracer.enabled", flags.Lookup("tracer-enabled")); err != nil {
270
		panic(err)
271
	}
272
	if err = viper.BindEnv("tracer.enabled", "PERMIFY_TRACER_ENABLED"); err != nil {
273
		panic(err)
274
	}
275
276
	if err = viper.BindPFlag("tracer.exporter", flags.Lookup("tracer-exporter")); err != nil {
277
		panic(err)
278
	}
279
	if err = viper.BindEnv("tracer.exporter", "PERMIFY_TRACER_EXPORTER"); err != nil {
280
		panic(err)
281
	}
282
283
	if err = viper.BindPFlag("tracer.endpoint", flags.Lookup("tracer-endpoint")); err != nil {
284
		panic(err)
285
	}
286
	if err = viper.BindEnv("tracer.endpoint", "PERMIFY_TRACER_ENDPOINT"); err != nil {
287
		panic(err)
288
	}
289
290
	if err = viper.BindPFlag("tracer.insecure", flags.Lookup("tracer-insecure")); err != nil {
291
		panic(err)
292
	}
293
	if err = viper.BindEnv("tracer.insecure", "PERMIFY_TRACER_INSECURE"); err != nil {
294
		panic(err)
295
	}
296
297
	if err = viper.BindPFlag("tracer.urlpath", flags.Lookup("tracer-urlpath")); err != nil {
298
		panic(err)
299
	}
300
	if err = viper.BindEnv("tracer.urlpath", "PERMIFY_TRACER_URL_PATH"); err != nil {
301
		panic(err)
302
	}
303
304
	if err = viper.BindPFlag("tracer.headers", flags.Lookup("tracer-headers")); err != nil {
305
		panic(err)
306
	}
307
	if err = viper.BindEnv("tracer.headers", "PERMIFY_TRACER_HEADERS"); err != nil {
308
		panic(err)
309
	}
310
311
	if err = viper.BindPFlag("tracer.protocol", flags.Lookup("tracer-protocol")); err != nil {
312
		panic(err)
313
	}
314
	if err = viper.BindEnv("tracer.protocol", "PERMIFY_TRACER_PROTOCOL"); err != nil {
315
		panic(err)
316
	}
317
318
	// METER
319
	if err = viper.BindPFlag("meter.enabled", flags.Lookup("meter-enabled")); err != nil {
320
		panic(err)
321
	}
322
	if err = viper.BindEnv("meter.enabled", "PERMIFY_METER_ENABLED"); err != nil {
323
		panic(err)
324
	}
325
326
	if err = viper.BindPFlag("meter.exporter", flags.Lookup("meter-exporter")); err != nil {
327
		panic(err)
328
	}
329
	if err = viper.BindEnv("meter.exporter", "PERMIFY_METER_EXPORTER"); err != nil {
330
		panic(err)
331
	}
332
333
	if err = viper.BindPFlag("meter.endpoint", flags.Lookup("meter-endpoint")); err != nil {
334
		panic(err)
335
	}
336
	if err = viper.BindEnv("meter.endpoint", "PERMIFY_METER_ENDPOINT"); err != nil {
337
		panic(err)
338
	}
339
340
	if err = viper.BindPFlag("meter.insecure", flags.Lookup("meter-insecure")); err != nil {
341
		panic(err)
342
	}
343
	if err = viper.BindEnv("meter.insecure", "PERMIFY_METER_INSECURE"); err != nil {
344
		panic(err)
345
	}
346
347
	if err = viper.BindPFlag("meter.urlpath", flags.Lookup("meter-urlpath")); err != nil {
348
		panic(err)
349
	}
350
	if err = viper.BindEnv("meter.urlpath", "PERMIFY_METER_URL_PATH"); err != nil {
351
		panic(err)
352
	}
353
354
	if err = viper.BindPFlag("meter.headers", flags.Lookup("meter-headers")); err != nil {
355
		panic(err)
356
	}
357
	if err = viper.BindEnv("meter.headers", "PERMIFY_METER_HEADERS"); err != nil {
358
		panic(err)
359
	}
360
361
	if err = viper.BindPFlag("meter.interval", flags.Lookup("meter-interval")); err != nil {
362
		panic(err)
363
	}
364
	if err = viper.BindEnv("meter.interval", "PERMIFY_METER_INTERVAL"); err != nil {
365
		panic(err)
366
	}
367
368
	if err = viper.BindPFlag("meter.protocol", flags.Lookup("meter-protocol")); err != nil {
369
		panic(err)
370
	}
371
	if err = viper.BindEnv("meter.protocol", "PERMIFY_METER_PROTOCOL"); err != nil {
372
		panic(err)
373
	}
374
375
	// SERVICE
376
	if err = viper.BindPFlag("service.circuit_breaker", flags.Lookup("service-circuit-breaker")); err != nil {
377
		panic(err)
378
	}
379
	if err = viper.BindEnv("service.circuit_breaker", "PERMIFY_SERVICE_CIRCUIT_BREAKER"); err != nil {
380
		panic(err)
381
	}
382
383
	if err = viper.BindPFlag("service.watch.enabled", flags.Lookup("service-watch-enabled")); err != nil {
384
		panic(err)
385
	}
386
	if err = viper.BindEnv("service.watch.enabled", "PERMIFY_SERVICE_WATCH_ENABLED"); err != nil {
387
		panic(err)
388
	}
389
390
	if err = viper.BindPFlag("service.schema.cache.number_of_counters", flags.Lookup("service-schema-cache-number-of-counters")); err != nil {
391
		panic(err)
392
	}
393
	if err = viper.BindEnv("service.schema.cache.number_of_counters", "PERMIFY_SERVICE_SCHEMA_CACHE_NUMBER_OF_COUNTERS"); err != nil {
394
		panic(err)
395
	}
396
397
	if err = viper.BindPFlag("service.schema.cache.max_cost", flags.Lookup("service-schema-cache-max-cost")); err != nil {
398
		panic(err)
399
	}
400
	if err = viper.BindEnv("service.schema.cache.max_cost", "PERMIFY_SERVICE_SCHEMA_CACHE_MAX_COST"); err != nil {
401
		panic(err)
402
	}
403
404
	if err = viper.BindPFlag("service.permission.bulk_limit", flags.Lookup("service-permission-bulk-limit")); err != nil {
405
		panic(err)
406
	}
407
	if err = viper.BindEnv("service.permission.bulk_limit", "PERMIFY_SERVICE_PERMISSION_BULK_LIMIT"); err != nil {
408
		panic(err)
409
	}
410
411
	if err = viper.BindPFlag("service.permission.concurrency_limit", flags.Lookup("service-permission-concurrency-limit")); err != nil {
412
		panic(err)
413
	}
414
	if err = viper.BindEnv("service.permission.concurrency_limit", "PERMIFY_SERVICE_PERMISSION_CONCURRENCY_LIMIT"); err != nil {
415
		panic(err)
416
	}
417
418
	if err = viper.BindPFlag("service.permission.cache.number_of_counters", flags.Lookup("service-permission-cache-number-of-counters")); err != nil {
419
		panic(err)
420
	}
421
	if err = viper.BindEnv("service.permission.cache.number_of_counters", "PERMIFY_SERVICE_PERMISSION_CACHE_NUMBER_OF_COUNTERS"); err != nil {
422
		panic(err)
423
	}
424
425
	if err = viper.BindPFlag("service.permission.cache.max_cost", flags.Lookup("service-permission-cache-max-cost")); err != nil {
426
		panic(err)
427
	}
428
	if err = viper.BindEnv("service.permission.cache.max_cost", "PERMIFY_SERVICE_PERMISSION_CACHE_MAX_COST"); err != nil {
429
		panic(err)
430
	}
431
432
	// DATABASE
433
	if err = viper.BindPFlag("database.engine", flags.Lookup("database-engine")); err != nil {
434
		panic(err)
435
	}
436
	if err = viper.BindEnv("database.engine", "PERMIFY_DATABASE_ENGINE"); err != nil {
437
		panic(err)
438
	}
439
440
	if err = viper.BindPFlag("database.uri", flags.Lookup("database-uri")); err != nil {
441
		panic(err)
442
	}
443
	if err = viper.BindEnv("database.uri", "PERMIFY_DATABASE_URI"); err != nil {
444
		panic(err)
445
	}
446
447
	if err = viper.BindPFlag("database.writer.uri", flags.Lookup("database-writer-uri")); err != nil {
448
		panic(err)
449
	}
450
	if err = viper.BindEnv("database.writer.uri", "PERMIFY_DATABASE_WRITER_URI"); err != nil {
451
		panic(err)
452
	}
453
454
	if err = viper.BindPFlag("database.reader.uri", flags.Lookup("database-reader-uri")); err != nil {
455
		panic(err)
456
	}
457
	if err = viper.BindEnv("database.reader.uri", "PERMIFY_DATABASE_READER_URI"); err != nil {
458
		panic(err)
459
	}
460
461
	if err = viper.BindPFlag("database.auto_migrate", flags.Lookup("database-auto-migrate")); err != nil {
462
		panic(err)
463
	}
464
	if err = viper.BindEnv("database.auto_migrate", "PERMIFY_DATABASE_AUTO_MIGRATE"); err != nil {
465
		panic(err)
466
	}
467
468
	if err = viper.BindPFlag("database.max_open_connections", flags.Lookup("database-max-open-connections")); err != nil {
469
		panic(err)
470
	}
471
	if err = viper.BindEnv("database.max_open_connections", "PERMIFY_DATABASE_MAX_OPEN_CONNECTIONS"); err != nil {
472
		panic(err)
473
	}
474
475
	if err = viper.BindPFlag("database.max_idle_connections", flags.Lookup("database-max-idle-connections")); err != nil {
476
		panic(err)
477
	}
478
	if err = viper.BindEnv("database.max_idle_connections", "PERMIFY_DATABASE_MAX_IDLE_CONNECTIONS"); err != nil {
479
		panic(err)
480
	}
481
482
	if err = viper.BindPFlag("database.max_connection_lifetime", flags.Lookup("database-max-connection-lifetime")); err != nil {
483
		panic(err)
484
	}
485
	if err = viper.BindEnv("database.max_connection_lifetime", "PERMIFY_DATABASE_MAX_CONNECTION_LIFETIME"); err != nil {
486
		panic(err)
487
	}
488
489
	if err = viper.BindPFlag("database.max_connection_idle_time", flags.Lookup("database-max-connection-idle-time")); err != nil {
490
		panic(err)
491
	}
492
	if err = viper.BindEnv("database.max_connection_idle_time", "PERMIFY_DATABASE_MAX_CONNECTION_IDLE_TIME"); err != nil {
493
		panic(err)
494
	}
495
496
	if err = viper.BindPFlag("database.max_data_per_write", flags.Lookup("database-max-data-per-write")); err != nil {
497
		panic(err)
498
	}
499
	if err = viper.BindEnv("database.max_data_per_write", "PERMIFY_DATABASE_MAX_DATA_PER_WRITE"); err != nil {
500
		panic(err)
501
	}
502
503
	if err = viper.BindPFlag("database.max_retries", flags.Lookup("database-max-retries")); err != nil {
504
		panic(err)
505
	}
506
	if err = viper.BindEnv("database.max_retries", "PERMIFY_DATABASE_MAX_RETRIES"); err != nil {
507
		panic(err)
508
	}
509
510
	if err = viper.BindPFlag("database.watch_buffer_size", flags.Lookup("database-watch-buffer-size")); err != nil {
511
		panic(err)
512
	}
513
	if err = viper.BindEnv("database.watch_buffer_size", "PERMIFY_DATABASE_WATCH_BUFFER_SIZE"); err != nil {
514
		panic(err)
515
	}
516
517
	if err = viper.BindPFlag("database.garbage_collection.enabled", flags.Lookup("database-garbage-collection-enabled")); err != nil {
518
		panic(err)
519
	}
520
	if err = viper.BindEnv("database.garbage_collection.enabled", "PERMIFY_DATABASE_GARBAGE_COLLECTION_ENABLED"); err != nil {
521
		panic(err)
522
	}
523
524
	if err = viper.BindPFlag("database.garbage_collection.interval", flags.Lookup("database-garbage-collection-interval")); err != nil {
525
		panic(err)
526
	}
527
	if err = viper.BindEnv("database.garbage_collection.interval", "PERMIFY_DATABASE_GARBAGE_COLLECTION_INTERVAL"); err != nil {
528
		panic(err)
529
	}
530
531
	if err = viper.BindPFlag("database.garbage_collection.timeout", flags.Lookup("database-garbage-collection-timeout")); err != nil {
532
		panic(err)
533
	}
534
	if err = viper.BindEnv("database.garbage_collection.timeout", "PERMIFY_DATABASE_GARBAGE_COLLECTION_TIMEOUT"); err != nil {
535
		panic(err)
536
	}
537
538
	if err = viper.BindPFlag("database.garbage_collection.window", flags.Lookup("database-garbage-collection-window")); err != nil {
539
		panic(err)
540
	}
541
	if err = viper.BindEnv("database.garbage_collection.window", "PERMIFY_DATABASE_GARBAGE_COLLECTION_WINDOW"); err != nil {
542
		panic(err)
543
	}
544
545
	// DISTRIBUTED
546
	if err = viper.BindPFlag("distributed.enabled", flags.Lookup("distributed-enabled")); err != nil {
547
		panic(err)
548
	}
549
	if err = viper.BindEnv("distributed.enabled", "PERMIFY_DISTRIBUTED_ENABLED"); err != nil {
550
		panic(err)
551
	}
552
553
	if err = viper.BindPFlag("distributed.address", flags.Lookup("distributed-address")); err != nil {
554
		panic(err)
555
	}
556
	if err = viper.BindEnv("distributed.address", "PERMIFY_DISTRIBUTED_ADDRESS"); err != nil {
557
		panic(err)
558
	}
559
560
	if err = viper.BindPFlag("distributed.port", flags.Lookup("distributed-port")); err != nil {
561
		panic(err)
562
	}
563
	if err = viper.BindEnv("distributed.port", "PERMIFY_DISTRIBUTED_PORT"); err != nil {
564
		panic(err)
565
	}
566
567
	if err = viper.BindPFlag("distributed.partition_count", flags.Lookup("distributed-partition-count")); err != nil {
568
		panic(err)
569
	}
570
	if err = viper.BindEnv("distributed.partition_count", "PERMIFY_DISTRIBUTED_PARTITION_COUNT"); err != nil {
571
		panic(err)
572
	}
573
574
	if err = viper.BindPFlag("distributed.replication_factor", flags.Lookup("distributed-replication-factor")); err != nil {
575
		panic(err)
576
	}
577
	if err = viper.BindEnv("distributed.replication_factor", "PERMIFY_DISTRIBUTED_REPLICATION_FACTOR"); err != nil {
578
		panic(err)
579
	}
580
581
	if err = viper.BindPFlag("distributed.load", flags.Lookup("distributed-load")); err != nil {
582
		panic(err)
583
	}
584
	if err = viper.BindEnv("distributed.load", "PERMIFY_DISTRIBUTED_LOAD"); err != nil {
585
		panic(err)
586
	}
587
588
	if err = viper.BindPFlag("distributed.picker_width", flags.Lookup("distributed-picker-width")); err != nil {
589
		panic(err)
590
	}
591
	if err = viper.BindEnv("distributed.picker_width", "PERMIFY_DISTRIBUTED_PICKER_WIDTH"); err != nil {
592
		panic(err)
593
	}
594
}
595