hunk.code_window:     @Bean
       @ConditionalOnExpression(value = "!'${segment.writeKey:}'.isEmpty()")
       public Analytics analyticsRunner() {
           final LogProcessor logProcessor = new LogProcessor();
  
hunk.labels: keep replace keep keep
hunk.after_edit:     @ConditionalOnExpression(value = "!'${segment.writeKey:}'.isEmpty() || !'${segment.ce.key:}'.isEmpty()")
  
hunk.file_path: app/server/appsmith-server/src/main/java/com/appsmith/server/configurations/SegmentConfig.java
hunk.type: replace
file: # This property allows us to override beans during testing. This is useful when we want to set different configurations
  # and different parameters during test as compared to production. If this property is disabled, some tests will fail.
  spring.main.allow-bean-definition-overriding=true
  
  # This property allows the server to run behind a proxy server and still resolve all the urls correctly
  server.forward-headers-strategy=NATIVE
  
  spring.data.mongodb.auto-index-creation=false
  
  # Ensures that the size of the request object that we handle is controlled. By default it's 212KB.
  spring.codec.max-in-memory-size=100MB
  appsmith.codec.max-in-memory-size=${APPSMITH_CODEC_SIZE:100}
  
  # MongoDB Application Database
  spring.data.mongodb.uri = ${APPSMITH_MONGODB_URI}
  
  # Log properties
  logging.level.root=info
  logging.level.com.appsmith=debug
  logging.pattern.console=%X - %m%n
  
  #Spring security
  spring.security.oauth2.client.registration.google.client-id=${APPSMITH_OAUTH2_GOOGLE_CLIENT_ID:missing_value_sentinel}
  spring.security.oauth2.client.registration.google.client-secret=${APPSMITH_OAUTH2_GOOGLE_CLIENT_SECRET:}
  spring.security.oauth2.client.provider.google.userNameAttribute=email
  spring.security.oauth2.client.registration.github.client-id=${APPSMITH_OAUTH2_GITHUB_CLIENT_ID:missing_value_sentinel}
  spring.security.oauth2.client.registration.github.client-secret=${APPSMITH_OAUTH2_GITHUB_CLIENT_SECRET:}
  spring.security.oauth2.client.provider.github.userNameAttribute=login
  
  # Accounts from specific domains are allowed to login
  # DEPRECATED, in favor of signup.allowed-domains
  oauth2.allowed-domains=${APPSMITH_OAUTH2_ALLOWED_DOMAINS:}
  
  # Segment
  segment.writeKey=${APPSMITH_SEGMENT_KEY:}
  # Is this instance hosted on Appsmith cloud?
  is.cloud-hosted = ${APPSMITH_CLOUD_HOSTED:false}
  disable.telemetry = ${APPSMITH_DISABLE_TELEMETRY:true}
  segment.ce.key = ${APPSMITH_SEGMENT_CE_KEY:}
  
  # Sentry
  sentry.dsn=${APPSMITH_SENTRY_DSN:}
  sentry.send-default-pii=true
  sentry.debug=off
  sentry.environment=${APPSMITH_SENTRY_ENVIRONMENT:}
  
  # RapidAPI
  rapidapi.key.name = X-RapidAPI-Key
  rapidapi.key.value = ${APPSMITH_RAPID_API_KEY_VALUE:}
  
  # Redis Properties
  spring.redis.url=${APPSMITH_REDIS_URL}
  
  # Mail Properties
  # Email defaults to false, because, when true and the other SMTP properties are not set, Spring will try to use a
  #   default localhost:25 SMTP server and throw an error. If false, this error won't happen because there's no attempt
  #   to send an email.
  mail.enabled=${APPSMITH_MAIL_ENABLED:false}
  mail.from=${APPSMITH_MAIL_FROM:appsmith@localhost}
  mail.support=${APPSMITH_MAIL_SUPPORT:support@appsmith.com}
  reply.to=${APPSMITH_REPLY_TO:appsmith@localhost}
  spring.mail.host=${APPSMITH_MAIL_HOST:}
  spring.mail.port=${APPSMITH_MAIL_PORT:}
  spring.mail.username=${APPSMITH_MAIL_USERNAME:}
  spring.mail.password=${APPSMITH_MAIL_PASSWORD:}
  spring.mail.properties.mail.smtp.auth=${APPSMITH_MAIL_SMTP_AUTH:}
  spring.mail.properties.mail.smtp.starttls.enable=${APPSMITH_MAIL_SMTP_TLS_ENABLED:}
  admin.emails = ${APPSMITH_ADMIN_EMAILS:}
  
  # Configuring individual emails
  emails.welcome.enabled = ${APPSMITH_EMAILS_WELCOME_ENABLED:true}
  
  # Appsmith Cloud Services
  appsmith.cloud_services.base_url = ${APPSMITH_CLOUD_SERVICES_BASE_URL:https://cs.appsmith.com}
  appsmith.cloud_services.username = ${APPSMITH_CLOUD_SERVICES_USERNAME:}
  appsmith.cloud_services.password = ${APPSMITH_CLOUD_SERVICES_PASSWORD:}
  github_repo = ${APPSMITH_GITHUB_REPO:}
  
  # MANDATORY!! No default properties are being provided for encryption password and salt for security.
  # The server would not come up without these values provided through the environment variables.
  encrypt.password=${APPSMITH_ENCRYPTION_PASSWORD:}
  encrypt.salt=${APPSMITH_ENCRYPTION_SALT:}
  
  # The following configurations are to help support prometheus scraping for monitoring
  management.endpoints.web.exposure.include=prometheus
  management.metrics.web.server.request.autotime.enabled=true
  management.metrics.export.prometheus.descriptions=true
  management.metrics.web.server.request.ignore-trailing-slash=true
  management.metrics.web.server.request.autotime.percentiles=0.5, 0.9, 0.95, 0.99
  management.metrics.web.server.request.autotime.percentiles-histogram=true
  management.metrics.distribution.sla.[http.server.requests]=1s
  
  # Support disabling signup with an environment variable
  signup.disabled = ${APPSMITH_SIGNUP_DISABLED:false}
  signup.allowed-domains=${APPSMITH_SIGNUP_ALLOWED_DOMAINS:}
  
  # Google recaptcha config
  google.recaptcha.key.site = ${APPSMITH_RECAPTCHA_SITE_KEY:}
  google.recaptcha.key.secret= ${APPSMITH_RECAPTCHA_SECRET_KEY:}
  