Interface DataSourceValidator

All Known Implementing Classes:
FileDataSourceValidator

public interface DataSourceValidator
Validates data source + dataset settings at CRUD time. No blocking I/O. validateDataset(java.util.Map<java.lang.String, org.elasticsearch.xpack.esql.datasources.metadata.DataSourceSetting>, java.lang.String, java.util.Map<java.lang.String, java.lang.Object>) sees plaintext secrets — do not log, persist, or leak them.
  • Method Details

    • type

      String type()
      Type identifier, e.g. "s3", "gcs", "azure".
    • validateDatasource

      Map<String,DataSourceSetting> validateDatasource(Map<String,Object> datasourceSettings)
      Validates settings and wraps them in DataSourceSetting so secret classification travels into cluster state. Throws ValidationException if invalid.
    • validateDatasource

      default Map<String,DataSourceSetting> validateDatasource(Map<String,Object> datasourceSettings, Set<String> existingSecretKeys)
      Merge-aware variant used when a PUT replaces an existing data source: existingSecretKeys names secret fields already stored for it, so a request that omits one still satisfies credential-completeness checks. The returned map, like validateDatasource(Map), contains only the fields present in datasourceSettings; carrying the omitted secret's stored value forward is the caller's job. The default ignores existingSecretKeys and delegates to the single-arg overload.
    • validateDataset

      Map<String,Object> validateDataset(Map<String,DataSourceSetting> datasourceSettings, String resource, Map<String,Object> datasetSettings)
      Validates dataset settings. Returns plain values — datasets carry no secrets. Parent passed for cross-checks. Throws ValidationException if invalid.