Skip to content

Add an element in the mediaFile block for Entity Lists in the OpenRosa manifest to specify a URL to get Entity information #668

@lognaturel

Description

@lognaturel

As the implementer of a data collection client, if there are Entities in the client's representation that are not included in the server response
I want to be able to request the status of those specific Entities
So that I can delete any Entities that no longer exist on the server

As the implementer of a data collection client
I want to be able to get information about specific Entities
So that I can make sure their state is up to date in my local representation

See Collect issue getodk/collect#6231 describing desired XML API.

Strawman proposal

Interesting cases to design for

Deleted and purged Entities

Currently purged Submissions are completely removed so it's possible to reuse an id. Entity purge is not yet implemented. We'll need to decide whether to keep historic UUIDs or allow reuse. Allowing reuse would only be an issue in very rare cases.

Let's not allow reuse of UUIDs when Entities are soft-deleted to avoid the case where Entities with the same UUID are in trash and active.

Rejected submissions that never resulted in Entity creation

Two concepts have emerged so far: send the instanceID to the integrity API to detect this case or keep a notion of "phantom" entities that wanted to be created but never were.

Todo

  • Implement strawman
  • Use in Collect
  • Consider max URL size and whether query parameters are appropriate
  • Consider naming of deleted element so the name matches what it represents (true: server knows of the Entity and it shouldn't be on that client; false: server either doesn't know of the Entity or it knows it and it should stay on the client)
  • Post on forum and iterate on element names + response structure

CC @seadowg

Metadata

Metadata

Assignees

Labels

backendRequires a change to the API serverbehavior verifiedBehavior has been manually verified

Type

No type

Projects

Status

✅ done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions