ADR-158: Enforce contents field present in profile deployment

More details about this document
Latest published version:
https://adr.decentraland.org/adr/ADR-158
Authors:
agusaldasoro
Feedback:
GitHub decentraland/adr (pull requests, new issue, open issues)
Edit this documentation:
GitHub View commits View commits on githistory.xyz

Abstract

As the deployments to the content server can exclude existing files, that ended up in the clients to forget to reference those files in the entity. The format of the profiles is already standarized, so a new validation needs to be added that checks that in the contents field of a deployment, it includes the files: face.png and body256.png.

Context, Reach & Prioritization

Not validating the contents field of the profile deployments ended up in an inconsistent state of the Content Servers, as when running garbage collection the files of active profiles weren't being referenced so they were deleted. More info at Catalyst Issue

Solution Space Exploration

Before activating this validation, all clients need to fix the way they are deploying profiles. In particular: update Decentraland dApps to send the necessary hashesByKey when making a deployment with the Catalyst Client using the buildEntityWithoutNewFiles. An example of that can be found at Kernel

Specification

This new validation will take place starting from the date GMT: Tuesday, January 10, 2023 3:00:00 PM as documented in ADR-51

1674576000000 = 2023-01-24T15:00:00Z

RFC 2119 and RFC 8174

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174.

License

Copyright and related rights waived via CC0-1.0. Final