I have a list that has the key “name”, a leaf of type string.
From confd_cli I create a list entry with name “my_name_full” which is shown correctly. Then I create an entry in the same list with the name “my_name”. The commit is successful but this entry doesn’t appear in the database. Instead I see that the entry for “my_name_full” has been updated with the values from “my_name”… This doesn’t happen if I create the short name first.
What version of ConfD are you using? Do you have a value set for /confdConfig/cli/allowAbbrevKeys in confd.conf? Try setting it explicitly to “false” (without the quotes). I believe this had a default of “true” in some versions, and there may also have been a bug such that the “true” setting was applied in cases where it should not have been - e.g. as in your case, it was impossible to create a list entry with a key that was an initial substring of an existing key, since it would always be taken as an abbreviation of the existing key (note that the CLI syntax is the same for “create a new list entry” and “set a leaf in an existing list entry”, i.e. there is no “create” command).
Personally I think the use of abbreviations in commands (in any interface) is “evil” - commands that once worked fine may become invalid, or even get a different meaning, when new parameter names - or values - are added. The ConfD CLI allows support for abbreviations to be turned off (there are a number of other cli/allowAbbrevXXX settings in confd.conf), and I think it’s a good idea to do that - but many users expect support for abbreviations, and I believe it is present in the “models” for the ConfD CLI. “Just hit <TAB> after each abbreviation” and you’ll be fine without them.:-)