Extension packages and authorizations
This part of the SDK is especially useful for private extensions and internal platform tooling. It is usually read by platform teams or extension authors rather than application teams consuming existing extensions.
Familyclient.extension_packages
Extension packages
| Attribute | Data type | Description |
|---|---|---|
| list(params: {}) | Array<ExtensionPackage> | Lists available extension packages with optional filtering params. |
| create(package_path:) | ExtensionPackage | Uploads a new extension package archive using multipart form data. |
| update(extension_package_id, package_path:) | ExtensionPackage | Uploads a new package archive for an existing extension package. |
| private_release(extension_package_id) | ExtensionPackage | Transitions the package to a private release state. |
| discontinue(extension_package_id) | ExtensionPackage | Discontinues the package. |
Familyclient.extension_package_usage_authorizations
Usage authorizations
| Attribute | Data type | Description |
|---|---|---|
| list | Array<ExtensionPackageUsageAuthorization> | Lists visible usage authorizations. |
| create(extension_package_id:, authorized_org_id:) | ExtensionPackageUsageAuthorization | Grants a private package to another organization. |
| update(authorization_id, state:) | ExtensionPackageUsageAuthorization | Updates authorization state such as approval. |
| delete(authorization_id) | nil | Revokes the authorization. |
Authorization flow
Package authorization flow
# Upload a zip file that contains the extension package build output.
package = client.extension_packages.create(
# Local path to the package archive on disk.
package_path: "tmp/my_extension_package.zip"
)
# Grant another Adobe organization permission to use the private package.
client.extension_package_usage_authorizations.create(
# Extension package that is being shared.
extension_package_id: package.id,
# IMS organization ID receiving the authorization.
authorized_org_id: "ABCDEF0123456789@AdobeOrg"
)