- Add GpnStatus type ('supported' | 'unsupported' | 'unknown') to Device domain
- Persist gpnStatus in DeviceRecord and all 3 persist paths
(cwmp_controller, main_state_machine, device_action_executor)
- Capture Fault 9000/9001 in getParameterNames → mark device as 'unsupported'
- Fix GPN NextLevel flag: false (non-recursive shallow scan)
- Add static TR-181 catalog (7 727 params, sourced from BBF cwmp-data-models)
- Add parameter_writability service with resolveWritability():
supported → live data; unsupported → catalog → default R/W;
unknown → catalog → null (genuinely unknown)
- Add scripts/generate-tr181-catalog.mjs to regenerate catalog from BBF XML
- Add design doc: docs/design-parameter-writability.md
- Add unit tests: 26 tests covering normalizePath and all gpnStatus branches
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
17 lines
499 B
TypeScript
17 lines
499 B
TypeScript
import { DeviceId } from './device_id.js'
|
|
import { PropertySnapshot, ParameterSnapshot } from './device_parameter.js'
|
|
import { DeviceComplianceInfo } from '../configuration/compliance.js'
|
|
import { GpnStatus } from './device.js'
|
|
|
|
export interface DeviceRecord {
|
|
identifier?: string
|
|
deviceId: DeviceId
|
|
properties: PropertySnapshot[]
|
|
parameters: ParameterSnapshot[]
|
|
gpnStatus?: GpnStatus
|
|
compliance?: DeviceComplianceInfo
|
|
provisioningCode?: string
|
|
updatedAt?: Date
|
|
createdAt?: Date
|
|
}
|