mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
23 lines
1.3 KiB
Go
23 lines
1.3 KiB
Go
// Package proxyserver implements the persistent proxy flow: running PMG as a
|
|||
|
|
// long-lived MITM proxy server that many package-manager processes route through
|
||
|
|
// via environment variables, for non-interactive CI/CD use.
|
||
|
|
//
|
||
|
|
// It is a flow, not a proxy implementation. The actual MITM proxy lives in the
|
||
|
|
// `proxy` package; proxyserver wires that proxy together with the analyzer,
|
||
|
|
// interceptors, audit pipeline, and cloud sync, and manages the daemon lifecycle
|
||
|
|
// (start/stop/env/status) coordinated through an on-disk state file.
|
||
|
|
//
|
||
|
|
// # Boundary with internal/flows
|
||
|
|
//
|
||
|
|
// internal/flows owns the per-command flow, where PMG wraps a single package
|
||
|
|
// manager invocation (spawns it as a child, injects env, prompts on confirmation,
|
||
|
|
// reports at exit). proxyserver owns the persistent flow, where the proxy
|
||
|
|
// outlives any single invocation and is driven by separate `pmg proxy` commands
|
||
|
|
// across processes. The two share lower-level building blocks (CA setup in
|
||
|
|
// flows.SetupCACertificate, proxy env vars in packagemanager.EnvVarForProxy,
|
||
|
|
// cloud sync in audit.DrainToCloud) but differ in lifecycle and process model,
|
||
|
|
// so they are kept as separate flows rather than one. Some assembly (analyzer +
|
||
|
|
// cache wiring) is intentionally duplicated for the MVP rather than prematurely
|
||
|
|
// unified.
|
||
|
|
package proxyserver
|