@agravity/public 11.1.1 → 11.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- 7.20.0
1
+ 7.25.0
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # @agravity/public@11.1.1
1
+ # @agravity/public@11.1.3
2
2
 
3
3
  <p>The Agravity Public API provides comprehensive access to digital asset management functionality for technical integrations, portals, and third-party applications. These endpoints are designed for programmatic access with API key authentication.</p><br/><h2>Access &amp; Security</h2><br/><b>API key is required to access these endpoints.</b><br/><ul><li>API Key Authentication - Each request requires a valid API key in headers or parameters</li><li>Portal-Aware - Many endpoints support portal context for multi-tenant scenarios</li><li>Service-to-Service Communication - Designed for backend-to-backend integrations</li><li>Stable &amp; Versioned - Public API versioning ensures backward compatibility</li></ul><h2>Core Features &amp; Operations</h2><ul><li><strong>Asset Management</strong> - Create, retrieve, update assets with full metadata support; manage versions and publish assets</li><li><strong>Collection Management</strong> - Create and organize collections hierarchically; retrieve collection type definitions and structures</li><li><strong>Asset Operations</strong> - Retrieve asset blobs (thumbnails, optimized, original); rotate and resize images; find similar assets using AI reverse search</li><li><strong>Image Editing</strong> - Apply transformations to images with advanced parameters (resize, crop, filter, color space, DPI, quality, depth)</li><li><strong>Asset Publishing</strong> - Publish assets to various targets (Vimeo, CDN); manage published asset information</li><li><strong>Asset Versioning</strong> - Create, restore, and manage asset versions; track version history with descriptions</li><li><strong>Asset Relations</strong> - Create and manage relationships between assets with hierarchical or standard relations; organize assets into logical groups</li><li><strong>Asset Relation Types</strong> - Retrieve relation type definitions including hierarchical, sequential, and unique-per-asset configurations</li><li><strong>Full-Text Search</strong> - Search assets and collections with advanced filtering, facets, and sorting capabilities</li><li><strong>Collection Sharing</strong> - Create shared collections with expiration dates, password protection, and download limits</li><li><strong>Quick Shares</strong> - Create quick share links for rapid asset sharing with expiration management</li><li><strong>Portals</strong> - Full portal management with authentication, custom theming, and asset filtering</li><li><strong>Secure Upload</strong> - Secure file upload endpoints with validation and SAS token generation</li><li><strong>Download Management</strong> - Create ZIP packages of assets with format specifications; track download progress</li><li><strong>Download Formats</strong> - Define and apply custom image transformations and optimizations for downloads</li><li><strong>Authentication</strong> - Generate SAS tokens for container write access; retrieve user information</li><li><strong>Configuration</strong> - Access frontend configuration values and system settings</li><li><strong>Helper Tools</strong> - Get searchable items, filterable items, user-defined lists, and static defined lists</li><li><strong>Translations</strong> - Retrieve translations for all entities in multiple languages</li><li><strong>Deleted Entities Tracking</strong> - Track deleted assets, collections, and other entities by date</li></ul><h2>Available Endpoints by Category</h2><ul><li><strong>Asset Management</strong> - /assets, /assets/{id}, /assetsupload</li><li><strong>Asset Relations</strong> - /assetrelations, /assetrelations/{id} (create, read, update, delete asset relationships)</li><li><strong>Asset Relation Types</strong> - /assetrelationtypes, /assetrelationtypes/{id} (retrieve relation type definitions and configurations)</li><li><strong>Asset Operations</strong> - /assets/{id}/blobs, /assets/{id}/collections, /assets/{id}/tocollection, /assets/{id}/download, /assets/{id}/resize, /assets/{id}/imageedit, /assets/{id}/availability</li><li><strong>Asset Publishing</strong> - /assets/{id}/publish, /assets/{id}/publish/{pid}</li><li><strong>Asset Versioning</strong> - /assets/{id}/versions, /assets/{id}/versionsupload, /assets/{id}/versions/{vNr}/restore</li><li><strong>AI Operations</strong> - /ai/reverseassetsearch (find similar assets using image)</li><li><strong>Collection Management</strong> - /collections, /collections/{id}, /collections/{id}/ancestors, /collections/{id}/descendants, /collections/{id}/previews, /collectionsbynames</li><li><strong>Collection Types</strong> - /collectiontypes, /collectiontypes/{id}, /collectiontypesitems</li><li><strong>Search</strong> - /search, /search/facette, /searchadmin/status</li><li><strong>Saved Searches</strong> - /savedsearches</li><li><strong>Collection Sharing</strong> - /shared/{id}, /shared/{id}/zip, /quickshares/{id}</li><li><strong>Secure Upload</strong> - /secureupload/{id}, /secureupload/{id}/upload</li><li><strong>Portal Management</strong> - /portals/{id}, /portals/{id}/config, /portals/{id}/zip, /portals/{id}/assetids, /portalsenhancetoken, /portalssaveuserattributes</li><li><strong>Authentication</strong> - /auth/containerwrite/{containerName}, /auth/inbox, /auth/users/{id}</li><li><strong>Download Formats</strong> - /downloadformats, /downloadformats-shared</li><li><strong>Configuration</strong> - /config/frontend</li><li><strong>Static Defined Lists</strong> - /staticdefinedlists, /staticdefinedlists/{id}</li><li><strong>User-Defined Lists</strong> - /helper/userdefinedlists</li><li><strong>Helper Tools</strong> - /helper/searchableitemnames, /helper/searchableitems, /helper/filterableitems</li><li><strong>Translations</strong> - /translations/{id}, /translations/{id}/{property}, /translations/{id}/custom/{customField}</li><li><strong>Web App Data</strong> - /webappdata/{id}, /data/collectiontype/{id}</li><li><strong>Workspace Management</strong> - /workspaces, /workspaces/{id}</li><li><strong>General</strong> - /version, /deleted, /durable/{instanceId}, /public/view, /signalr/negotiate</li></ul><h2>Typical Use Cases</h2><ul><li>E-commerce platforms - Product image management and dynamic optimization</li><li>Marketing automation - Asset distribution across channels with version control</li><li>Portal systems - Multi-tenant asset galleries with custom theming and permissions</li><li>Headless CMS integration - Content delivery with dynamic transformations</li><li>Mobile applications - Asset retrieval with mobile-optimized formats</li><li>AI-powered workflows - Reverse image search and automatic metadata generation</li><li>Asset sharing platforms - Secure sharing with expiration and password protection</li><li>Digital distribution - ZIP creation and bulk download management</li><li>Multi-language content - Translation management across all assets and collections</li><li>Real-time monitoring - Deletion tracking and version history auditing</li></ul><h2>Key Capabilities</h2><ul><li>Full CRUD operations on assets, collections, and related entities</li><li>Asset relationship management with hierarchical and standard relations</li><li>Advanced image transformation with ImageMagick integration</li><li>AI-powered reverse image search for asset discovery</li><li>Multi-language support with translation dictionaries</li><li>Granular permission control and role-based access</li><li>Portal creation with custom authentication and theming</li><li>Hierarchical collection organization with dynamic filtering</li><li>Real-time search with faceted navigation and advanced filtering</li><li>Secure sharing with expiration and password protection</li><li>Blob storage integration with SAS token generation</li><li>Comprehensive asset versioning and restoration</li><li>SignalR support for real-time notifications</li></ul><h2>Authentication &amp; Authorization</h2><p>All endpoints (except public share endpoints) require API key authentication. The API key can be provided:</p><ul><li>As query parameter: ?code=YOUR_API_KEY</li><li>As header: x-functions-key: YOUR_API_KEY</li></ul><p>Portal endpoints may have additional authentication methods (OAuth, Azure AD, Auth0, password) depending on portal configuration.</p><h2>Support</h2><p>For technical support or integration questions, contact <a href=\"mailto:support@agravity.io\">support@agravity.io</a> or visit <a href=\"https://agravity.io\">https://agravity.io</a>.</p><br/><p>Copyright © Agravity GmbH 2026. All Rights Reserved</p>
4
4
 
5
- The version of the OpenAPI document: 11.1.1
5
+ The version of the OpenAPI document: 11.1.3
6
6
 
7
7
  ## Building
8
8
 
@@ -24,7 +24,7 @@ Navigate to the folder of your consuming project and run one of next commands.
24
24
  _published:_
25
25
 
26
26
  ```console
27
- npm install @agravity/public@11.1.1 --save
27
+ npm install @agravity/public@11.1.3 --save
28
28
  ```
29
29
 
30
30
  _without publishing (not recommended):_
@@ -59,15 +59,16 @@ export class BaseService {
59
59
  return httpParams.append(key, value.toString());
60
60
  } else if (value instanceof Date) {
61
61
  return httpParams.append(key, value.toISOString());
62
- } else if (Array.isArray(value)) {
63
- // Otherwise, if it's an array, add each element.
62
+ } else if (Array.isArray(value) || value instanceof Set) {
63
+ // Otherwise, if it's an array or set, add each element.
64
+ const array = Array.isArray(value) ? value : Array.from(value);
64
65
  if (paramStyle === QueryParamStyle.Form) {
65
- return httpParams.set(key, value, { explode: explode, delimiter: ',' });
66
+ return httpParams.set(key, array, { explode: explode, delimiter: ',' });
66
67
  } else if (paramStyle === QueryParamStyle.SpaceDelimited) {
67
- return httpParams.set(key, value, { explode: explode, delimiter: ' ' });
68
+ return httpParams.set(key, array, { explode: explode, delimiter: ' ' });
68
69
  } else {
69
70
  // PipeDelimited
70
- return httpParams.set(key, value, { explode: explode, delimiter: '|' });
71
+ return httpParams.set(key, array, { explode: explode, delimiter: '|' });
71
72
  }
72
73
  } else {
73
74
  // Otherwise, if it's an object, add each field.
package/configuration.ts CHANGED
@@ -153,8 +153,8 @@ export class AgravityPublicConfiguration {
153
153
  * @return True if the given MIME is JSON, false otherwise.
154
154
  */
155
155
  public isJsonMime(mime: string): boolean {
156
- const jsonMime: RegExp = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
157
- return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
156
+ const jsonMime: RegExp = /^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$/i;
157
+ return mime !== null && jsonMime.test(mime);
158
158
  }
159
159
 
160
160
  public lookupCredential(key: string): string | undefined {
package/git_push.sh CHANGED
@@ -8,24 +8,24 @@ git_repo_id=$2
8
8
  release_note=$3
9
9
  git_host=$4
10
10
 
11
- if [ "$git_host" = "" ]; then
11
+ if [ -z "${git_host}" ]; then
12
12
  git_host="github.com"
13
- echo "[INFO] No command line input provided. Set \$git_host to $git_host"
13
+ echo "[INFO] No command line input provided. Set \${git_host} to ${git_host}"
14
14
  fi
15
15
 
16
- if [ "$git_user_id" = "" ]; then
16
+ if [ -z "${git_user_id}" ]; then
17
17
  git_user_id="GIT_USER_ID"
18
- echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
18
+ echo "[INFO] No command line input provided. Set \${git_user_id} to ${git_user_id}"
19
19
  fi
20
20
 
21
- if [ "$git_repo_id" = "" ]; then
21
+ if [ -z "${git_repo_id}" ]; then
22
22
  git_repo_id="GIT_REPO_ID"
23
- echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
23
+ echo "[INFO] No command line input provided. Set \${git_repo_id} to ${git_repo_id}"
24
24
  fi
25
25
 
26
- if [ "$release_note" = "" ]; then
26
+ if [ -z "${release_note}" ]; then
27
27
  release_note="Minor update"
28
- echo "[INFO] No command line input provided. Set \$release_note to $release_note"
28
+ echo "[INFO] No command line input provided. Set \${release_note} to ${release_note}"
29
29
  fi
30
30
 
31
31
  # Initialize the local directory as a Git repository
@@ -35,19 +35,16 @@ git init
35
35
  git add .
36
36
 
37
37
  # Commits the tracked changes and prepares them to be pushed to a remote repository.
38
- git commit -m "$release_note"
38
+ git commit -m "${release_note}"
39
39
 
40
40
  # Sets the new remote
41
- git_remote=$(git remote)
42
- if [ "$git_remote" = "" ]; then # git remote not defined
43
-
44
- if [ "$GIT_TOKEN" = "" ]; then
45
- echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
46
- git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
41
+ if [ -z "$(git remote)" ]; then # git remote not defined
42
+ if [ -z "${GIT_TOKEN:-}" ]; then
43
+ echo "[INFO] \${GIT_TOKEN} (environment variable) is not set. Using the git credential in your environment."
44
+ git remote add origin "https://${git_host}/${git_user_id}/${git_repo_id}.git"
47
45
  else
48
- git remote add origin https://${git_user_id}:"${GIT_TOKEN}"@${git_host}/${git_user_id}/${git_repo_id}.git
46
+ git remote add origin "https://${git_user_id}:${GIT_TOKEN}@${git_host}/${git_user_id}/${git_repo_id}.git"
49
47
  fi
50
-
51
48
  fi
52
49
 
53
50
  git pull origin master
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agravity/public",
3
- "version": "11.1.1",
3
+ "version": "11.1.3",
4
4
  "description": "The Agravity GlobalDAM API which allowes API key authenticated access the Agravity GlobalDAM Backend",
5
5
  "author": "Philipp Losbichler",
6
6
  "repository": {