Extend repo: namespace with AEM repository-api properties; clarify repo:id (#2213)#2217
Open
cgoudie wants to merge 1 commit into
Open
Extend repo: namespace with AEM repository-api properties; clarify repo:id (#2213)#2217cgoudie wants to merge 1 commit into
cgoudie wants to merge 1 commit into
Conversation
…po:id (adobe#2213) The repository (repo:) namespace at http://ns.adobe.com/adobecloud/core/1.0 previously defined only repo:name, repo:path, repo:createDate and repo:modifyDate, while AEM's repository API emits a much larger set. This adds the missing properties (identity, audit, lifecycle, access control, transfer, and Dynamic Media) to the core/1.0 Common Properties datatype. The change is non-destructive: no existing property's type or contract is changed and nothing is removed. Descriptive metadata (title/description) is added to the existing repo:name and repo:path, and new optional properties and definition groups are inserted. Property shapes were verified against the repository-api serialization code and confirmed against a live AEM as a Cloud Service instance: repo:resource is an object (ResourceDesignator), repo:principal is a string or an object, repo:modifier is GRANT/DENY, repo:ancestors is a string array of asset ids, and repo:size is an integer. repo:id is clarified as the generic identifier of an addressable repository entity (asset, directory, or person/principal), distinct from the asset-scoped repo:assetId which AEM treats repo:id as a deprecated alias of. Includes regenerated documentation, an updated example, and a CHANGELOG entry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this change does
Closes #2213.
The repository (
repo:) namespace athttp://ns.adobe.com/adobecloud/core/1.0previously defined onlyrepo:name,repo:path,repo:createDate, andrepo:modifyDate. Adobe Experience Manager's repository API emits and consumes a substantially larger set ofrepo:properties, which until now had no authoritative definition in XDM.This PR extends the
core/1.0Common Properties datatype to define the full set ofrepo:properties used by the repository API, grouped into composable definition blocks:repo:id,repo:assetId,repo:assetClass,repo:repositoryId,repo:repositoryType,repo:etag,repo:size,repo:version,repo:state,repo:resource(plus existingrepo:name,repo:path,dc:format)repo:discardDate,repo:expires,repo:lastPublishedTime(plus existingrepo:createDate,repo:modifyDate)repo:createdBy,repo:modifiedBy,repo:discardedByrepo:ancestorsrepo:owner,repo:acl(with nestedrepo:principal,repo:privileges,repo:relations,repo:modifier,repo:inheritance)repo:resource,repo:md5,repo:blocksize,repo:accelerated,repo:availableRegions,repo:environmentrepo:scene7Domain,repo:scene7File,repo:scene7FileStatus,repo:scene7Folder,repo:scene7FontStyle,repo:scene7FontType,repo:scene7LastModified,repo:scene7Name,repo:scene7RTFName,repo:scene7TypeShape verification
Property shapes were verified two ways to avoid freezing an incorrect shape into the immutable
core/1.0namespace:repository-apiJackson serialization code.Notable non-scalar shapes:
repo:resourceis an object ({repo:reltype, component_id, revision, etag}),repo:principalis a string or object ({@id, xdm:provider, @type}) depending on principal type,repo:owneris an object map,repo:modifieris the enumGRANT/DENY,repo:ancestorsis a string array of asset ids, andrepo:size/repo:blocksizeare integers.The conditional-request properties
repo:if-match/repo:if-none-matchare intentionally excluded: they are operation preconditions supplied on a request (an ETag the upload is made conditional on), not descriptive metadata of the stored resource.repo:idclarificationrepo:idwas previously described only as an asset identifier, but it is used across Adobe products to identify different kinds of entities (assets, directories, and persons/principals). This PR redefines it as the generic identifier of an addressable repository entity and makes its relationship to the asset-scopedrepo:assetIdexplicit, so that consumers and code-generation tooling stop conflating the two.Breaking changes
None. All additions are optional properties; existing properties are unchanged. The only modifications to existing definitions are added titles/descriptions.
Checklist
node bin/validate-schemas.jsintroduces no new validation failures (failing-example set identical tomaster)npm testpasses (2406 passing)prettier --checkclean on changed source filesdocs/reference/datatypes/external/repo/common.schema.{json,md})common.example.1.jsonupdated to exercise the new propertiesCHANGELOG.mdupdated