Skip to main content
Version: Next

How to add a new metadata aspect?

Adding a new metadata aspect is one of the most common ways to extend an existing entity. We'll use the CorpUserEditableInfo as an example here.

  1. Add the aspect model to the corresponding namespace (e.g. com.linkedin.identity)

  2. Extend the entity's aspect union to include the new aspect.

  3. Rebuild the rest.li IDL & snapshot by running the following command from the project root

./gradlew :metadata-service:restli-servlet-impl:build -Prest.model.compatibility=ignore
  1. To surface the new aspect at the top-level resource endpoint, extend the resource data model with an optional field. You'll also need to extend the toValue & toSnapshot methods of the top-level resource (e.g. CorpUsers) to convert between the snapshot & value models.

  2. (Optional) If there's need to update the aspect via API (instead of/in addition to MCE), add a sub-resource endpoint for the new aspect (e.g. CorpUsersEditableInfoResource). The sub-resource endpiont also allows you to retrieve previous versions of the aspect as well as additional metadata such as the audit stamp.

  3. After rebuilding & restarting gms, mce-consumer-job & mae-consumer-job,z you should be able to start emitting MCE with the new aspect and have it automatically ingested & stored in DB.