Files
nadir-agent/internal/modules/system/module.go
T
urania d4364a6cb7
build-and-release / release (push) Successful in 2m39s
feat(system): enhance system architecture
2026-06-25 14:44:47 +02:00

45 lines
767 B
Go

package system
import (
"context"
"time"
"nadir/internal/rbac"
"github.com/danielgtaylor/huma/v2"
)
const ModuleID = "system"
type Module struct {
sampler *Sampler
}
func New() *Module {
return &Module{
sampler: NewSampler("/proc/stat", 1*time.Second),
}
}
func (m *Module) ID() string { return ModuleID }
func (m *Module) Permissions() []rbac.Permission {
return []rbac.Permission{rbac.Read, rbac.Write, rbac.Root}
}
func (m *Module) Register(api huma.API) {
m.sampler.Start(context.Background())
registerInfo(api, m.sampler)
registerHostname(api)
registerTimedate(api)
registerLocale(api)
registerPower(api)
}
func op(permission string) map[string]any {
return map[string]any{
"module": ModuleID,
"permission": permission,
}
}