Add normalize configuration contract
This commit is contained in:
@@ -42,6 +42,9 @@ func validatePipeline(cfg *PipelineConfig) error {
|
||||
if err := validateAudita(cfg.Audita); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := validateNormalize(cfg.Normalize); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := validateTrim(cfg.Trim); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -58,6 +61,19 @@ func validatePipeline(cfg *PipelineConfig) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateNormalize(cfg *NormalizeConfig) error {
|
||||
if cfg == nil {
|
||||
return nil
|
||||
}
|
||||
if strings.TrimSpace(cfg.OutputPath) == "" {
|
||||
return fmt.Errorf("pipeline.normalize.output_path must be non-empty")
|
||||
}
|
||||
if err := validateSeriatimOutputSchema("pipeline.normalize.output_schema", cfg.OutputSchema); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateTrim(cfg *TrimConfig) error {
|
||||
if cfg == nil {
|
||||
return nil
|
||||
@@ -127,11 +143,8 @@ func validateSeriatim(cfg SeriatimConfig) error {
|
||||
if err := validateDuration("pipeline.seriatim.timeout", cfg.Timeout); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
switch cfg.OutputSchema {
|
||||
case "seriatim-minimal", "seriatim-intermediate", "seriatim-full":
|
||||
default:
|
||||
return fmt.Errorf("pipeline.seriatim.output_schema must be one of: seriatim-minimal, seriatim-intermediate, seriatim-full")
|
||||
if err := validateSeriatimOutputSchema("pipeline.seriatim.output_schema", cfg.OutputSchema); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if cfg.CoalesceGap == nil {
|
||||
@@ -158,6 +171,15 @@ func validateSeriatim(cfg SeriatimConfig) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func validateSeriatimOutputSchema(field, value string) error {
|
||||
switch strings.TrimSpace(value) {
|
||||
case "seriatim-minimal", "seriatim-intermediate", "seriatim-full":
|
||||
return nil
|
||||
default:
|
||||
return fmt.Errorf("%s must be one of: seriatim-minimal, seriatim-intermediate, seriatim-full", field)
|
||||
}
|
||||
}
|
||||
|
||||
func validateAudita(cfg AuditaConfig) error {
|
||||
if strings.TrimSpace(cfg.Binary) == "" {
|
||||
return fmt.Errorf("pipeline.audita.binary is required")
|
||||
|
||||
Reference in New Issue
Block a user