63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
package config
|
|
|
|
import "gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline"
|
|
|
|
const redactedSecret = "[REDACTED]"
|
|
|
|
func (c Config) Redacted() Config {
|
|
redacted := cloneConfig(c)
|
|
for id, profile := range redacted.LLMProfiles {
|
|
if profile.APIKey != "" {
|
|
profile.APIKey = redactedSecret
|
|
}
|
|
redacted.LLMProfiles[id] = profile
|
|
}
|
|
return redacted
|
|
}
|
|
|
|
func (c Config) RedactedDiagnosticsPayload() any {
|
|
return c.Redacted()
|
|
}
|
|
|
|
func (e EffectiveConfig) RedactedDiagnosticsPayload() any {
|
|
return EffectiveConfig{
|
|
Config: e.Config.Redacted(),
|
|
PipelineID: e.PipelineID,
|
|
Only: append([]string(nil), e.Only...),
|
|
ReferenceOverrides: append([]pipeline.ReferenceBinding(nil), e.ReferenceOverrides...),
|
|
ReferenceUnbinds: append([]pipeline.ReferenceUnbind(nil), e.ReferenceUnbinds...),
|
|
ResolvedPipeline: cloneResolvedPipeline(e.ResolvedPipeline),
|
|
}
|
|
}
|
|
|
|
func cloneResolvedPipeline(in pipeline.ResolvedPipeline) pipeline.ResolvedPipeline {
|
|
out := in
|
|
out.Input = cloneModuleBinding(in.Input)
|
|
out.Chunk = cloneModuleBinding(in.Chunk)
|
|
out.ChunkReferences = pipeline.CloneReferenceTarget(in.ChunkReferences)
|
|
out.Output = cloneModuleBinding(in.Output)
|
|
if len(in.ArtifactLanes) > 0 {
|
|
out.ArtifactLanes = make([]pipeline.ResolvedArtifactLane, len(in.ArtifactLanes))
|
|
for i, lane := range in.ArtifactLanes {
|
|
out.ArtifactLanes[i] = cloneResolvedArtifactLane(lane)
|
|
}
|
|
}
|
|
return out
|
|
}
|
|
|
|
func cloneResolvedArtifactLane(in pipeline.ResolvedArtifactLane) pipeline.ResolvedArtifactLane {
|
|
out := in
|
|
out.Extract = cloneModuleBinding(in.Extract)
|
|
out.Merge = cloneModuleBinding(in.Merge)
|
|
out.Normalize = cloneModuleBinding(in.Normalize)
|
|
out.ExtractReferences = pipeline.CloneReferenceTarget(in.ExtractReferences)
|
|
out.NormalizeReferences = pipeline.CloneReferenceTarget(in.NormalizeReferences)
|
|
if len(in.Validators) > 0 {
|
|
out.Validators = make([]pipeline.ModuleBinding, len(in.Validators))
|
|
for i, binding := range in.Validators {
|
|
out.Validators[i] = cloneModuleBinding(binding)
|
|
}
|
|
}
|
|
return out
|
|
}
|