Files
40a9de7f26 feat(watchsync): add plugin-backed providers (#475)
* feat(watchsync): add plugin-backed providers

* fix(watchsync): address plugin review findings

* fix(watchsync): harden plugin provider failures

* feat(watchsync): complete plugin provider contract

* fix(watchsync): address provider review feedback

* fix(watchsync): keep device state host-private

* fix(watchsync): build reconciliation index concurrently

* fix(watchsync): preserve empty device state updates

* chore(deps): use released watch-sync SDK

---------

Co-authored-by: Quick <31828688+Quick104@users.noreply.github.com>
2026-08-06 10:30:49 -04:00

35 lines
1.2 KiB
Go

package pluginhost
import (
"time"
"github.com/hashicorp/go-plugin"
sdkruntime "github.com/Silo-Server/silo-plugin-sdk/pkg/pluginsdk/runtime"
)
const (
DefaultHealthCheckInterval = 30 * time.Second
DefaultHealthFailureLimit = 3
DefaultMetadataTimeout = 30 * time.Second
DefaultMarkerProviderTimeout = 30 * time.Second
DefaultAnalyzerTimeout = 5 * time.Minute
DefaultControlTimeout = 10 * time.Second
// DefaultScanSourceTimeout covers a single PollChanges call. Most scan
// sources return quickly, but filesystem-backed sources may need a longer
// bounded window for an initial baseline; cooperative plugins should still
// checkpoint progress and return before this deadline.
DefaultScanSourceTimeout = 5 * time.Minute
DefaultEventTimeout = 10 * time.Second
DefaultAuthTimeout = 10 * time.Second
DefaultRouteTimeout = 10 * time.Second
DefaultWatchSyncTimeout = 60 * time.Second
// DefaultRequestRouterTimeout bounds a single request_router RPC.
// Fulfillment hits remote arr instances, so allow generous headroom.
DefaultRequestRouterTimeout = 60 * time.Second
)
func HandshakeConfig() plugin.HandshakeConfig {
return sdkruntime.HandshakeConfig()
}