An extension package represents an extension as authored by an extension developer. Additional functionalities that can be made available to tag users are defined by an extension package. These capabilities can include main modules and shared modules, although they are most frequently provided as rule components (events, conditions, and actions) and data elements.
An extension package is owned by the developer’s company. Owners of extension packages can authorize other businesses to use their private versions of the packages. Each authorized business is given a usage authorization for a single extension package, which is valid for all future and current private versions of the package.
The endpoint used in this guide is part of the Reactor API. Before continuing, please review the getting started guide for important information regarding how to authenticate to the API.
To retrieve a list of usage authorizations for an extension package, make a GET request to the following endpoint.
API format
GET /extension_packages/{EXTENSION_PACKAGE_ID}/extension_package_usage_authorizations
Parameter | Description |
---|---|
{PROPERTY_ID} |
The ID of the property whose extension package usage authorization you want to list. |
Request
curl -X GET \
https://reactor.adobe.io/extension_packages/{EXTENSION_PACKAGE_ID}/extension_package_usage_authorizations \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns a list of extension packages.
{
"data": [
{
"id": "EA722482c30fe44b54aa6a7317890b3bdb",
"type": "extension_package_usage_authorizations",
"attributes": {
"created_at": "2024-06-05T23:17:35.776Z",
"updated_at": "2024-06-05T23:17:35.776Z",
"name": "Acme",
"platform": "web",
"owner_org_id": "{ORG_ID}",
"owner_org_name": "Reactor QE",
"authorized_org_id": "{ORG_ID}",
"authorized_org_name": "Acme Inc'",
"state": "pending_approval",
"created_by_email": "example@adobe.com",
"created_by_display_name": "john snow",
"updated_by_email": "Restricted",
"updated_by_display_name": "Restricted"
},
"relationships": {
"extension_package": {
"links": {
"related": "https://reactor.adobe.io/extension_package_usage_authorizations/EA722482c30fe44b54aa6a7317890b3bdb/extension_package"
},
"data": {
"id": "EPecefc8291ae346c3b3887d5b2da533b8",
"type": "extension_packages"
}
}
},
"links": {
"self": "https://reactor.adobe.io/extension_package_usage_authorizations/EA722482c30fe44b54aa6a7317890b3bdb"
}
}
],
"meta": {
"pagination": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
}
Create an extension package usage authorization for each extension package and {ORG_ID}
of the organization you want to authorize. To create a new extension package usage authorization, make a POST request to the endpoint below.
API format
POST /extension_packages/{EXTENSION_PACKAGE_ID}/extension_package_usage_authorizations
Parameter | Description |
---|---|
EXTENSION_PACKAGE_ID |
The ID of the extension package that you want to create an authorization for." |
Request
curl -X POST \
https://reactor.adobe.io/extension_packages/{EXTENSION_PACKAGE_ID}/extension_package_usage_authorizations \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-d '{
"data": {
"attributes": {
"authorized_org_id": "{ORG_ID}"
},
"type": "extension_package_usage_authorizations"
}
}
Property | Description |
---|---|
attributes.authorized_org_id |
The ID of the organization you want to authorize. |
Response
A successful response return the details of the newly created extension package usage authorization.
{
"data": {
"id": "EA35d0e731f73645e6972df9fcac101434",
"type": "extension_package_usage_authorizations",
"attributes": {
"created_at": "2024-06-05T23:17:30.308Z",
"updated_at": "2024-06-05T23:17:30.308Z",
"name": "Acme",
"platform": "web",
"owner_org_id": "{ORG_ID}",
"owner_org_name": "Reactor QE",
"authorized_org_id": "{ORG_ID}",
"authorized_org_name": "Acme Inc'",
"state": "pending_approval",
"created_by_email": "example@adobe.com",
"created_by_display_name": "john snow",
"updated_by_email": "Restricted",
"updated_by_display_name": "Restricted"
},
"relationships": {
"extension_package": {
"links": {
"related": "https://reactor.adobe.io/extension_package_usage_authorizations/EA35d0e731f73645e6972df9fcac101434/extension_package"
},
"data": {
"id": "EP43649cc8856d4f09a7c2a21a4b1e449d",
"type": "extension_packages"
}
}
},
"links": {
"self": "https://reactor.adobe.io/extension_package_usage_authorizations/EA35d0e731f73645e6972df9fcac101434"
}
}
}
In the example response above, the authorization is currently in the pending_approval
stage. Before using the extension package, the organization must approve the authorization. Users of the organization are able to browse the private extension package while authorization is pending approval, but they are unable to install it and cannot find it in their extensions catalog.
You can retrieve a list of extension package usage authorizations by making a GET request.
API format
GET /extension_package_usage_authorizations
Request
curl -X GET \
https://reactor.adobe.io/extension_package_usage_authorizations \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns a list of extension packages.
{
"data": [
{
"id": "EA35d0e731f73645e6972df9fcac101434",
"type": "extension_package_usage_authorizations",
"attributes": {
"created_at": "2024-06-05T23:17:30.308Z",
"updated_at": "2024-06-05T23:17:30.308Z",
"name": "Acme",
"platform": "web",
"owner_org_id": "{ORG_ID}",
"owner_org_name": "Reactor QE",
"authorized_org_id": "{ORG_ID}",
"authorized_org_name": "Acme Inc'",
"state": "pending_approval",
"created_by_email": "Restricted",
"created_by_display_name": "Restricted",
"updated_by_email": "example@adobe.com",
"updated_by_display_name": "john snow"
},
"relationships": {
"extension_package": {
"links": {
"related": "https://reactor.adobe.io/extension_package_usage_authorizations/EA35d0e731f73645e6972df9fcac101434/extension_package"
},
"data": null
}
},
"links": {
"self": "https://reactor.adobe.io/extension_package_usage_authorizations/EA35d0e731f73645e6972df9fcac101434"
}
}
],
"links": {
"self": "https://reactor.adobe.io/extension_package_usage_authorizations?page%5Bnumber%5D=1&page%5Bsize%5D=25",
"next": "https://reactor.adobe.io/extension_package_usage_authorizations?page%5Bnumber%5D=2&page%5Bsize%5D=25",
"last": "https://reactor.adobe.io/extension_package_usage_authorizations?page%5Bnumber%5D=3&page%5Bsize%5D=25"
},
"meta": {
"pagination": {
"current_page": 1,
"next_page": 2,
"prev_page": null,
"total_pages": 3,
"total_count": 57
}
}
}
To delete an extension package usage authorization, include its ID
in the path of a DELETE request. This prevents the authorized organization from viewing the private versions of the extension package in the catalog and from installing it on their properties.
Any previously installed private versions will continue to work as expected.
API format
DELETE /extension_package_usage_authorizations/{ID}
Parameter | Description |
---|---|
ID |
The ID of the extension package usage authorization that you want to delete. |
Request
curl -X DELETE \
https://reactor.adobe.io/extension_package_usage_authorizations/{ID} \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}'
Response
A successful response returns HTTP status 204 (No Content) with no response body. This indicates that the extension has been deleted.
To approve or reject an extension package usage authorization, include its ID
in the path of a PATCH request.
To approve or reject an extension package usage authorization for your company, you must have manage_properties
rights.
API format
PATCH /extension_package_usage_authorizations/{ID}
Parameter | Description |
---|---|
ID |
The ID of the extension package usage authorization that you want to delete. |
Request
curl -X PATCH \
https://reactor.adobe.io/extension_package_usage_authorizations/{ID} \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-d '{
"data": {
"attributes": {
"state": "approved"
},
"type": "extension_package_usage_authorizations",
"id": "EA86f54b48dd7042a68686508e03be8ba9"
}
}
Property | Description |
---|---|
attributes |
The attributes that you want to revise. For extension package usage authorizations you can revise their state . |
Response
A successful response returns the details of the revised extension package usage authorization.
{
"data": {
"id": "EA86f54b48dd7042a68686508e03be8ba9",
"type": "extension_package_usage_authorizations",
"attributes": {
"created_at": "2024-06-05T23:17:59.480Z",
"updated_at": "2024-06-05T23:18:00.115Z",
"name": "Acme",
"platform": "web",
"owner_org_id": "{ORG_ID}",
"owner_org_name": "Reactor QE",
"authorized_org_id": "{ORG_ID}",
"authorized_org_name": "Acme Inc'",
"state": "approved",
"created_by_email": "Restricted",
"created_by_display_name": "Restricted",
"updated_by_email": "example@adobe.com",
"updated_by_display_name": "john snow"
},
"relationships": {
"extension_package": {
"links": {
"related": "https://reactor.adobe.io/extension_package_usage_authorizations/EA86f54b48dd7042a68686508e03be8ba9/extension_package"
},
"data": {
"id": "EPb91d54cad9f749dba4e5566459f84c9c",
"type": "extension_packages"
}
}
},
"links": {
"self": "https://reactor.adobe.io/extension_package_usage_authorizations/EA86f54b48dd7042a68686508e03be8ba9"
}
}
}
Once the authorization is approved, your organization can install the extension package on your properties.
You can retrieve data for the extension package for an extension package usage authorization by making a GET request.
API format
GET /extension_package_usage_authorizations/{ID}/extension_package
Parameter | Description |
---|---|
ID |
The ID of the extension package usage authorization that you want to retrieve. |
Request
curl -X GET \
https://reactor.adobe.io/extension_package_usage_authorizations/{ID}/extension_package \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H "Content-Type: application/vnd.api+json" \
-H 'Accept: application/vnd.api+json;revision=1'
Response
A successful response returns data for extension package for an extension package authorization.
{
"data": {
"id": "EP45ae063fd75c4c22936d3d456c858cfa",
"type": "extension_packages",
"attributes": {
"actions": [],
"author": {
"url": "http://adobe.com",
"name": "Acme",
"email": "acme@adobe.com"
},
"availability": "private",
"cdn_path": "https://assets.adobedtm.com/staging/extensions/EP45ae063fd75c4c22936d3d456c858cfa",
"conditions": [],
"configuration": null,
"created_at": "2024-06-05T23:17:48.607Z",
"data_elements": [],
"description": "Provides nothing.",
"discontinued": false,
"display_name": "Acme Template Test",
"ecma_version": null,
"events": [],
"exchange_url": null,
"hosted_lib_files": null,
"icon_path": "resources/icons/core.svg",
"main": "null",
"name": "Acme",
"owner_org_id": "{ORG_ID}",
"resources": null,
"shared_modules": null,
"status": "succeeded",
"platform": "web",
"updated_at": "2024-06-05T23:17:53.806Z",
"version": "1.0.0",
"view_base_path": "dist/",
"created_by_email": "example@adobe.com",
"created_by_display_name": "john snow",
"updated_by_email": "example@adobe.com",
"updated_by_display_name": "john snow"
},
"relationships": {
"extension_package": {
"links": {
"related": "https://reactor.adobe.io/extension_packages/EP45ae063fd75c4c22936d3d456c858cfa/extension_package_usage_authorizations"
}
}
},
"links": {
"self": "https://reactor.adobe.io/extension_packages/EP45ae063fd75c4c22936d3d456c858cfa"
}
}
}