@@ -460,48 +460,26 @@ const ExtraOptions = ({
460
460
) ,
461
461
children : (
462
462
< >
463
- < StyledInputContainer >
464
- < div className = "control-label" > { t ( 'Secure extra' ) } </ div >
463
+ < StyledInputContainer
464
+ css = { ! isFileUploadSupportedByEngine ? no_margin_bottom : { } }
465
+ >
465
466
< div className = "input-container" >
466
- < StyledJsonEditor
467
- name = "masked_encrypted_extra"
468
- value = { db ?. masked_encrypted_extra || '' }
469
- placeholder = { t ( 'Secure extra' ) }
470
- onChange = { ( json : string ) =>
471
- onEditorChange ( { json, name : 'masked_encrypted_extra' } )
472
- }
473
- width = "100%"
474
- height = "160px"
475
- annotations = { secureExtraAnnotations }
476
- />
477
- </ div >
478
- < div className = "helper" >
479
- < div >
480
- { t (
481
- 'JSON string containing additional connection configuration. ' +
482
- 'This is used to provide connection information for systems ' +
483
- 'like Hive, Presto and BigQuery which do not conform to the ' +
484
- 'username:password syntax normally used by SQLAlchemy.' ,
467
+ < Checkbox
468
+ id = "per_user_caching"
469
+ name = "per_user_caching"
470
+ indeterminate = { false }
471
+ checked = { ! ! extraJson ?. per_user_caching }
472
+ onChange = { onExtraInputChange }
473
+ >
474
+ { t ( 'Per user caching' ) }
475
+ </ Checkbox >
476
+ < InfoTooltip
477
+ tooltip = { t (
478
+ 'Cache data separately for each user based on their data access roles and permissions. ' +
479
+ 'When disabled, a single cache will be used for all users.' ,
485
480
) }
486
- </ div >
487
- </ div >
488
- </ StyledInputContainer >
489
- < StyledInputContainer >
490
- < div className = "control-label" > { t ( 'Root certificate' ) } </ div >
491
- < div className = "input-container" >
492
- < Input . TextArea
493
- name = "server_cert"
494
- value = { db ?. server_cert || '' }
495
- placeholder = { t ( 'Enter CA_BUNDLE' ) }
496
- onChange = { onTextChange }
497
481
/>
498
482
</ div >
499
- < div className = "helper" >
500
- { t (
501
- 'Optional CA_BUNDLE contents to validate HTTPS requests. Only ' +
502
- 'available on certain database engines.' ,
503
- ) }
504
- </ div >
505
483
</ StyledInputContainer >
506
484
< StyledInputContainer
507
485
css = { ! isFileUploadSupportedByEngine ? no_margin_bottom : { } }
@@ -569,6 +547,49 @@ const ExtraOptions = ({
569
547
</ div >
570
548
</ StyledInputContainer >
571
549
) }
550
+ < StyledInputContainer >
551
+ < div className = "control-label" > { t ( 'Secure extra' ) } </ div >
552
+ < div className = "input-container" >
553
+ < StyledJsonEditor
554
+ name = "masked_encrypted_extra"
555
+ value = { db ?. masked_encrypted_extra || '' }
556
+ placeholder = { t ( 'Secure extra' ) }
557
+ onChange = { ( json : string ) =>
558
+ onEditorChange ( { json, name : 'masked_encrypted_extra' } )
559
+ }
560
+ width = "100%"
561
+ height = "160px"
562
+ annotations = { secureExtraAnnotations }
563
+ />
564
+ </ div >
565
+ < div className = "helper" >
566
+ < div >
567
+ { t (
568
+ 'JSON string containing additional connection configuration. ' +
569
+ 'This is used to provide connection information for systems ' +
570
+ 'like Hive, Presto and BigQuery which do not conform to the ' +
571
+ 'username:password syntax normally used by SQLAlchemy.' ,
572
+ ) }
573
+ </ div >
574
+ </ div >
575
+ </ StyledInputContainer >
576
+ < StyledInputContainer >
577
+ < div className = "control-label" > { t ( 'Root certificate' ) } </ div >
578
+ < div className = "input-container" >
579
+ < Input . TextArea
580
+ name = "server_cert"
581
+ value = { db ?. server_cert || '' }
582
+ placeholder = { t ( 'Enter CA_BUNDLE' ) }
583
+ onChange = { onTextChange }
584
+ />
585
+ </ div >
586
+ < div className = "helper" >
587
+ { t (
588
+ 'Optional CA_BUNDLE contents to validate HTTPS requests. Only ' +
589
+ 'available on certain database engines.' ,
590
+ ) }
591
+ </ div >
592
+ </ StyledInputContainer >
572
593
</ >
573
594
) ,
574
595
} ,
0 commit comments