refactor(agent): stop embedding GeoIP MMDB in agent binary

Agent ships without City/Country MMDB in the binary; Docker images COPY
databases into data_dir, bare installs seed via download on first start.
Server keeps Country-only embed for optional MaxMind control-plane use.
Also harden fetch script nonempty check and reject non-file MMDB paths.
This commit is contained in:
ryan
2026-08-06 16:24:57 +08:00
parent fb08002e99
commit 3328d3d121
17 changed files with 226 additions and 180 deletions
+7 -10
View File
@@ -1,16 +1,13 @@
// Package geoipdata embeds the default MaxMind GeoLite2 databases.
// Package geoipdata holds shared GeoIP database filename constants.
//
// MaxMind MMDB files are NOT embedded into the agent binary. Docker images
// COPY them onto the default data paths; bare binary installs seed via download
// on first start (see geoipupdate).
package geoipdata
import "embed"
// FS holds the embedded GeoLite2 Country and City databases.
//
//go:embed GeoLite2-Country.mmdb GeoLite2-City.mmdb
var FS embed.FS
const (
// DefaultMMDBName is the filename of the embedded MaxMind Country database.
// DefaultMMDBName is the default Country database filename.
DefaultMMDBName = "GeoLite2-Country.mmdb"
// DefaultCityMMDBName is the filename of the embedded MaxMind City database.
// DefaultCityMMDBName is the default City database filename.
DefaultCityMMDBName = "GeoLite2-City.mmdb"
)