@ -331,7 +331,7 @@ macro_rules! make_config { 
			
		
	
		
			
				
					             }  
			
		
	
		
			
				
					         }  
			
		
	
		
			
				
					     } } ;  
			
		
	
		
			
				
					     (   @ build   $value :expr ,   $config :expr ,   gen ,   $default_fn :expr   )   = >   { {  
			
		
	
		
			
				
					     (   @ build   $value :expr ,   $config :expr ,   generated  ,   $default_fn :expr   )   = >   { {  
			
		
	
		
			
				
					         let   f : & dyn   Fn ( & ConfigItems )   -> _   =   & $default_fn ;  
			
		
	
		
			
				
					         f ( $config )  
			
		
	
		
			
				
					     } } ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -352,7 +352,7 @@ macro_rules! make_config { 
			
		
	
		
			
				
					//  def:       Use a default value
  
			
		
	
		
			
				
					//  auto:      Value is auto generated based on other values
  
			
		
	
		
			
				
					//  option:    Value is optional
  
			
		
	
		
			
				
					//  gen:     Value is always autogenerated and it's original value ignored
  
			
		
	
		
			
				
					//  generated : Value is always autogenerated and it's original value ignored
  
			
		
	
		
			
				
					make_config !   {  
			
		
	
		
			
				
					     folders   {  
			
		
	
		
			
				
					         ///  Data folder |> Main data folder
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -515,7 +515,7 @@ make_config! { 
			
		
	
		
			
				
					         /// Set to the string "none" (without quotes), to disable any headers and just use the remote IP
  
			
		
	
		
			
				
					         ip_header :              String ,   true ,     def ,      "X-Real-IP" . to_string ( ) ;  
			
		
	
		
			
				
					         /// Internal IP header property, used to avoid recomputing each time
  
			
		
	
		
			
				
					         _ip_header_enabled :     bool ,     false ,    gen ,      | c |   & c . ip_header . trim ( ) . to_lowercase ( )   ! =   "none" ;  
			
		
	
		
			
				
					         _ip_header_enabled :     bool ,     false ,    generated  ,      | c |   & c . ip_header . trim ( ) . to_lowercase ( )   ! =   "none" ;  
			
		
	
		
			
				
					         /// Icon service |> The predefined icon services are: internal, bitwarden, duckduckgo, google.
  
			
		
	
		
			
				
					         /// To specify a custom icon service, set a URL template with exactly one instance of `{}`,
  
			
		
	
		
			
				
					         /// which is replaced with the domain. For example: `https://icon.example.com/domain/{}`.
  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -524,9 +524,9 @@ make_config! { 
			
		
	
		
			
				
					         /// corresponding icon at the external service.
  
			
		
	
		
			
				
					         icon_service :           String ,   false ,    def ,      "internal" . to_string ( ) ;  
			
		
	
		
			
				
					         /// _icon_service_url
  
			
		
	
		
			
				
					         _icon_service_url :      String ,   false ,    gen ,      | c |   generate_icon_service_url ( & c . icon_service ) ;  
			
		
	
		
			
				
					         _icon_service_url :      String ,   false ,    generated  ,      | c |   generate_icon_service_url ( & c . icon_service ) ;  
			
		
	
		
			
				
					         /// _icon_service_csp
  
			
		
	
		
			
				
					         _icon_service_csp :      String ,   false ,    gen ,      | c |   generate_icon_service_csp ( & c . icon_service ,   & c . _icon_service_url ) ;  
			
		
	
		
			
				
					         _icon_service_csp :      String ,   false ,    generated  ,      | c |   generate_icon_service_csp ( & c . icon_service ,   & c . _icon_service_url ) ;  
			
		
	
		
			
				
					         /// Icon redirect code |> The HTTP status code to use for redirects to an external icon service.
  
			
		
	
		
			
				
					         /// The supported codes are 301 (legacy permanent), 302 (legacy temporary), 307 (temporary), and 308 (permanent).
  
			
		
	
		
			
				
					         /// Temporary redirects are useful while testing different icon services, but once a service
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -624,7 +624,7 @@ make_config! { 
			
		
	
		
			
				
					         /// WARNING: This could cause issues with clients. Also exports will not work on Bitwarden servers!
  
			
		
	
		
			
				
					         increase_note_size_limit :      bool ,    true ,    def ,   false ;  
			
		
	
		
			
				
					         /// Generated max_note_size value to prevent if..else matching during every check
  
			
		
	
		
			
				
					         _max_note_size :                usize ,   false ,   gen ,   | c |   if   c . increase_note_size_limit   { 100_000 }   else   { 10_000 } ;  
			
		
	
		
			
				
					         _max_note_size :                usize ,   false ,   generated  ,   | c |   if   c . increase_note_size_limit   { 100_000 }   else   { 10_000 } ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					         /// Enforce Single Org with Reset Password Policy |> Enforce that the Single Org policy is enabled before setting the Reset Password policy
  
			
		
	
		
			
				
					         /// Bitwarden enforces this by default. In Vaultwarden we encouraged to use multiple organizations because groups were not available.
  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -695,7 +695,7 @@ make_config! { 
			
		
	
		
			
				
					         /// Embed images as email attachments.
  
			
		
	
		
			
				
					         smtp_embed_images :             bool ,   true ,   def ,   true ;  
			
		
	
		
			
				
					         /// _smtp_img_src
  
			
		
	
		
			
				
					         _smtp_img_src :                 String ,   false ,   gen ,   | c |   generate_smtp_img_src ( c . smtp_embed_images ,   & c . domain ) ;  
			
		
	
		
			
				
					         _smtp_img_src :                 String ,   false ,   generated  ,   | c |   generate_smtp_img_src ( c . smtp_embed_images ,   & c . domain ) ;  
			
		
	
		
			
				
					         /// Enable SMTP debugging (Know the risks!) |> DANGEROUS: Enabling this will output very detailed SMTP messages. This could contain sensitive information like passwords and usernames! Only enable this during troubleshooting!
  
			
		
	
		
			
				
					         smtp_debug :                    bool ,     false ,    def ,       false ;  
			
		
	
		
			
				
					         /// Accept Invalid Certs (Know the risks!) |> DANGEROUS: Allow invalid certificates. This option introduces significant vulnerabilities to man-in-the-middle attacks!