//go:build ignore // +build ignore package main import ( "context" "fmt" "os" "sort" "strings" "github.com/fleetdm/fleet/v4/server/config" "github.com/fleetdm/fleet/v4/server/fleet" "github.com/fleetdm/fleet/v4/server/service/osquery_utils" ) func main() { detailQueriesMap := osquery_utils.GetDetailQueries(context.Background(), config.FleetConfig{ Vulnerabilities: config.VulnerabilitiesConfig{ DisableWinOSVulnerabilities: false, }, App: config.AppConfig{ EnableScheduledQueryStats: true, }, }, &fleet.AppConfig{MDM: fleet.MDM{ EnabledAndConfigured: true, WindowsEnabledAndConfigured: true, }}, &fleet.Features{ EnableSoftwareInventory: true, EnableHostUsers: true, }, osquery_utils.Integrations{ ConditionalAccessMicrosoft: true, }, nil) var b strings.Builder b.WriteString(` # Understanding host vitals Following is a summary of the detail queries hardcoded in Fleet used to populate the device details: `) type queryInfo struct { name string detailQuery osquery_utils.DetailQuery } detailQueries := make([]queryInfo, 0, len(detailQueriesMap)) for name, detailQuery := range detailQueriesMap { detailQueries = append(detailQueries, queryInfo{ name: name, detailQuery: detailQuery, }) } sort.Slice(detailQueries, func(i, j int) bool { return detailQueries[i].name < detailQueries[j].name }) for _, q := range detailQueries { fmt.Fprintf(&b, "## %s\n\n", q.name) if q.detailQuery.Description != "" { fmt.Fprintf(&b, "- Description: %s\n\n", q.detailQuery.Description) } platforms := strings.Join(q.detailQuery.Platforms, ", ") if len(q.detailQuery.Platforms) == 0 { platforms = "all" } fmt.Fprintf(&b, "- Platforms: %s\n\n", platforms) if q.detailQuery.Discovery != "" { fmt.Fprintf(&b, "- Discovery query:\n```sql\n%s\n```\n\n", strings.TrimSpace(q.detailQuery.Discovery)) } if q.detailQuery.Query != "" { fmt.Fprintf(&b, "- Query:\n```sql\n%s\n```\n\n", strings.TrimSpace(q.detailQuery.Query)) } else if q.detailQuery.QueryFunc != nil { fmt.Fprintf(&b, "- Query:\n```\n\n```\n\n") } } // Footnotes fmt.Fprint(&b, `

`) fmt.Fprintf(&b, "[^1]: Software override queries write over the default queries. They are used to populate the software inventory.") b.WriteString(` `) if err := os.WriteFile(os.Args[1], []byte(b.String()), 0600); err != nil { panic(err) } }