Handling password value for GPV in GenieAVS vs standard

Hello Zaid,
I can see that the GenieACS is returning empty value for GPV RPC prameters where the password is held. This is OK with the standard: https://www.broadband-forum.org/pdfs/tr-069-1-6-1.pdf
"All writeable Parameters must also be readable
although those that contain confidential user information, e.g., passwords, may return
empty values when read (this is specified in the corresponding data model definition). "

Unfortunately the password empty values for RPC GPV affects the password parameter value in the ACS database by overwriting the value by empty field being received from the GPV.

The value before GPV:

the GPV Responce:
<soap:Envelope xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:soap-enc=“http://schemas.xmlsoap.org/soap/encoding/” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:cwmp=“urn:dslforum-org:cwmp-1-0”>soap:Header<cwmp:ID soap:mustUnderstand=“1”>18fde52837e0000</cwmp:ID></soap:Header>soap:Bodycwmp:GetParameterValuesResponseDevice.ManagementServer.ConnectionRequestPassword</cwmp:GetParameterValuesResponse></soap:Body></soap:Envelope>

result/affted GeniaACS value:

Bug/Unexpected effect:
As consequence the unit connected to GenieACS can not effectively use authorized service (for example XMPP).
It seems like it also affects somehow the example pass generator in provision being delivered during Genie installation, I believe you should recognize this one:

const username = declare("Device.DeviceInfo.SerialNumber", {value: 1}).value[0]
const password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);

Please consider to fix overwriting passwords with empty value for the GPV RPC ASAP since it is braking the authorization related services apart.

The easy solution is to not refresh the entire Device.ManagementServer parameter tree. I’ve never once in the 2-3+ years we’ve been using v1.2, nor in the 7-8 years I’ve been using GenieACS in general had a need to refresh the entire Device.ManagementServer tree.

Additionally, if you use the default inform preset and provision script this should never be an issue as the default inform script ensures values are set for [InternetGatewayDevice|Device].ManagementServer.ConnectionRequestUsername and [InternetGatewayDevice|Device].ManagementServer.ConnectionRequestPassword.

So even if you did refresh the Device.ManagementServer.ConnectionRequestPassword value, in one inform cycle, the value will be restored. Given that the Math object in GenieACS is seeded with the DeviceID, you should always get the same password value.

@akcoder it sounds like I have other needs, expectations and experience.
One of many examples is the Data Model refresh in case of client firmware upgrade when new functionalities are expected = new parameters in the Data Model. Then I would like to relay on GPN and GPV RPC for the Data Model sub-tree not specific parameters that are unknown that moment.
Usage of the predefined provisions like inform and default sound like kind of remedy/ workaround to me.
In the inform predefined provision you are writing the CR username and password periodically so it sounds more like workaround than the solution.
I’ve other experience with other ACSes than Genie. They do not write the passwords value when GPV RPC gives empty result.
Again I see filed for improvement here.

Let me ask the question in the other way.
For BOOTSRAP where the Device.ManagementServer.ConnectionRequestPassword value is set in the provision

const cruser = declare("Device.DeviceInfo.SerialNumber", {value: 1}).value[0]
const crpass = declare("Device.DeviceInfo.SerialNumber", {value: 1}).value[0]
//
declare("Device.ManagementServer.ConnectionRequestUsername", {path: now, value: now}, {value: cruser});
declare("Device.ManagementServer.ConnectionRequestPassword", {path: now, value: now}, {value: crpass});
[...]

I see this order in the pcap:
GPN


then GPV

next

ans SPV

and this is it.
The question:
Is GenieACS seving the SPV ManagementServer.ConnectionRequestPassword value to a ACS Data Base?
looking at what result I got on Genie UI : Icorrect Credentials - I doubt.

@Zaid could you please answer my question?
I see that the Incorrect Credentials error vanish after next Inform
Is it the way it should be?