/* * Copyright 2021 Collate * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.openmetadata.service; import com.fasterxml.jackson.annotation.JsonProperty; import io.dropwizard.Configuration; import io.dropwizard.db.DataSourceFactory; import io.dropwizard.health.conf.HealthConfiguration; import io.federecio.dropwizard.swagger.SwaggerBundleConfiguration; import javax.validation.Valid; import javax.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; import org.openmetadata.schema.api.configuration.LoginConfiguration; import org.openmetadata.schema.api.configuration.airflow.AirflowConfiguration; import org.openmetadata.schema.api.configuration.events.EventHandlerConfiguration; import org.openmetadata.schema.api.fernet.FernetConfiguration; import org.openmetadata.schema.api.security.AuthenticationConfiguration; import org.openmetadata.schema.api.security.AuthorizerConfiguration; import org.openmetadata.schema.api.security.jwt.JWTTokenConfiguration; import org.openmetadata.schema.api.slackChat.SlackChatConfiguration; import org.openmetadata.schema.email.SmtpSettings; import org.openmetadata.schema.service.configuration.elasticsearch.ElasticSearchConfiguration; import org.openmetadata.service.migration.MigrationConfiguration; import org.openmetadata.service.monitoring.EventMonitorConfiguration; import org.openmetadata.service.secrets.SecretsManagerConfiguration; @Getter @Setter public class OpenMetadataApplicationConfig extends Configuration { @JsonProperty("database") @NotNull @Valid private DataSourceFactory dataSourceFactory; @JsonProperty("swagger") private SwaggerBundleConfiguration swaggerBundleConfig; @JsonProperty("authorizerConfiguration") private AuthorizerConfiguration authorizerConfiguration; @JsonProperty("authenticationConfiguration") private AuthenticationConfiguration authenticationConfiguration; @JsonProperty("jwtTokenConfiguration") private JWTTokenConfiguration jwtTokenConfiguration; @JsonProperty("elasticsearch") private ElasticSearchConfiguration elasticSearchConfiguration; @JsonProperty("eventHandlerConfiguration") private EventHandlerConfiguration eventHandlerConfiguration; @NotNull @Valid @JsonProperty("airflowConfiguration") private AirflowConfiguration airflowConfiguration; @JsonProperty("migrationConfiguration") @NotNull private MigrationConfiguration migrationConfiguration; @JsonProperty("fernetConfiguration") private FernetConfiguration fernetConfiguration; @JsonProperty("health") @NotNull @Valid private HealthConfiguration healthConfiguration = new HealthConfiguration(); @JsonProperty("sandboxModeEnabled") private boolean sandboxModeEnabled; @JsonProperty("slackChat") private SlackChatConfiguration slackChatConfiguration = new SlackChatConfiguration(); @JsonProperty("secretsManagerConfiguration") private SecretsManagerConfiguration secretsManagerConfiguration; @JsonProperty("eventMonitoringConfiguration") private EventMonitorConfiguration eventMonitorConfiguration; @JsonProperty("clusterName") private String clusterName; @JsonProperty("email") private SmtpSettings smtpSettings; @JsonProperty("login") private LoginConfiguration loginSettings; @Override public String toString() { return "catalogConfig{" + ", dataSourceFactory=" + dataSourceFactory + ", swaggerBundleConfig=" + swaggerBundleConfig + ", authorizerConfiguration=" + authorizerConfiguration + '}'; } }