// Copyright (C) 2023 Opsmate, Inc. // // This Source Code Form is subject to the terms of the Mozilla // Public License, v. 2.0. If a copy of the MPL was not distributed // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. // // This software is distributed WITHOUT A WARRANTY OF ANY KIND. // See the Mozilla Public License for details. package monitor import ( "context" "time" "software.sslmate.com/src/certspotter" ) // IdentifierSink receives the DNS identifiers parsed from every monitored // certificate. This is a CTCLOUD PATCH to upstream certspotter; see // CTCLOUD_PATCH.md. When non-nil it is invoked on the monitoring hot path // instead of the watchlist/notification machinery. type IdentifierSink interface { HandleIdentifiers(ctx context.Context, identifiers *certspotter.Identifiers) } type Config struct { LogListSource string State StateProvider StartAtEnd bool WatchList WatchList Verbose bool HealthCheckInterval time.Duration // IdentifierSink is a CTCLOUD PATCH (see CTCLOUD_PATCH.md). When set, // parsed identifiers are handed directly to it in-process and the normal // watchlist/chain/notification path is skipped. IdentifierSink IdentifierSink }