@kineticdata/react 6.0.0 → 6.0.1

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.
Files changed (56) hide show
  1. package/lib/apis/http.js +33 -1
  2. package/lib/apis/http.test.js +100 -0
  3. package/lib/apis/system/index.js +141 -10
  4. package/lib/apis/task/index.js +15 -1
  5. package/lib/components/agent/bridge/BridgeTable.js +4 -1
  6. package/lib/components/agent/filestore/FilestoreTable.js +4 -1
  7. package/lib/components/agent/handler/AgentHandlerTable.js +5 -2
  8. package/lib/components/common/ToastContainer.js +170 -0
  9. package/lib/components/common/defaults/Toast.js +26 -0
  10. package/lib/components/common/defaults/index.js +13 -0
  11. package/lib/components/core/attribute_definition/AttributeDefinitionTable.js +7 -3
  12. package/lib/components/core/bridge_model/BridgeModelTable.js +5 -2
  13. package/lib/components/core/category/CategoryTable.js +13 -6
  14. package/lib/components/core/field_definition/FieldDefinitionTable.js +11 -5
  15. package/lib/components/core/form/FormTable.js +22 -11
  16. package/lib/components/core/form_type/FormTypeTable.js +3 -1
  17. package/lib/components/core/index_definition/IndexDefinitionTable.js +12 -5
  18. package/lib/components/core/kapp/KappTable.js +17 -32
  19. package/lib/components/core/log/LogTable.js +8 -2
  20. package/lib/components/core/security_definition/SecurityDefinitionTable.js +9 -4
  21. package/lib/components/core/submission/FormSubmissionTable.js +37 -19
  22. package/lib/components/core/submission/KappSubmissionTable.js +37 -19
  23. package/lib/components/core/team/TeamForm.js +1 -1
  24. package/lib/components/core/team/TeamTable.js +11 -5
  25. package/lib/components/core/user/UserTable.js +23 -5
  26. package/lib/components/core/webapi/WebApiForm.js +49 -30
  27. package/lib/components/core/webapi/WebApiTable.js +14 -7
  28. package/lib/components/core/webhook/WebhookTable.js +19 -9
  29. package/lib/components/core/webhook_job/WebhookJobTable.js +39 -19
  30. package/lib/components/form/Form.helpers.js +81 -19
  31. package/lib/components/form/Form.models.js +1 -0
  32. package/lib/components/index.js +53 -0
  33. package/lib/components/system/SystemCassandraForm.js +98 -0
  34. package/lib/components/system/SystemElasticSearchForm.js +98 -0
  35. package/lib/components/system/SystemFilestoreForm.js +10 -5
  36. package/lib/components/system/SystemIngressForm.js +77 -29
  37. package/lib/components/system/SystemTaskAdapterForm.js +29 -5
  38. package/lib/components/system/SystemTrustedCertificateForm.js +40 -0
  39. package/lib/components/system/SystemTrustedCertificatesTable.js +74 -0
  40. package/lib/components/system/helpers.js +226 -45
  41. package/lib/components/system/spaces/SystemTenantForm.js +75 -34
  42. package/lib/components/table/Table.js +88 -7
  43. package/lib/components/table/Table.redux.js +68 -47
  44. package/lib/components/table/Table.test.js +39 -0
  45. package/lib/components/table/defaults/ColumnControl.js +26 -0
  46. package/lib/components/table/defaults/index.js +3 -1
  47. package/lib/components/task/errors/RunErrorTable.js +33 -14
  48. package/lib/components/task/handlers/HandlerTable.js +23 -11
  49. package/lib/components/task/runs/RunTable.js +22 -9
  50. package/lib/components/task/sources/SourceTable.js +15 -7
  51. package/lib/components/task/triggers/TriggerTable.js +50 -23
  52. package/lib/components/task/workflows/LinkedWorkflowTable.js +32 -16
  53. package/lib/components/task/workflows/WorkflowTable.js +30 -15
  54. package/lib/index.js +4 -3
  55. package/package.json +17 -4
  56. package/proxyhelper.js +17 -11
@@ -36,7 +36,7 @@ var generateInitialValues = function generateInitialValues(persistedObject, pers
36
36
  var property = properties.find(function (p) {
37
37
  return p.get('name') === key;
38
38
  });
39
- return property ? property.get('value') : defaultObjectValue;
39
+ return property ? property.get('certificate') || property.get('value') : defaultObjectValue;
40
40
  } else {
41
41
  return (0, _immutable.get)(properties, key, defaultObjectValue);
42
42
  }
@@ -44,7 +44,7 @@ var generateInitialValues = function generateInitialValues(persistedObject, pers
44
44
  var adapterProperty = (0, _immutable.get)(defaultObject, 'properties', (0, _immutable.List)()).find(function (property) {
45
45
  return property.get('name') === key;
46
46
  });
47
- return (0, _immutable.get)(adapterProperty, 'value', defaultObjectValue);
47
+ return (0, _immutable.get)(adapterProperty, 'certificate', (0, _immutable.get)(adapterProperty, 'value', defaultObjectValue));
48
48
  }
49
49
  return initialValue;
50
50
  };
@@ -76,7 +76,7 @@ var generatePasswordFields = function generatePasswordFields(adapterName, persis
76
76
  return [{
77
77
  name: name,
78
78
  label: label,
79
- type: 'password',
79
+ type: 'secret',
80
80
  "transient": function transient(_ref2) {
81
81
  var values = _ref2.values;
82
82
  return persistedObject ? !values.get("".concat(name, "Change")) : values.get(name) === '';
@@ -89,7 +89,7 @@ var generatePasswordFields = function generatePasswordFields(adapterName, persis
89
89
  }, {
90
90
  name: "".concat(name, "Change"),
91
91
  label: "Change ".concat(label),
92
- type: 'checkbox',
92
+ type: 'toggle',
93
93
  visible: !!persistedObject,
94
94
  initialValue: !persistedObject,
95
95
  "transient": true,
@@ -173,26 +173,75 @@ var MSSQL_FIELDS = function MSSQL_FIELDS(adapter, persistedObject, persistedPath
173
173
  initialValue: initialValues('sslEnabled', 'false')
174
174
  }, {
175
175
  name: 'mssql_sslProtocol',
176
- description: 'Protocol to use with SSL encryption',
176
+ helpText: 'Protocol to use with SSL encryption',
177
177
  label: 'SSL Protocol',
178
178
  type: 'text',
179
- required: false,
179
+ required: function required(_ref7) {
180
+ var values = _ref7.values;
181
+ return values.get('mssql_sslEnabled') === 'true';
182
+ },
180
183
  visible: trueIfAdapter,
181
184
  initialValue: initialValues('sslProtocol', 'TLSv1.2')
185
+ }, {
186
+ name: 'mssql_current_sslrootcert',
187
+ label: 'Root Certificate',
188
+ type: 'certificate',
189
+ "transient": true,
190
+ required: function required(_ref8) {
191
+ var values = _ref8.values;
192
+ return !values.get('mssql_change_sslrootcert') && values.get('mssql_sslEnabled') === 'true';
193
+ },
194
+ visible: trueIfAdapter,
195
+ initialValue: initialValues('sslrootcert', {})
182
196
  }, {
183
197
  name: 'mssql_sslrootcert',
184
198
  label: 'Root Certificate',
185
- type: 'text-area',
199
+ type: 'file',
200
+ required: function required(_ref9) {
201
+ var values = _ref9.values;
202
+ return !!values.get('mssql_change_sslrootcert') && values.get('mssql_sslEnabled') === 'true';
203
+ },
204
+ visible: trueIfAdapter
205
+ }, {
206
+ name: 'mssql_change_sslrootcert',
207
+ label: 'Change Root Certificate',
208
+ type: 'toggle',
209
+ "transient": true,
210
+ initialValue: false,
211
+ onChange: function onChange(_ref10, _ref11) {
212
+ var values = _ref10.values;
213
+ var setValue = _ref11.setValue;
214
+ if (!_immutable.List.isList(values.get('mssql_sslrootcert')) || values.get('mssql_sslrootcert').size > 0) {
215
+ setValue('mssql_sslrootcert', (0, _immutable.List)());
216
+ }
217
+ }
218
+ }, {
219
+ name: 'mssql_current_sslcert',
220
+ label: 'Client Certificate',
221
+ type: 'certificate',
222
+ "transient": true,
186
223
  required: false,
187
224
  visible: trueIfAdapter,
188
- initialValue: initialValues('sslrootcert', '')
225
+ initialValue: initialValues('sslcert', '')
189
226
  }, {
190
227
  name: 'mssql_sslcert',
191
228
  label: 'Client Certificate',
192
- type: 'text-area',
229
+ type: 'file',
193
230
  required: false,
194
- visible: trueIfAdapter,
195
- initialValue: initialValues('sslcert', '')
231
+ visible: trueIfAdapter
232
+ }, {
233
+ name: 'mssql_change_sslcert',
234
+ label: 'Change Client Certificate',
235
+ type: 'toggle',
236
+ "transient": true,
237
+ initialValue: false,
238
+ onChange: function onChange(_ref12, _ref13) {
239
+ var values = _ref12.values;
240
+ var setValue = _ref13.setValue;
241
+ if (!_immutable.List.isList(values.get('mssql_sslcert')) || values.get('mssql_sslcert').size > 0) {
242
+ setValue('mssql_sslcert', (0, _immutable.List)());
243
+ }
244
+ }
196
245
  }], (0, _toConsumableArray2["default"])(generatePasswordFields('mssql', persistedObject, adapter, defaultAdapter, 'Truststore Password', 'trustStorePassword', function (values) {
197
246
  return values.get('mssql_sslrootcert', '') !== '';
198
247
  })), (0, _toConsumableArray2["default"])(generatePasswordFields('mssql', persistedObject, adapter, defaultAdapter, 'Keystore Password', 'keyStoreSecret', function (values) {
@@ -202,8 +251,8 @@ var MSSQL_FIELDS = function MSSQL_FIELDS(adapter, persistedObject, persistedPath
202
251
  exports.MSSQL_FIELDS = MSSQL_FIELDS;
203
252
  var ORACLE_FIELDS = function ORACLE_FIELDS(adapter, persistedObject, persistedPath, defaultAdapter) {
204
253
  var initialValues = generateInitialValues(persistedObject, persistedPath, defaultAdapter, 'oracle');
205
- var trueIfAdapter = function trueIfAdapter(_ref7) {
206
- var values = _ref7.values;
254
+ var trueIfAdapter = function trueIfAdapter(_ref14) {
255
+ var values = _ref14.values;
207
256
  return values.get(adapter) === 'oracle';
208
257
  };
209
258
  return [{
@@ -252,14 +301,20 @@ var ORACLE_FIELDS = function ORACLE_FIELDS(adapter, persistedObject, persistedPa
252
301
  name: 'oracle_sslVersion',
253
302
  label: 'TLS Version',
254
303
  type: 'text',
255
- required: false,
304
+ required: function required(_ref15) {
305
+ var values = _ref15.values;
306
+ return values.get('oracle_sslEnabled') === 'true';
307
+ },
256
308
  visible: trueIfAdapter,
257
309
  initialValue: initialValues('sslVersion', '1.2')
258
310
  }, {
259
311
  name: 'oracle_sslServerDnMatch',
260
312
  label: 'Server DN Match',
261
313
  type: 'select',
262
- required: false,
314
+ required: function required(_ref16) {
315
+ var values = _ref16.values;
316
+ return values.get('oracle_sslEnabled') === 'true';
317
+ },
263
318
  visible: trueIfAdapter,
264
319
  options: [{
265
320
  label: 'True',
@@ -277,19 +332,65 @@ var ORACLE_FIELDS = function ORACLE_FIELDS(adapter, persistedObject, persistedPa
277
332
  visible: trueIfAdapter,
278
333
  initialValue: initialValues('ciphersuites', '')
279
334
  }, {
280
- name: 'oracle_serverCert',
335
+ name: 'oracle_current_serverCert',
281
336
  label: 'Server Certificate',
282
- type: 'text-area',
283
- required: false,
337
+ type: 'certificate',
338
+ "transient": true,
339
+ required: function required(_ref17) {
340
+ var values = _ref17.values;
341
+ return !values.get('oracle_change_serverCert') && values.get('oracle_sslEnabled') === 'true';
342
+ },
284
343
  visible: trueIfAdapter,
285
344
  initialValue: initialValues('serverCert', '')
286
345
  }, {
287
- name: 'oracle_clientCert',
346
+ name: 'oracle_serverCert',
347
+ label: 'Server Certificate',
348
+ type: 'file',
349
+ required: function required(_ref18) {
350
+ var values = _ref18.values;
351
+ return !!values.get('oracle_change_serverCert') && values.get('oracle_sslEnabled') === 'true';
352
+ },
353
+ visible: trueIfAdapter
354
+ }, {
355
+ name: 'oracle_change_serverCert',
356
+ label: 'Change Server Certificate',
357
+ type: 'toggle',
358
+ "transient": true,
359
+ initialValue: false,
360
+ onChange: function onChange(_ref19, _ref20) {
361
+ var values = _ref19.values;
362
+ var setValue = _ref20.setValue;
363
+ if (!_immutable.List.isList(values.get('oracle_serverCert')) || values.get('oracle_serverCert').size > 0) {
364
+ setValue('oracle_serverCert', (0, _immutable.List)());
365
+ }
366
+ }
367
+ }, {
368
+ name: 'oracle_current_clientCert',
288
369
  label: 'Client Certificate',
289
- type: 'text-area',
370
+ type: 'certificate',
371
+ "transient": true,
290
372
  required: false,
291
373
  visible: trueIfAdapter,
292
374
  initialValue: initialValues('clientCert', '')
375
+ }, {
376
+ name: 'oracle_clientCert',
377
+ label: 'Client Certificate',
378
+ type: 'file',
379
+ required: false,
380
+ visible: trueIfAdapter
381
+ }, {
382
+ name: 'oracle_change_clientCert',
383
+ label: 'Change Client Certificate',
384
+ type: 'toggle',
385
+ "transient": true,
386
+ initialValue: false,
387
+ onChange: function onChange(_ref21, _ref22) {
388
+ var values = _ref21.values;
389
+ var setValue = _ref22.setValue;
390
+ if (!_immutable.List.isList(values.get('oracle_clientCert')) || values.get('oracle_clientCert').size > 0) {
391
+ setValue('oracle_clientCert', (0, _immutable.List)());
392
+ }
393
+ }
293
394
  }], (0, _toConsumableArray2["default"])(generatePasswordFields('oracle', persistedObject, adapter, defaultAdapter, 'Truststore Password', 'trustStorePassword', function (values) {
294
395
  return values.get('oracle_serverCert', '') !== '';
295
396
  })), (0, _toConsumableArray2["default"])(generatePasswordFields('oracle', persistedObject, adapter, defaultAdapter, 'Keystore Password', 'keyStorePassword', function (values) {
@@ -298,8 +399,8 @@ var ORACLE_FIELDS = function ORACLE_FIELDS(adapter, persistedObject, persistedPa
298
399
  };
299
400
  exports.ORACLE_FIELDS = ORACLE_FIELDS;
300
401
  var POSTGRES_FIELDS = function POSTGRES_FIELDS(adapter, persistedObject, persistedPath, defaultAdapter) {
301
- var trueIfAdapter = function trueIfAdapter(_ref8) {
302
- var values = _ref8.values;
402
+ var trueIfAdapter = function trueIfAdapter(_ref23) {
403
+ var values = _ref23.values;
303
404
  return values.get(adapter) === 'postgres';
304
405
  };
305
406
  var initialValues = generateInitialValues(persistedObject, persistedPath, defaultAdapter, 'postgres');
@@ -349,7 +450,10 @@ var POSTGRES_FIELDS = function POSTGRES_FIELDS(adapter, persistedObject, persist
349
450
  name: 'postgres_sslmode',
350
451
  label: 'SSL Mode',
351
452
  type: 'select',
352
- required: false,
453
+ required: function required(_ref24) {
454
+ var values = _ref24.values;
455
+ return values.get('postgres_sslEnabled') === 'true';
456
+ },
353
457
  visible: trueIfAdapter,
354
458
  options: [{
355
459
  label: 'Disable',
@@ -368,32 +472,102 @@ var POSTGRES_FIELDS = function POSTGRES_FIELDS(adapter, persistedObject, persist
368
472
  value: 'verify-full'
369
473
  }],
370
474
  initialValue: initialValues('sslmode', 'disable')
475
+ }, {
476
+ name: 'postgres_current_sslrootcert',
477
+ helpText: 'x509 certificate (PEM format) used for server authentication',
478
+ label: 'Root Certificate',
479
+ type: 'certificate',
480
+ "transient": true,
481
+ required: function required(_ref25) {
482
+ var values = _ref25.values;
483
+ return !values.get('postgres_change_sslrootcert') && values.get('postgres_sslEnabled') === 'true' && values.get('postgres_sslmode') !== 'disable';
484
+ },
485
+ visible: trueIfAdapter,
486
+ initialValue: initialValues('sslrootcert', {})
371
487
  }, {
372
488
  name: 'postgres_sslrootcert',
373
- description: 'x509 certificate (PEM format) used for server authentication',
489
+ helpText: 'x509 certificate (PEM format) used for server authentication',
374
490
  label: 'Root Certificate',
375
- type: 'text-area',
491
+ type: 'file',
492
+ required: function required(_ref26) {
493
+ var values = _ref26.values;
494
+ return !!values.get('postgres_change_sslrootcert') && values.get('postgres_sslEnabled') === 'true' && values.get('postgres_sslmode') !== 'disable';
495
+ },
496
+ visible: trueIfAdapter
497
+ }, {
498
+ name: 'postgres_change_sslrootcert',
499
+ label: 'Change Root Certificate',
500
+ type: 'toggle',
501
+ "transient": true,
502
+ initialValue: false,
503
+ onChange: function onChange(_ref27, _ref28) {
504
+ var values = _ref27.values;
505
+ var setValue = _ref28.setValue;
506
+ if (!_immutable.List.isList(values.get('postgres_sslrootcert')) || values.get('postgres_sslrootcert').size > 0) {
507
+ setValue('postgres_sslrootcert', (0, _immutable.List)());
508
+ }
509
+ }
510
+ }, {
511
+ name: 'postgres_current_sslcert',
512
+ label: 'Client Certificate',
513
+ type: 'certificate',
514
+ "transient": true,
376
515
  required: false,
377
516
  visible: trueIfAdapter,
378
- initialValue: initialValues('sslrootcert', '')
517
+ initialValue: initialValues('sslcert', '')
379
518
  }, {
380
519
  name: 'postgres_sslcert',
381
520
  label: 'Client Certificate',
382
- type: 'text-area',
521
+ type: 'file',
383
522
  required: false,
384
- visible: trueIfAdapter,
385
- initialValue: initialValues('sslcert', '')
523
+ visible: trueIfAdapter
524
+ }, {
525
+ name: 'postgres_change_sslcert',
526
+ label: 'Change Client Certificate',
527
+ type: 'toggle',
528
+ "transient": true,
529
+ initialValue: false,
530
+ onChange: function onChange(_ref29, _ref30) {
531
+ var values = _ref29.values;
532
+ var setValue = _ref30.setValue;
533
+ if (!_immutable.List.isList(values.get('postgres_sslcert')) || values.get('postgres_sslcert').size > 0) {
534
+ setValue('postgres_sslcert', (0, _immutable.List)());
535
+ }
536
+ }
537
+ }, {
538
+ name: 'postgres_current_sslkey',
539
+ label: 'Client Key',
540
+ type: 'secret',
541
+ "transient": true,
542
+ required: false,
543
+ visible: false,
544
+ initialValue: ''
386
545
  }, {
387
546
  name: 'postgres_sslkey',
388
547
  label: 'Client Key',
389
- type: 'text-area',
548
+ type: 'file',
390
549
  required: false,
391
- visible: trueIfAdapter,
392
- initialValue: initialValues('sslkey', '')
550
+ visible: trueIfAdapter
551
+ }, {
552
+ name: 'postgres_change_sslkey',
553
+ label: 'Change Private Key',
554
+ type: 'toggle',
555
+ "transient": true,
556
+ initialValue: false,
557
+ onChange: function onChange(_ref31, _ref32) {
558
+ var values = _ref31.values;
559
+ var setValue = _ref32.setValue;
560
+ if (!_immutable.List.isList(values.get('postgres_sslkey')) || values.get('postgres_sslkey').size > 0) {
561
+ setValue('postgres_sslkey', (0, _immutable.List)());
562
+ }
563
+ }
393
564
  }]);
394
565
  };
395
566
  exports.POSTGRES_FIELDS = POSTGRES_FIELDS;
396
567
  var adapterProperties = function adapterProperties(values, adapter) {
568
+ var filterFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (o) {
569
+ return o;
570
+ };
397
571
  var adapterPrefix = "".concat(adapter, "_");
398
572
  return values
399
573
  // Remove the other adapters properties.
@@ -403,7 +577,14 @@ var adapterProperties = function adapterProperties(values, adapter) {
403
577
  // Remove the adapter prefix from the property names.
404
578
  .mapKeys(function (key) {
405
579
  return key.replace(adapterPrefix, '');
406
- }).toObject();
580
+ })
581
+ // Map values that are Lists to their first entry (used for File fields)
582
+ .map(function (value) {
583
+ return _immutable.List.isList(value) ? value.get(0) || '' : value;
584
+ })
585
+ // Call the provided filter function in case we need to filter out values,
586
+ // such as for hidden file fields
587
+ .filter(filterFn).toObject();
407
588
  };
408
589
  exports.adapterProperties = adapterProperties;
409
590
  var propertiesFromAdapters = function propertiesFromAdapters() {
@@ -448,26 +629,26 @@ var getPropertyValue = function getPropertyValue(property, adapter, adapterType)
448
629
  return propertyValue;
449
630
  }
450
631
  };
451
- var adapterPropertiesFields = function adapterPropertiesFields(_ref9) {
452
- var adapterProperties = _ref9.adapterProperties,
453
- defaultAdapter = _ref9.defaultAdapter,
454
- _ref9$prefix = _ref9.prefix,
455
- prefix = _ref9$prefix === void 0 ? '' : _ref9$prefix,
456
- _ref9$adapterType = _ref9.adapterType,
457
- adapterType = _ref9$adapterType === void 0 ? 'type' : _ref9$adapterType;
632
+ var adapterPropertiesFields = function adapterPropertiesFields(_ref33) {
633
+ var adapterProperties = _ref33.adapterProperties,
634
+ defaultAdapter = _ref33.defaultAdapter,
635
+ _ref33$prefix = _ref33.prefix,
636
+ prefix = _ref33$prefix === void 0 ? '' : _ref33$prefix,
637
+ _ref33$adapterType = _ref33.adapterType,
638
+ adapterType = _ref33$adapterType === void 0 ? 'type' : _ref33$adapterType;
458
639
  return adapterProperties.map(function (property) {
459
640
  return {
460
641
  name: formPropertyName(prefix, 'properties', property.get('type'), property.get('name')),
461
642
  label: property.get('label') || property.get('name'),
462
- visible: function visible(_ref10) {
463
- var values = _ref10.values;
643
+ visible: function visible(_ref34) {
644
+ var values = _ref34.values;
464
645
  return values.get(formPropertyName(prefix, adapterType)) === property.get('type');
465
646
  },
466
647
  type: property.get('sensitive') ? 'password' : property.has('options') ? 'select' : 'text',
467
- placeholder: property.get('sensitive') && defaultAdapter.get('adapterClass') === property.get('type') ? '•••••••' : undefined,
648
+ placeholder: property.get('sensitive') && defaultAdapter && defaultAdapter.get('adapterClass') === property.get('type') ? '•••••••' : undefined,
468
649
  helpText: property.get('description'),
469
- required: function required(_ref11) {
470
- var values = _ref11.values;
650
+ required: function required(_ref35) {
651
+ var values = _ref35.values;
471
652
  return values.get(formPropertyName(prefix, adapterType)) === property.get('type') && property.get('required', false);
472
653
  },
473
654
  options: property.get('options', undefined),
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.SystemTenantForm = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
11
+ var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
12
  var _immutable = require("immutable");
11
13
  var _Form = require("../../form/Form");
12
14
  var _apis = require("../../../apis");
@@ -33,12 +35,24 @@ var dataSources = function dataSources(_ref) {
33
35
  transform: function transform(result) {
34
36
  return result.adapter;
35
37
  }
38
+ },
39
+ fileFields: {
40
+ fn: function fn() {
41
+ return {
42
+ mssql: ['sslrootcert', 'sslcert'],
43
+ oracle: ['serverCert', 'clientCert'],
44
+ postgres: ['sslrootcert', 'sslcert', 'sslkey']
45
+ };
46
+ },
47
+ params: []
36
48
  }
37
49
  };
38
50
  };
39
51
  var handleSubmit = function handleSubmit(_ref2) {
40
52
  var slug = _ref2.slug;
41
- return function (values) {
53
+ return function (values, _ref3) {
54
+ var fileFields = _ref3.fileFields,
55
+ rawValues = _ref3.values;
42
56
  var authenticationSecret = values.get('authenticationSecret') ? {
43
57
  authenticationSecret: values.get('authenticationSecret')
44
58
  } : {};
@@ -48,49 +62,76 @@ var handleSubmit = function handleSubmit(_ref2) {
48
62
  replicas: parseInt(values.get('replicas'))
49
63
  }
50
64
  } : {};
51
- var tenant = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, authenticationSecret), {}, {
65
+ var type = values.get('task_databaseAdapter_type');
66
+ var fileFieldsForType = fileFields.get(type);
67
+ // Only include values for file fields if the toggle field is true
68
+ var filterFn = function filterFn(value, key) {
69
+ return !fileFieldsForType.includes(key) || !!rawValues.get("".concat(type, "_change_").concat(key));
70
+ };
71
+ // Get adapter properties to save
72
+ var properties = (0, _helpers2.adapterProperties)(values, type, filterFn);
73
+ // If creating new, pass in file values from default adapter if not uploaded
74
+ if (!slug) {
75
+ properties = fileFieldsForType.reduce(function (props, field) {
76
+ if (typeof props[field] === 'undefined' && !!rawValues.getIn(["".concat(type, "_current_").concat(field), 'pem'])) {
77
+ return (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, props), {}, (0, _defineProperty2["default"])({}, field, new File([rawValues.getIn(["".concat(type, "_current_").concat(field), 'pem'])], "".concat(field, ".crt"), {
78
+ type: 'text/plain'
79
+ })));
80
+ }
81
+ return props;
82
+ }, properties);
83
+ }
84
+ var tenant = (0, _objectSpread3["default"])((0, _objectSpread3["default"])({}, authenticationSecret), {}, {
52
85
  space: {
53
86
  slug: values.get('slug'),
54
87
  name: values.get('name')
55
88
  },
56
- task: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({
89
+ task: (0, _objectSpread3["default"])((0, _objectSpread3["default"])({
57
90
  autoCreateDatabase: values.get('task_autoCreateDatabase') ? 'true' : 'false'
58
91
  }, deployment), {}, {
59
92
  databaseAdapter: {
60
- type: values.get('task_databaseAdapter_type'),
61
- properties: (0, _helpers2.adapterProperties)(values, values.get('task_databaseAdapter_type'))
93
+ type: type,
94
+ properties: properties
62
95
  }
63
96
  }),
64
97
  users: values.get('users')
65
98
  });
99
+ var multipart = Object.entries(tenant.task.databaseAdapter.properties).some(function (_ref4) {
100
+ var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
101
+ name = _ref5[0],
102
+ value = _ref5[1];
103
+ return value instanceof File;
104
+ });
66
105
  return slug ? (0, _apis.updateTenant)({
67
106
  slug: slug,
68
- tenant: tenant
107
+ tenant: tenant,
108
+ multipart: multipart
69
109
  }).then((0, _Form2.handleFormErrors)('space', 'There was an error saving the Space.')) : (0, _apis.createTenant)({
70
- tenant: tenant
110
+ tenant: tenant,
111
+ multipart: multipart
71
112
  }).then((0, _Form2.handleFormErrors)(null, 'There was an error saving the Space.'));
72
113
  };
73
114
  };
74
115
  var getSpaceValue = function getSpaceValue(tenant, key) {
75
116
  return tenant ? (0, _immutable.getIn)(tenant, ['space', key], '') : '';
76
117
  };
77
- var fields = function fields(_ref3) {
78
- var slug = _ref3.slug;
79
- return function (_ref4) {
80
- var tenant = _ref4.tenant,
81
- defaultTaskDbAdapter = _ref4.defaultTaskDbAdapter;
118
+ var fields = function fields(_ref6) {
119
+ var slug = _ref6.slug;
120
+ return function (_ref7) {
121
+ var tenant = _ref7.tenant,
122
+ defaultTaskDbAdapter = _ref7.defaultTaskDbAdapter;
82
123
  return (tenant || !slug) && (defaultTaskDbAdapter || defaultTaskDbAdapter === null) && [
83
124
  // Top-level fields
84
125
  {
85
126
  name: 'authenticationSecret',
86
127
  label: 'Authentication Secret',
87
128
  type: 'password',
88
- visible: function visible(_ref5) {
89
- var values = _ref5.values;
129
+ visible: function visible(_ref8) {
130
+ var values = _ref8.values;
90
131
  return values.get('changeAuthenticationSecret');
91
132
  },
92
- "transient": function transient(_ref6) {
93
- var values = _ref6.values;
133
+ "transient": function transient(_ref9) {
134
+ var values = _ref9.values;
94
135
  return !values.get('changeAuthenticationSecret');
95
136
  },
96
137
  required: false
@@ -100,9 +141,9 @@ var fields = function fields(_ref3) {
100
141
  type: 'checkbox',
101
142
  "transient": true,
102
143
  initialValue: false,
103
- onChange: function onChange(_ref7, _ref8) {
104
- var values = _ref7.values;
105
- var setValue = _ref8.setValue;
144
+ onChange: function onChange(_ref10, _ref11) {
145
+ var values = _ref10.values;
146
+ var setValue = _ref11.setValue;
106
147
  if (values.get('authenticationSecret') !== '') {
107
148
  setValue('authenticationSecret', '');
108
149
  }
@@ -114,9 +155,9 @@ var fields = function fields(_ref3) {
114
155
  label: 'Name',
115
156
  type: 'text',
116
157
  required: true,
117
- onChange: function onChange(_ref9, _ref10) {
118
- var values = _ref9.values;
119
- var setValue = _ref10.setValue;
158
+ onChange: function onChange(_ref12, _ref13) {
159
+ var values = _ref12.values;
160
+ var setValue = _ref13.setValue;
120
161
  if (values.get('linked')) {
121
162
  setValue('slug', (0, _helpers.slugify)(values.get('name')), false);
122
163
  }
@@ -128,8 +169,8 @@ var fields = function fields(_ref3) {
128
169
  type: 'text',
129
170
  required: true,
130
171
  enabled: !slug,
131
- onChange: function onChange(_bindings, _ref11) {
132
- var setValue = _ref11.setValue;
172
+ onChange: function onChange(_bindings, _ref14) {
173
+ var setValue = _ref14.setValue;
133
174
  setValue('linked', false);
134
175
  },
135
176
  initialValue: getSpaceValue(tenant, 'slug')
@@ -149,7 +190,7 @@ var fields = function fields(_ref3) {
149
190
  label: 'Task Replica Count',
150
191
  type: 'text',
151
192
  required: !!slug,
152
- initialValue: (0, _immutable.getIn)(tenant, ['task', 'deployment', 'replicas'], 1)
193
+ initialValue: (0, _immutable.getIn)(tenant, ['task', 'deployment', 'specReplicas'], 1)
153
194
  // pattern: /^\d+$/,
154
195
  // patternMessage:
155
196
  // 'You must provide a number of replicas desired.',
@@ -170,12 +211,12 @@ var fields = function fields(_ref3) {
170
211
  name: 'task_autoCreateDatabase',
171
212
  label: 'Auto-Create Database',
172
213
  type: 'checkbox',
173
- visible: function visible(_ref12) {
174
- var values = _ref12.values;
214
+ visible: function visible(_ref15) {
215
+ var values = _ref15.values;
175
216
  return values.get('task_databaseAdapter_type') === 'postgres';
176
217
  },
177
- "transient": function transient(_ref13) {
178
- var values = _ref13.values;
218
+ "transient": function transient(_ref16) {
219
+ var values = _ref16.values;
179
220
  return values.get('task_databaseAdapter_type') !== 'postgres';
180
221
  },
181
222
  initialValue: slug ? (0, _immutable.get)(tenant, ['task', 'autoCreateDatabase'], true) : true
@@ -222,8 +263,8 @@ var fields = function fields(_ref3) {
222
263
  required: true,
223
264
  enabled: true,
224
265
  visible: true,
225
- constraint: function constraint(_ref14) {
226
- var values = _ref14.values;
266
+ constraint: function constraint(_ref17) {
267
+ var values = _ref17.values;
227
268
  return values.get('passwordConfirmation') === values.get('password');
228
269
  },
229
270
  constraintMessage: 'Password Confirmation does not match'
@@ -233,8 +274,8 @@ var fields = function fields(_ref3) {
233
274
  type: null,
234
275
  visible: false,
235
276
  required: false,
236
- serialize: function serialize(_ref15) {
237
- var values = _ref15.values;
277
+ serialize: function serialize(_ref18) {
278
+ var values = _ref18.values;
238
279
  return [{
239
280
  username: values.get('username'),
240
281
  password: values.get('password'),