Skill: Add a Dynamic Config Item
Feature ID:
TR-F014
When to use
When adding a RADIUS runtime parameter that should be editable on the system config page.
Pre-research
view internal/app/config_schemas.json # config schema (edit here first)
view internal/app/config_manager.go # read / reload logic
view internal/adminapi/settings.go # config endpoints
grep_search "GetSettingsStringValue\|GetSettingsInt64Value" --include internal/**
Implementation steps
- Schema: add the config item to
config_schemas.jsonwithdefault / type / range / i18n key. - Read: read via
app.GApp().GetSettings*Value("<group>", "<Key>"); do not hardcode. - Default initialization: confirm
checkSettings()/ init logic writes the default value. - Frontend: the system config page
web/src/pages/SystemConfigPage.tsxrenders from the schema automatically; customize only if a special control is needed.
Conventions
- A new config item must enter the schema before any code reads it.
- Type, range, default, and i18n key are all required.
Acceptance
- The config can be queried / edited / reloaded in the backend
- The new config read path has a test
-
go test ./internal/app/...passes - PR references
TR-F014