2.0 KiB
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.
-
Add the aspect model to the corresponding namespace (e.g.
com.linkedin.identity
) -
Extend the entity's aspect union to include the new aspect.
-
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
-
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. -
(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. -
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.