Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
10000 Updating the domainMetadata to allow introduction of 'key' field to allow search link to be included. Along with force soft delete endpoint and additional usage tab info by AndyKilmory · Pull Request #4498 · guardian/grid · GitHub
Nothing Special   »   [go: up one dir, main page]

Skip to content

Conversation

AndyKilmory
Copy link
Collaborator
@AndyKilmory AndyKilmory commented Jul 21, 2025

Updating the domainMetadata to allow introduction of 'key' field to allow search link to be included - so searchable links can be present in domainMetadata.

Addition of force soft delete endpoint for use with Capture, so images can be soft deleted regardless of usage information etc.

Addition of information on usages tab to indicate linked images are present so that users reviewing image usage information know to look at other images if requried.

What does this change?

  1. Adds in a new media-api endpoint - DELETE:/images/<>/force-delete - that forces the soft-delete of an image regardless of Usages, Crops etc. Normally attempts to soft-delete an image with Crops will be denied. In the case of Capture ingest we have the need to soft-delete images regardless of Usage history etc. to handle the possibility of logical image re-scans with higher quality physical images. This new endpoint is required to support this.

  2. Add in the ability to complete a key/value pair search of the image metadata based on the domain metadata (currently the domain metadata is retained only on a textual basis. This functionality allows the user to add in a key definition which will permit the search of the ElasticSearch index

  3. Add messaging to the Usages tab to indicate that the current image replaces or is replaced by and equivalent logical image - so the user knows to look at other images when reviewing usage history. Uses a defined list of metadata fields to identify where the information about the equivalent image information is held.

How should a reviewer test this change?

  1. Ensure that an image that would not be soft-deleted via the usual delete endpoint can be deleted via the 'force-delete' endpoint
Screenshot 2025-07-23 at 16 50 14
  1. Add in appropriate 'Supersedes'/'Replaces' and 'Superseded By'/'Replaced by' data and ensure the search operation operate correctly.
Screenshot 2025-07-23 at 16 48 10
  1. Check the messaging regarding linked images on the Usages tab is correct.
Screenshot 2025-07-23 at 16 49 25

Tested? Documented?

  • locally by committer
  • locally by Guardian reviewer
  • on the Guardian's TEST environment
  • relevant documentation added or amended (if needed)

@AndyKilmory AndyKilmory changed the title Updating the domainMetadata to allow introduction of 'key' field to allow search link to be included. Updating the domainMetadata to allow introduction of 'key' field to allow search link to be included. Along with force soft delete endpoint and additional usage tab info Jul 28, 2025
@AndyKilmory AndyKilmory marked this pull request as ready for review July 28, 2025 11:15
@AndyKilmory AndyKilmory requested a review from a team as a code owner July 28, 2025 11:15
@paperboyo
Copy link
Contributor

Hi. We haven’t yet looked at the code, but just some high-level thoughts. In short: both concepts seems very useful and have been discussed over the years.

The deletion of images with crops and/or usages: we are in the need of being able to “hide” images from search and further use more forcefully than just by adding Restrictions with Note. Some users are actively destroying all metadata manually, because they are concerned that an image may be used despite messaging. But whether soft deleting such images is the way forward – I don’t know (what about hard-delete then? the reaper?). At the Guardian images with crops and usages MUST not be removed from the system without replacing their usage as usage for us is a live link to the reader-facing platforms. Worth thinking about a solution, though…

Versions: over the years we came up with several use cases for versions (and derivatives). A colour-corrected (or just cropped) version being the most common. Tom started a light-touch approach in #3998. Because the concept is sensible, we think it better be part of Grid proper and not specific to Domain Metadata which is organisation-specific. Let’s hope a common approach can be found, which will be useful for everyone and will set us on the way to full schema for versions and derivatives.

(Only slightly) worth noting that C2PA’s ingredients concept is based on well established xmpMM schema, which we can search in Grid already and find images created eg. from the same Photoshop file manually: ?query="fileMetadata.xmp.xmpMM:OriginalDocumentID":"xmp.did:[ID]". How closely we should follow, whether it’s worth skimming to see if it contains any interesting points or whether it makes sense to integrate it into Grid’s future versions/derivatives – I don’t know.

We also think both issues constitute sizeable problems in themselves and might benefit from being tackled as separate PRs. Maybe it would be helpful to discuss them in a smaller forum too?

I know this isn’t very helpful, but wanted to signal (or – influence if slightly) direction of travel on these two points.

@AndyKilmory
Copy link
Collaborator Author

Hi Mateusz, thanks for your feedback - all very helpful. We're aware that this proposal is a compromise designed to address a very specific need. We are also keen to look in more detail at versioning of images and interconnecting images as part of a much larger piece of work - but we need to address the needs of the Archives team in the short term. I think it would be good if we could convene a group to discuss the broader issues of versions, hidden images etc.

In terms of the use of soft delete of the 'old' images - we need to retain the usage information on the old image so that we have a proper history of what version of the image was used by whom and when - whilst at the same time understanding the concept of a 'newer' version. What is happening is the Archives team are re-scanning the original hard copy to produce a better electronic image and in the Capture/Photosales system they are able to replace the old jpeg with the newer one on the same underlying system record - but when they send this new image to BBC Images it creates a new record and we can't just 'replace' the old image - hence the need for this type of functionality. We can discuss this specific short term requirement in more depth at the next Grid hour. Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

0