IcingaDB different Config syntax requirements than Icinga2 daemon

We just migrated from icinga-ido-mysql over to IcingaDB and ran into a similar issue to this thread IcingaDB Service crashes while syncing to MariaDB .

Oct 21 03:30:40 x icingadb[18379]: config-sync: Aborted initial state sync after 371.521163ms
Oct 21 03:30:40 x icingadb[18379]: config-sync: Aborted config sync after 371.527271ms
Oct 21 03:30:40 x icingadb[18379]: json: cannot unmarshal number into Go value of type bool
                                      can't unmarshal JSON into *bool
                                      github.com/icinga/icingadb/internal.UnmarshalJSON
                                              github.com/icinga/icingadb/internal/internal.go:47
                                      github.com/icinga/icingadb/pkg/types.(*Bool).UnmarshalJSON
                                              github.com/icinga/icingadb/pkg/types/bool.go:52
                                      encoding/json.(*decodeState).literalStore
                                              encoding/json/decode.go:871
                                      encoding/json.(*decodeState).value
                                              encoding/json/decode.go:387
                                      encoding/json.(*decodeState).object
                                              encoding/json/decode.go:774
                                      encoding/json.(*decodeState).value
                                              encoding/json/decode.go:373
                                      encoding/json.(*decodeState).unmarshal
                                              encoding/json/decode.go:180
                                      encoding/json.Unmarshal
                                              encoding/json/decode.go:107
                                      github.com/icinga/icingadb/internal.UnmarshalJSON
                                              github.com/icinga/icingadb/internal/internal.go:47
                                      github.com/icinga/icingadb/pkg/icingaredis.CreateEntities.func1.1
                                              github.com/icinga/icingadb/pkg/icingaredis/utils.go:56
                                      golang.org/x/sync/errgroup.(*Group).Go.func1
                                              golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c/errgr>
                                      runtime.goexit
                                              runtime/asm_amd64.s:1571
                                      can't unmarshal JSON into *v1.CheckcommandArgument
                                      github.com/icinga/icingadb/internal.UnmarshalJSON
                                              github.com/icinga/icingadb/internal/internal.go:47
                                      github.com/icinga/icingadb/pkg/icingaredis.CreateEntities.func1.1
                                              github.com/icinga/icingadb/pkg/icingaredis/utils.go:56
                                      golang.org/x/sync/errgroup.(*Group).Go.func1
                                              golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c/errgr>
                                      runtime.goexit
                                              runtime/asm_amd64.s:1571
Oct 21 03:30:40 x systemd[1]: icingadb.service: Main process exited, code=exited, status=1/FAILURE
Oct 21 03:30:40 x systemd[1]: icingadb.service: Failed with result 'exit-code'.
Oct 21 03:30:40 x systemd[1]: icingadb.service: Consumed 1.356s CPU time.

The issue stemmed from using 1 instead of true in one of our commands.d Definitions for the skip_key and required argument settings. The icinga2 daemon config check seems to be fine with using a numeric value instead of the written boolean word, while icingadb crashes under these circumstances. Is it intended for the icinga2 config check to allow for a broader syntax compared to icingadb?

Give as much information as you can, e.g.

  • Icinga DB Web version (1.0.1):
  • Icinga Web 2 version (2.11.1):
  • Web browser:
  • Icinga 2 version (2.13.5-1)):
  • Icinga DB version (v1.0.0):
  • PHP version used (7.4.30):
  • Server operating system and version: Debian 11 (Bullseye)

That’s a bug. I created an issue over at GitHub: