Despite being validated at https://github.com/Kinto/kinto/blob/master/kinto/core/resource/schema.py#L234, making a request such as /v1/buckets/default/collections/abcd/records?_since= passes an empty string ("") to the backend (see e.g. #1305 and #1502). This appears to be due to https://github.com/Kinto/kinto/blob/master/kinto/core/resource/schema.py#L215-L222, which tries to parse any leftover fields as "native values". Unfortunately, this applies to all values, and although _since has already been dropped by this point, it gets re-added by this loop. This loop should probably only apply to values that are not already described by the schema.
Another question is why _since="" is turned into a colander.drop and not an exception?
Despite being validated at https://github.com/Kinto/kinto/blob/master/kinto/core/resource/schema.py#L234, making a request such as
/v1/buckets/default/collections/abcd/records?_since=
passes an empty string (""
) to the backend (see e.g. #1305 and #1502). This appears to be due to https://github.com/Kinto/kinto/blob/master/kinto/core/resource/schema.py#L215-L222, which tries to parse any leftover fields as "native values". Unfortunately, this applies to all values, and although_since
has already beendropped
by this point, it gets re-added by this loop. This loop should probably only apply to values that are not already described by the schema.Another question is why
_since=""
is turned into acolander.drop
and not an exception?/cc @gabisurita