Catalog item submission document reference
You must include data in JSON format when you submit an item to the catalog. This article describes the valid properties for that document. This JSON is an example:
{
"modelVersion": "1.0.0.0",
"operation": "CreateOrUpdate",
"sourcePortal": 526430005,
"businessJustification": "Power Platform custom connector for Conference API",
"publisherDetails": {
"publisherId": "ContosoConferencesTeam",
"publisherDisplayName": "Catalog Conferences Team"
},
"catalogItemDefinition": {
"id": "ContosoConferencesCustomConnector",
"displayName": "Contoso Conference Custom Connector",
"description": "Demo Custom connector to query Conference Speakers & Sessions",
"offer": {
"type": "Component_Collection",
"deploymentType": "Normal",
"engineeringName": {
"firstName": "Jennifer",
"lastName": "Wilkins",
"email": "jwilkins@contoso.com",
"phoneNumber": "555-111-1234"
},
"supportName": {
"firstName": "Aidan",
"lastName": "Hunt",
"email": "ahunt@contoso.com",
"phoneNumber": "555-111-1234"
}
},
"packageFile": {
"name": "packageFileName.zip",
"filesaslink": "https://Contoso.blob.core.windows.net/ContosoConferencesCustomConnector/packageFileName.zip"
}
}
}
This table describes the properties for the submission document:
Property | Type | Required | Description |
---|---|---|---|
modelVersion |
string | No | Version number of the submission document. Default is 1.0.0.0. |
sourcePortal |
int | No | Identifies the source of this request. Defaults to 526430005 which is the PAC CLI. For other sources, use 526430000 . The mspcat_GetPowerCatalogDetails function returns the full list. The mspcat_GetPowerCatalogDetailsResponse.CatalogDetails.sourceOptions property lists the available options. |
submissionId |
guid | No | Guid to identify the submission. This value is a foreign key to allow for linking the request to other systems. |
operation |
string | Yes | For future expansion and isn't currently respected. The type of operation that to be used. Valid values: - CreateOrUpdate (Default)- Create - Update - Disabled |
businessJustification |
string | No | Describes the business value of the submission to the approver. This value can contain HTML or Rich Text Format (RTF). This information appears in the planned consumption experience in the maker discovery user experience. Users might say their submission helps with cost reduction or productivity, for example. Some organizations require certain classes of value and those values can be entered here. |
publisherDetails |
Publisher | Yes | The publisher associated with this item submission. |
catalogItemDefinition |
CatalogItemDefinition | Yes | Defines the catalog item being submitted. |
Publisher
Use this data to specify the catalog submission item publisherDetails
property.
Creates a publisher record that can be associated to one or more Microsoft Entra ID groups containing authorized users who can make updates to the catalog item going forward.
Note
Don't confuse this term with Solution Publisher. Catalog item publisher isn't used with solutions.
You need to provide the publisherDisplayName
at a minimum. publisherId
can be any string value. The system checks if that publisher exists, else creates it and assigns an publisherId
.
For example, HR IT team of developers can create a publisher and ID the developers using a Microsoft Entra ID group.
Here's a sample of a publisher record that includes operations to add a person and an Entra ID group
{
"publisherId": "MyPublisherId",
"publisherDisplayName": "Contoso Publishing",
"publisherUpnList": [
{
"action": "Add",
"upn": "john.doe@contoso.com"
}
],
"publisherAADGroupOIDS": [
{
"action": "Add",
"groupName": "PowerCatalogSubmitters",
"groupOID": "2ded6de9-ab44-4478-9bd4-e609947daa2e",
"groupType": "Security"
}
]
}
Property | Type | Required | Description |
---|---|---|---|
publisherId |
string | Yes | The unique ID for this publisher. Use this ID to identify this publisher anytime you're creating or updating a catalog item for this publisher. Catalog Items can only be associated to one publisher at a time. The value can be a GUID or string. Once set, it must be maintained. |
publisherDisplayName |
string | Yes | Consumers see this data in the catalog gallery. |
publisherUpnList |
CatalogUPNOperation[] | No | People that can submit new or update catalog items as this publisher. Always includes the submitting user the first time the Publisher is created. |
publisherAADGroupOIDS |
CatalogGroupOperation[] | No | Entra ID Groups whose members are allowed to access this publisher. |
CatalogUPNOperation
Use this data to specify the Publisher publisherUpnList
property.
Defines an operation to add or remove people that can submit new or update catalog items as this publisher.
Property | Type | Required | Description |
---|---|---|---|
action |
string | Yes | The action to take with this UPN. Valid values: Add or Remove . |
upn |
string | Yes | User Principal Name (UPN) of the user. |
userOid |
guid | Yes | Object Identifier for the user. |
CatalogGroupOperation
Use this data to specify the Publisher publisherAADGroupOIDS
property.
Defines an operation to add or remove an Entra ID Group that can access this publisher.
Property | Type | Required | Description |
---|---|---|---|
action |
string | Yes | The action to take with this UPN. Valid values: Add or Remove . |
groupName |
string | Yes | Name of group. |
groupOid |
guid | Yes | Object identifier for group. |
groupType |
string | Yes | Type of Group being addressed. Valid Values are Security and Modern . |
CatalogItemDefinition
Use this data to specify the catalog submission item catalogItemDefinition
property.
These properties define the catalog item being submitted. This is the actual Power Platform solution. A package is what is stored in the catalog.
Here's an example of a catalog item including its engineeringName
and supportName
contacts that are mandatory.
"catalogItemDefinition": {
"id": "ContosoTravelsApp",
"displayName": "Contoso Travel Expense App",
"description": "Submit expenses on the go!",
"offer": {
"businessCategories": [526430000, 526430001, 526430002],
"type": "Component_Collection",
"deploymentType": "Normal",
"small48x48Image": {
"name": "Small48Image",
"fileSasLink": "https://www.contoso.com/icon48.jpg"
},
"large216x216Image": {
"name": "Large216image2",
"fileSasLink": "https://www.contoso.com/icon216.jpg"
},
"documents": [
{
"name": "ImaNewfile",
"fileSasLink": "https://www.contoso.com/screenshot1.jpg"
},
{
"name": "ImaNewfile2",
"fileSasLink": "https://www.contoso.com/screenshot2.jpg"
}
],
"helpLink": "https://www.contoso.com/help.html",
"privacyPolicyLink": "https://www.contoso.com/privacy.html",
"legalTerms": "https://www.contoso.com/legal.html",
"engineeringName": {
"firstName": "John",
"lastName": "Roon",
"email": "john@contoso.com",
"phoneNumber": "999-111-1234"
},
"supportName": {
"firstName": "Jane",
"lastName": "Drill",
"email": "jane@contoso.com",
"phoneNumber": "999-111-1234"
}
}
}
Property | Type | Required | Description |
---|---|---|---|
id |
guid | Yes | The unique ID of the catalog item. Use this ID when updating or installing the catalog item. |
displayName |
string | Yes | Name shown to consumers in the catalog galleries. |
description |
string | No | Description shown to consumers in the catalog galleries. |
offer |
OfferDetails | Yes | The details of the catalog item submission. |
packageFile |
CatalogFileAsset | Yes | Describes where to get the catalog package file for the submission. |
OfferDetails
Use this data to specify the CatalogItemDefinition offer
property.
These properties define the details of the catalog item submission.
Property | Type | Required | Description |
---|---|---|---|
businessCategories |
int[] | No | List of choice option values respected by the target catalog. Identifies the business categories to associate with this catalog item. See Business categories for the valid values to use. |
type |
string | Yes | Type of catalog item. Valid values: - Application - Component_Collection |
supportsApplicationTypes |
string[] | No | List of the supported application types. Valid values: - CanvasApps - ModelApps - PowerPortals - PowerAutomate |
deploymentType |
string | Yes | Indicates the type of deployment to deploy this catalog item. Valid values: - Normal represents a managed item.- Template A copy of your unmanaged solution that other makers can edit however they choose. Learn more about catalog item types |
searchKeywords |
string[] | No | Words that people might use to find this catalog item. |
small48x48Image |
CatalogFileAsset | No | Image for gallery view. If you don't provide this image, a system default icon is used. |
large216x216Image |
CatalogFileAsset | No | Image for detail view. Provide an icon to be displayed in the maker or other discovery UI. Some user experiences uses larger icons to render cards for discovery. |
useCaseDocument |
CatalogFileAsset | No | Use case description and explanation to approvers. |
videos |
CatalogFileAsset[] | No | Detail view displays links to these video/gif files. |
documents |
CatalogFileAsset[] | No | Detail view displays links to these files. |
screenshots |
CatalogFileAsset[] | No | Detail view displays these images. You can pass screenshots here of your application to help makers identify whether this app provides the functionality or capability they're looking for. The most common thing people do before downloading an app or template is look at its images and screenshots to understand the capabilities instead of reading the description. |
helpLink |
uri | No | Link to documentation. These URLs can be links to internal docs or sharepoint resources. |
privacyPolicyLink |
uri | No | Link to privacy document. Policies regarding careful usage of the component or application being submitted. |
legalTermsLink |
uri | No | Link to the Terms and Conditions document. Any legal terms or internal guidance for evaluation of the consumer of the catalog item. |
legalTerms |
string | No | Markdown, HTML, or text version of the Terms and Conditions document. Any legal terms or internal guidance for evaluation of the consumer of the catalog item. |
sourceCodeRepositoryLink |
uri | No | Link to the source code repository |
engineeringName |
PersonContactInformation | Yes | Contact information for engineer or group that developed this catalog item. |
supportName |
PersonContactInformation | No | Contact information for support or group that supports this catalog item. Can be same as the engineering contact that the consumer of a catalog item can reach out to if they run into issues with the application. |
Business categories
Set the OfferDetails businessCategories
property to one or more of these business categories:
Code | Description |
---|---|
526430000 |
Customer Service |
526430001 |
Project Management |
526430002 |
Calendar Management & Scheduling |
526430003 |
Email Management |
526430004 |
Files & Documentation |
526430005 |
Notification & Reminders |
526430006 |
Analytics |
526430007 |
Collaboration |
526430008 |
Commerce |
526430009 |
Finance |
526430010 |
Compliance & Legal |
526430011 |
Sales |
526430012 |
IT Tools |
526430013 |
Marketing |
526430014 |
Operations & Supply Chain |
526430015 |
Internet of Things |
526430016 |
AI Machine Learning |
526430017 |
Geolocation |
526430018 |
Human Resources |
Currently, new business categories can't be configured, but they can be retrieved from the Catalog Business Category (mspcat_catalogbusinesscategory
) global choice.
CatalogFileAsset
These properties define a file referenced in the CatalogItemDefinition packageFile
and the OfferDetails small48x48Image
, large216x216Image
, useCaseDocument
, videos
, documents
, and screenshots
properties.
Property | Type | Required | Description |
---|---|---|---|
name |
string | Yes | Name of the file. |
filesaslink |
uri | Yes | Link to download the file. If the link requires authentication, provide a shared access signature (SAS) URL. |
PersonContactInformation
These properties define people in the catalog item OfferDetails engineeringName
and supportName
properties.
Property | Type | Required | Description |
---|---|---|---|
firstName |
string | No | Person first name. |
lastName |
string | Yes | Person family name. |
email |
string | Yes | Person email address. |
phoneNumber |
string | No | Person phone number. |