You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 20, 2026. It is now read-only.
Using the "human-readable" version foo of the prefixed ID s~foo (or e~foo) is allowed in a URI but not in a request payload (and will never be returned in a response since foo gets mapped to s~foo in the response).
This inconsistency can catch user's off-guard and requires custom behavior in to_protobuf()-type methods which essentially always ignore the dataset_id on a PartitionId message and only use the dataset ID in the URI.
which has Key.partition_id.dataset_id == 'foo' (either directly in a key
or in an Entity) in the payload results in
app s~foo cannot access app foo's data
Sending a filtered or ancestor query which does not have RunQueryRequest.partition_id.dataset_id set in the payload but does have
the dataset ID set in either the ancestor key
The query app is 'foo' but ancestor.key app is 'foo'.
Using the "human-readable" version
fooof the prefixed IDs~foo(ore~foo) is allowed in a URI but not in a request payload (and will never be returned in a response sincefoogets mapped tos~fooin the response).This inconsistency can catch user's off-guard and requires custom behavior in
to_protobuf()-type methods which essentially always ignore thedataset_idon aPartitionIdmessage and only use the dataset ID in the URI./cc @silvolu @tseaver
Some examples
which has
RunQueryRequest.partition_id.dataset_id == 'foo'in the payload results inwhich has
Key.partition_id.dataset_id == 'foo'(either directly in a keyor in an
Entity) in the payload results inRunQueryRequest.partition_id.dataset_idset in the payload but does havethe dataset ID set in either the ancestor key
or in the
__key__filter