Feature #14706

Updated by Tom Clegg almost 3 years ago

The container request record lists the most recent container attempted to fulfill the request. This means when a cancelled failed container is retried, the earlier cancelled containers previous failed attempts are not visible to the user: the container UUID is no longer mentioned in the container request record, which means that even user (even if the client remembers user goes into the UUID, the user no longer has permission logs table to retrieve find the old container record.

(See #14870 for
uuid, the related problem that permission system prevents the _logs_ user from previous attempts are not preserved in reading the container request's log collection.) container). This obscures the fact that retries occurred, and hinders debugging failed containers.

Proposal:

Need a column that has uuids of all containers. Can use array column, eg https://www.postgresql.org/docs/9.6/arrays.html, or JSONB column.

Current data model has "container_uuid" as a singular value. It would be a backwards compatibility problem if that changed to be an array. API should report past attempts in a separate field, like "past_container_uuids".

Unclear if it would be better in the underlying database to have a single array column (where first/last item is always the most recent attempt), or retain container_uuid column and add a past_container_uuids column.

Need to be able to join array column to grant read permission to container records. Section 8.15.5 of postgres docs suggest this is something like:

container.uuid = ANY (container_request.past_container_uuids)

Back