mirror of
https://github.com/hanzoai/o11y.git
synced 2026-10-15 12:58:33 +00:00
Re-sync the entire SigNoz-derived Go tree to a clean fork of latest SigNoz main (upstream 3e6339019), eliminating the version-skew that broke `go build ./...` (mixed-era packages, ~14 imported-but-absent packages, partial signoz->o11y / clickhouse->datastore rebrands, self-import cycle, duplicate package decls). - pkg/ + cmd/ wholesale replaced with latest SigNoz; imports rewritten github.com/SigNoz/signoz/ -> github.com/hanzoai/o11y/. - Adopt SigNoz's CURRENT structure (resourcefilter->telemetryresourcefilter, integrationtypes->cloudintegrationtypes, roletypes/grammar/times folded in upstream); old paths dropped. - Fork deps repathed to hanzoai + bumped: signoz-otel-collector v0.144.6, clickhouse-go-mock v0.14.1, govaluate v0.1.0; expr-lang/expr => hanzoai/expr v1.17.8 (replace). go.mod reconciled from latest SigNoz; go.sum re-tidied. - ee/ + cmd/enterprise stripped — o11y stays MIT-only; community edition imports no ee packages. - Preserved o11y additions: module path github.com/hanzoai/o11y, mount.go (cloud.Register/zip mount adapter, HIP-0106), NOTICE + LICENSE (SigNoz §4c attribution retained; upstream pkg files are headerless per SigNoz convention). - Reverted o11y cosmetic renames (o11y*/datastore*) and experimental originals (authz/iamauthz, billing, zapreceiver, zapmetricreceiver) to SigNoz canonical to kill the skew; snapshots retained in git history for re-layering. go build ./... = exit 0. go vet clean except benign "unreachable code" in generated ANTLR parser files (inherited from upstream).
102 lines
2.6 KiB
Go
102 lines
2.6 KiB
Go
package cmd
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"reflect"
|
|
"strings"
|
|
|
|
"github.com/hanzoai/o11y/pkg/types/authtypes"
|
|
"github.com/hanzoai/o11y/pkg/web"
|
|
"github.com/spf13/cobra"
|
|
"github.com/swaggest/jsonschema-go"
|
|
)
|
|
|
|
const webSettingsSchemaPath = "frontend/src/schemas/generated/webSettings.schema.json"
|
|
|
|
const transactionGroupsSchemaPath = "frontend/src/schemas/generated/transactionGroups.schema.json"
|
|
|
|
func registerGenerateConfig(parentCmd *cobra.Command) {
|
|
configCmd := &cobra.Command{
|
|
Use: "config",
|
|
Short: "Generate JSON Schema for config",
|
|
}
|
|
|
|
configCmd.AddCommand(&cobra.Command{
|
|
Use: "web-settings",
|
|
Short: "Generate JSON Schema for web settings",
|
|
RunE: func(currCmd *cobra.Command, args []string) error {
|
|
return generateWebSettings()
|
|
},
|
|
})
|
|
|
|
configCmd.AddCommand(&cobra.Command{
|
|
Use: "transaction-groups",
|
|
Short: "Generate JSON Schema for transaction groups",
|
|
RunE: func(currCmd *cobra.Command, args []string) error {
|
|
return generateTransactionGroups()
|
|
},
|
|
})
|
|
|
|
parentCmd.AddCommand(configCmd)
|
|
}
|
|
|
|
func generateWebSettings() error {
|
|
falseVal := false
|
|
noAdditional := jsonschema.SchemaOrBool{TypeBoolean: &falseVal}
|
|
|
|
reflector := jsonschema.Reflector{}
|
|
reflector.DefaultOptions = append(reflector.DefaultOptions,
|
|
jsonschema.InterceptSchema(func(params jsonschema.InterceptSchemaParams) (bool, error) {
|
|
if params.Value.Kind() == reflect.Struct {
|
|
params.Schema.AdditionalProperties = &noAdditional
|
|
}
|
|
return false, nil
|
|
}),
|
|
jsonschema.InterceptDefName(func(t reflect.Type, defaultDefName string) string {
|
|
return strings.TrimPrefix(defaultDefName, "Web")
|
|
}),
|
|
)
|
|
|
|
schema, err := reflector.Reflect(web.Settings{})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
schema.WithTitle("WebSettings")
|
|
data, err := json.MarshalIndent(schema, "", " ")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return os.WriteFile(webSettingsSchemaPath, append(data, '\n'), 0o600)
|
|
}
|
|
|
|
func generateTransactionGroups() error {
|
|
falseVal := false
|
|
noAdditional := jsonschema.SchemaOrBool{TypeBoolean: &falseVal}
|
|
|
|
reflector := jsonschema.Reflector{}
|
|
reflector.DefaultOptions = append(reflector.DefaultOptions,
|
|
jsonschema.InterceptSchema(func(params jsonschema.InterceptSchemaParams) (bool, error) {
|
|
if params.Value.Kind() == reflect.Struct {
|
|
params.Schema.AdditionalProperties = &noAdditional
|
|
}
|
|
return false, nil
|
|
}),
|
|
)
|
|
|
|
schema, err := reflector.Reflect(authtypes.TransactionGroups{})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
schema.WithTitle("TransactionGroups")
|
|
data, err := json.MarshalIndent(schema, "", " ")
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return os.WriteFile(transactionGroupsSchemaPath, append(data, '\n'), 0o600)
|
|
}
|