mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-25 08:09:07 +02:00
* [agent-network] Shared proto, OpenAPI schema, and generated types * [agent-network] Management: store, manager, synthesizer, policy engine, provider catalog, HTTP/gRPC API Adds the account-scoped agent-network module: provider/policy/budget CRUD and store, the reverse-proxy service synthesizer, policy selection + limit enforcement, the provider catalog (incl. Vertex AI and AWS Bedrock entries), and the management HTTP + proxy gRPC surfaces. * [management] Fix agent-network proxy-peer fan-out on affected-peer recompute The affected-peers resolver loaded only persisted reverse-proxy services, but agent-network services are synthesized on demand and never persisted. As a result the embedded proxy peer was never folded into the affected set when a client's group changed, so the proxy received no network-map update for a newly authorised client and rejected its handshake until a full resync (restart). loadProxyServices now merges the synthesized agent-network services (injected via a registration hook to avoid an import cycle), so proxy peers learn newly authorised clients immediately. * [proxy] Reverse-proxy middleware framework, chain, and request plumbing The per-target middleware chain (slots, dispatcher, mutation gate, metadata merger), body capture, access-log terminal sink, and the proxy wiring that builds + runs chains for synthesized agent-network services. * [proxy] LLM parsers, pricing, and builtin middlewares (OpenAI, Anthropic, Vertex AI, AWS Bedrock) Request/response parsers and SSE/event-stream metering, the embedded pricing table, and the builtin middleware set: request parser, router, policy limit-check/record, cost meter, guardrail, identity inject, response parser. Includes the path-routed providers — Google Vertex AI (keyfile:: service-account OAuth minting) and AWS Bedrock (bearer auth, invoke/converse/streaming, optional /bedrock prefix) — plus the Models allowlist and unmeterable-publisher deny. * [proxy] IPv6 in-place apply and TCP accept-loop hardening on netstack listeners * [agent-network] End-to-end test suite, module docs, and deployment preset * [agent-network] Fix codespell typos and exclude false positives - labelgen word pool: vermillion -> vermilion, racoon -> raccoon. - codespell ignore list: add flate (Go compress/flate package), recordin (a test-local identifier), and unparseable (a valid alternative spelling used consistently across identifiers + a metadata-value constant). * [management] Set LastSeen on injected proxy peer in realstack test (MySQL strict-mode) The injected embedded proxy peer had a PeerStatus with a zero LastSeen, which serializes to '0000-00-00' and is rejected by MySQL in strict mode (SQLite tolerates it). Set LastSeen to a valid time so SaveAccount succeeds on both engines. * [agent-network] Remove e2e shell-script suite from this branch The end-to-end shell scripts under scripts/e2e/ are maintained in a separate testing suite and are not part of this change set. * [agent-network] Polish module docs: remove internal review scaffolding, fix links, verify diagrams Strip PR-review framing, commit references, absolute paths, and stale internal references from the agent-network module docs; fix broken relative links; verify all diagrams against the current architecture. Remove the internal AI-reviewer prompt file. * [management] Refine session expiration handling to support 3-state encoding for SSO deadlines * [agent-network] Relocate agentnetwork package to internals/modules Move management/server/agentnetwork (and its catalog/, labelgen/, types/ subpackages) to management/internals/modules/agentnetwork, alongside the reverse-proxy module, and rewrite all importers. Pure relocation: package names, the synthesizer + affectedpeers registration hook, and store access (shared store.Store) are unchanged, so no import cycle is introduced (affectedpeers still depends only on the agentnetwork/types leaf). * [agent-network] Co-locate HTTP handlers in the module (RegisterEndpoints) Move the agent-network HTTP handlers from server/http/handlers/agentnetwork into the module at internals/modules/agentnetwork/handlers (package handlers) and rename the entrypoint AddEndpoints -> RegisterEndpoints, matching the reverse-proxy module convention. Wiring in http/handler.go updated accordingly.
137 lines
9.8 KiB
Go
137 lines
9.8 KiB
Go
// Package labelgen produces DNS-safe Agent Network subdomain labels.
|
||
//
|
||
// The wordlist below is a curated subset drawn from public-domain
|
||
// nature / common-noun pools (e.g. EFF's diceware lists). Every entry
|
||
// is lowercase ASCII, 4–12 chars, no hyphens, no digits, and was
|
||
// hand-checked to avoid offensive, brand, or region-specific terms.
|
||
package labelgen
|
||
|
||
// words is the pool PickUnique selects from. The slice is intentionally
|
||
// not sorted — random picks distribute across the list naturally.
|
||
var words = []string{
|
||
"acorn", "adobe", "agate", "alder", "almond", "alpine", "amber", "amethyst",
|
||
"anchor", "antler", "apple", "apricot", "arcade", "arctic", "arrow", "ashen",
|
||
"aspen", "atlas", "atom", "aurora", "autumn", "azure",
|
||
"badger", "bamboo", "banana", "banjo", "barley", "barn", "basalt", "basil",
|
||
"basin", "bayou", "beach", "beacon", "beaver", "beech", "beetle", "berry",
|
||
"birch", "bison", "blossom", "blue", "bobcat", "bonsai", "boulder", "branch",
|
||
"brass", "breeze", "bridge", "bright", "brook", "broom", "brown", "buffalo",
|
||
"bumble", "burrow", "butter", "button",
|
||
"cabin", "cactus", "calm", "camel", "campfire", "canary", "candle", "canoe",
|
||
"canyon", "cardinal", "carrot", "cascade", "castle", "cedar", "celery", "cello",
|
||
"cement", "cherry", "chestnut", "chime", "cinnamon", "cinder", "citron", "clay",
|
||
"clear", "cliff", "clock", "cloud", "clover", "coast", "cobalt", "cobble",
|
||
"cocoa", "coffee", "comet", "compass", "copper", "coral", "corner", "cosmos",
|
||
"cotton", "cougar", "country", "coyote", "cove", "crane", "crater", "creek",
|
||
"crescent", "crimson", "crocus", "crystal", "cypress",
|
||
"daffodil", "dahlia", "daisy", "dawn", "deer", "delta", "denim", "desert",
|
||
"dewdrop", "diamond", "dolphin", "doodle", "dove", "dragon", "drift", "drop",
|
||
"dune", "dusk", "dusty",
|
||
"eagle", "earth", "echo", "elder", "elkhorn", "ember", "emerald", "emperor",
|
||
"evergreen", "evening",
|
||
"falcon", "fawn", "feather", "fern", "fiddle", "field", "fiesta", "finch",
|
||
"firepit", "firefly", "fjord", "flame", "flax", "fleece", "flint", "floral",
|
||
"flower", "flute", "foal", "foggy", "forest", "fountain", "foxglove", "fresh",
|
||
"frost", "fuchsia", "fudge",
|
||
"gable", "galaxy", "garden", "garnet", "gazelle", "geode", "geyser", "ginger",
|
||
"glacier", "glade", "glass", "glow", "gold", "goose", "gorge", "gourd",
|
||
"granite", "grape", "grass", "gravel", "grayling", "greenery", "grizzly", "grove",
|
||
"gull", "gumdrop", "gust",
|
||
"hammock", "harbor", "harvest", "hawk", "hazel", "heather", "hedge", "heron",
|
||
"hibiscus", "hickory", "hideaway", "highland", "hill", "hive", "hollow", "honey",
|
||
"hopper", "horizon", "hummingbird", "husky",
|
||
"iceberg", "indigo", "iris", "island", "ivory", "ivybush",
|
||
"jade", "jasmine", "jasper", "jaybird", "jelly", "jewel", "jonquil", "journey",
|
||
"juniper", "jupiter", "jute",
|
||
"kale", "kangaroo", "kayak", "kelp", "kestrel", "kettle", "khaki", "kindling",
|
||
"kingfisher", "kiwi", "knapweed", "koala",
|
||
"lagoon", "lake", "lantern", "larch", "lark", "laurel", "lava", "lavender",
|
||
"leaf", "lemon", "lichen", "light", "lilac", "lily", "lime", "limestone",
|
||
"linden", "linen", "lion", "lobster", "locust", "loon", "lotus", "lumber",
|
||
"lunar", "lupine", "lynx",
|
||
"madrone", "magenta", "magnolia", "mahogany", "mallow", "mango", "manor", "maple",
|
||
"marble", "marigold", "marina", "marlin", "marsh", "mauve", "meadow", "melody",
|
||
"melon", "merlin", "metal", "midnight", "milk", "millet", "mineral", "mint",
|
||
"mirror", "mist", "mitten", "molasses", "moon", "moose", "morning", "moss",
|
||
"mountain", "mulberry", "muscat", "mustard",
|
||
"narwhal", "navy", "nectar", "needle", "nest", "nettle", "newt", "nightfall",
|
||
"noon", "nook", "north", "nova", "nutmeg",
|
||
"oaken", "oasis", "oatmeal", "ocean", "ochre", "octagon", "olive", "onyx",
|
||
"opal", "orange", "orbit", "orchard", "orchid", "oregano", "orion", "osprey",
|
||
"otter", "outpost", "owlet", "oyster",
|
||
"painter", "palace", "palm", "pansy", "panther", "papaya", "paprika", "parsley",
|
||
"partridge", "passage", "pastel", "patio", "peach", "peacock", "pear", "pearl",
|
||
"pebble", "pecan", "pelican", "penguin", "peony", "pepper", "perch", "peridot",
|
||
"pewter", "phoenix", "pier", "pillar", "pine", "pineapple", "pinto", "piper",
|
||
"pistachio", "plain", "planet", "plateau", "platinum", "plum", "plume", "polar",
|
||
"pollen", "pond", "poplar", "poppy", "porcelain", "portal", "portrait", "potato",
|
||
"prairie", "primrose", "prism", "puffin", "pumpkin",
|
||
"quail", "quartz", "quaver", "quill", "quince", "quinoa",
|
||
"rabbit", "raccoon", "radish", "rain", "rainbow", "raindrop", "rapids", "raspberry",
|
||
"raven", "ravine", "redwood", "reed", "reef", "ridge", "river", "robin",
|
||
"rocket", "rubyred", "rose", "rosemary", "rosewood", "ruffle", "rugby", "russet",
|
||
"rustic", "ryefield",
|
||
"saffron", "sage", "salmon", "sand", "sandstone", "sapphire", "savanna", "scarlet",
|
||
"scout", "seal", "season", "seaweed", "sequoia", "shadow", "shamrock", "shell",
|
||
"sherbet", "shore", "silver", "siskin", "skybloom", "skyline", "sleet", "smoke",
|
||
"snail", "snapdragon", "snow", "snowflake", "snowy", "solar", "song", "sonic",
|
||
"sorrel", "south", "sparkle", "sparrow", "spice", "spider", "spinach", "spire",
|
||
"spring", "sprout", "spruce", "squirrel", "starfish", "starlight", "stoat", "stone",
|
||
"stork", "storm", "stream", "studio", "summer", "sunbeam", "sundew", "sunny",
|
||
"sunrise", "sunset", "swallow", "swan", "sweet", "sycamore",
|
||
"tangelo", "tangerine", "tansy", "taupe", "teak", "teal", "thicket", "thistle",
|
||
"thrush", "thunder", "tide", "tiger", "tinder", "topaz", "torch", "tortoise",
|
||
"tower", "trail", "tranquil", "tundra", "tulip", "turquoise", "turtle", "twig",
|
||
"twilight",
|
||
"umber", "uplands",
|
||
"valley", "vanilla", "velvet", "venus", "verdant", "verdigris", "vermilion", "violet",
|
||
"vista", "vivid", "volcano", "vortex",
|
||
"walnut", "warbler", "watercress", "waterfall", "wave", "waxwing", "weasel", "westwind",
|
||
"whale", "whisker", "whisper", "wicker", "wildwood", "willow", "winter", "wisp",
|
||
"wisteria", "wolf", "wombat", "woodland", "woolly", "wren", "wreath",
|
||
"yarrow", "yellow", "yewtree", "yodel",
|
||
"zebra", "zenith", "zephyr", "zinnia",
|
||
"alabaster", "alfalfa", "almanac", "anise", "antelope", "arbor", "arena", "armadillo",
|
||
"avocet", "azalea", "balsam", "bayou", "beacon", "blizzard", "bluebell", "bluebird",
|
||
"bluejay", "bobolink", "borage", "boreal", "buckeye", "buckthorn", "buttercup",
|
||
"cabana", "calico", "canopy", "caraway", "cardamom", "cattail", "celadon", "centaur",
|
||
"chambray", "chamois", "champlain", "chestnuts", "chickadee", "chinook", "chipmunk", "cinnabar",
|
||
"cirrus", "citrine", "clematis", "copperhead",
|
||
"crocodile", "currant", "cuttlebone", "daffy", "dapple", "delphinium", "dervish", "diamondback",
|
||
"dogwood", "dolphins", "dragonfly", "driftwood", "dusk", "dustpan", "ebony", "edelweiss",
|
||
"emperor", "endive", "estuary", "everglade", "fairway", "feldspar", "fennel", "fieldstone",
|
||
"firebrand", "firefly", "fireweed", "firework", "flagstone", "fossil", "frostbite", "galleon",
|
||
"gardener", "geranium", "gingko", "ginseng", "goldfish", "goldfinch", "goldenrod", "graphite",
|
||
"greenfinch", "guppy", "haiku", "halibut", "hammerhead", "harbinger", "harvest", "hatchling",
|
||
"havana", "hawthorn", "hazelnut", "heartwood", "henna", "heron", "highrise", "homestead",
|
||
"honeycomb", "honeydew", "horseshoe", "hyacinth", "iceland", "icicle", "indigobird", "ironwood",
|
||
"jacaranda", "jamboree", "javelina", "jellyfish", "junebug", "kaleido", "kayaker", "kerchief",
|
||
"keystone", "kingdom", "labrador", "lacewing", "ladybug", "lakeside", "lamplight", "leopard",
|
||
"lighthouse", "lilypad", "lullaby", "magnet", "mahonia", "mandolin", "manzanita", "maraschino",
|
||
"mariner", "marsupial", "mastodon", "matterhorn", "mayflower", "mayfly", "meadowlark", "merlot",
|
||
"meteor", "midshipman", "millpond", "mimosa", "minnow", "mockingbird", "molten", "monarch",
|
||
"monsoon", "moondust", "moonlight", "moorland", "morning", "mossland", "mountain", "mulch",
|
||
"narcissus", "nautilus", "nettlebush", "northstar", "nuthatch", "obsidian", "okra", "olivine",
|
||
"opalescent", "orchidea", "orchard", "ornament", "outrigger", "oxalis", "paddler", "paintbrush",
|
||
"papyrus", "paradise", "pasture", "patchwork", "pathway", "peridot", "periwinkle", "petalbloom",
|
||
"petrel", "petunia", "phlox", "pikeperch", "pinecone", "pioneer", "pipevine", "platypus",
|
||
"pomelo", "pondweed", "porpoise", "powder", "promise", "puddle", "pumice", "puzzle",
|
||
"quetzal", "quicksilver", "raccoon", "ragwort", "rainforest", "ramble", "rapid", "rascal",
|
||
"raspberry", "redbud", "redfern", "redpoll", "reedling", "ringtail", "riverbed", "riverbird",
|
||
"riverstone", "rockcress", "roebuck", "rosebay", "rosehip", "rosemary", "rowan", "rumble",
|
||
"runaway", "rustler", "sagebrush", "sailcloth", "salamander", "salsify", "samphire", "sandbar",
|
||
"sanddollar", "sandpiper", "santolina", "sapodilla", "sassafras", "scallion", "schooner", "seafoam",
|
||
"seafrost", "seagrass", "seahorse", "seaport", "seashell", "seaspray", "shamble", "shimmer",
|
||
"shoreline", "silkmoth", "silverfox", "skylark", "snapdragon", "snowberry", "snowdrop", "snowfall",
|
||
"snowmelt", "softwood", "songbird", "sorghum", "southwind", "speedwell", "spinnaker", "spruce",
|
||
"starlight", "starling", "stormcloud", "summit", "sundance", "sundew", "sundial", "sunflower",
|
||
"surface", "swallowtail", "sweetcorn", "sycamore", "tabletop", "tamarack", "tamarind", "tangerine",
|
||
"tarragon", "telescope", "thicket", "thrasher", "thunder", "thyme", "tideline", "timberland",
|
||
"tinderbox", "topiary", "torchwood", "totem", "tradewind", "treasure", "tremolo", "trinket",
|
||
"trumpetvine", "tugboat", "tundra", "turnstone", "underbrush", "vagabond", "valerian", "vanilla",
|
||
"velveteen", "vermilion", "vinca", "vineyard", "violet", "voyager", "wagonwheel", "walnutwood",
|
||
"watermark", "watershed", "waterway", "wavefront", "westerly", "whaleback", "whetstone", "wicker",
|
||
"wildbloom", "wildflower", "wilderness", "windsong", "windward", "winterberry", "woodbine", "woodfern",
|
||
"woodland", "woodthrush", "woolgrass", "yellowfin", "zenithal", "zucchini",
|
||
}
|