Rails: Enforce that all fields in passed from agent in reconciliation request are non-null
MR: Pending ## Description Enforce that all fields in passed from agent in reconciliation request are non-null. Note that this will need to be done in coordination with https://gitlab.com/gitlab-org/gitlab/-/issues/409133+ - see details in [this comment](https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/merge_requests/1152#note_1606635747). This issue has been created as a followup to [this comment thread](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126127#c1d19314fb856b2b819375902380fd4e06e917e5): See technical details below. ## Acceptance Criteria - [ ] Coordinate changes, versioning, backward compatibility and rollout with changes on the agent side. See https://gitlab.com/gitlab-org/gitlab/-/issues/409133+ and [this comment](https://gitlab.com/gitlab-org/cluster-integration/gitlab-agent/-/merge_requests/1152#note_1606635747) for details. - [ ] Ensure that `namespace` is always non-null when parsing agent info, and raise an exception if it is not. - [ ] Enforce non-null field values for all other fields, to eliminate nulls from the reconcilation data structures. If we are ever passing an enumerable, i.e. array or hash type, it should be represented as an empty array/hash, not as a nil. - [ ] If there are any atomic (i.e. non-enumerable) type where the absence of a value can only be reflected as nil, discuss with team whether this can be changed somehow to make it a required field. ## Technical Requirements - See original thread: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126127#note_1496202805 - See analysis and discussion of impact, and proposal to break this up into separate issues in this thread: https://gitlab.com/groups/gitlab-org/-/epics/12064#note_1654724956
epic