@agravity/private 11.0.4 → 11.1.0

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.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # @agravity/private@11.0.4
1
+ # @agravity/private@11.1.0
2
2
 
3
3
  <p>Agravity is a powerful, enterprise-grade Headless Digital Asset Management (DAM) system designed for organizations that need complete control over how they manage, organize, and distribute their digital assets.</p> <h2>Key Features</h2> <ul> <li>Asset Management - Upload, organize, and manage all types of digital assets (images, videos, documents, etc.)</li> <li>Collections &amp; Hierarchies - Create flexible folder structures and collection types with customizable metadata</li> <li>Advanced Search - Powered by Azure Cognitive Search with AI-enhanced capabilities for intelligent discovery</li> <li>AI Integration - Leverage AI to automatically generate metadata, tags, and descriptions for your assets</li> <li>Versioning - Track and restore previous versions of your assets with complete version history</li> <li>Publishing &amp; Distribution - Publish assets to various channels including Vimeo, CDN, and custom portals</li> <li>Portal System - Create public-facing portals with granular permission controls and custom branding</li> <li>Download Formats - Define custom download formats with image transformations and optimizations</li> <li>Collaboration Features - Share collections, create quick shares, and manage team access with role-based permissions</li> <li>Multi-Language Support - Full translation capabilities for all metadata and UI elements</li> <li>API-First Architecture - Complete REST API for seamless integration with your applications</li> </ul> <h2>Headless DAM Benefits</h2> <p>As a headless DAM solution, Agravity separates content management from presentation. This means:</p> <ul> <li>Flexibility - Use the same assets across multiple channels and applications without duplication</li> <li>API-Driven - Access all functionality through powerful REST APIs for custom integrations</li> <li>Framework Agnostic - Integrate with any frontend framework or technology stack</li> <li>Scalability - Built on cloud-native architecture with Azure infrastructure for unlimited growth</li> <li>Multi-Channel Distribution - Publish to web, mobile, social media, and custom portals from a single source</li> </ul> <h2>Core Entities</h2> <p><strong>Assets</strong> - Your digital content (images, videos, documents). Each asset can have multiple versions, metadata, and be published to various targets.</p> <p><strong>Collections</strong> - Logical groupings of assets organized hierarchically. Support custom metadata through collection types.</p> <p><strong>Collection Types</strong> - Define the structure and metadata fields for collections, similar to database schemas.</p> <p><strong>Workspaces</strong> - Organize collection types into workspaces for multi-project management.</p> <p><strong>Download Formats</strong> - Define transformations and optimizations for assets when downloaded.</p> <p><strong>Portals</strong> - Public-facing interfaces for sharing collections with external stakeholders.</p> <h2>API Endpoints Overview</h2> <p><strong>Asset Management</strong> - Create, read, update, delete, and search assets with full metadata support</p> <p><strong>Collection Management</strong> - Organize assets into collections with hierarchical structures</p> <p><strong>AI Operations</strong> - Automatically generate asset metadata using AI-powered field generation</p> <p><strong>Publishing</strong> - Publish assets to Vimeo, CDN, or custom publishing targets</p> <p><strong>Search &amp; Discovery</strong> - Full-text search with advanced filtering and AI-enhanced similarity search</p> <p><strong>User &amp; Portal Management</strong> - Control access through roles, profiles, and custom portals</p> <p><strong>Content Distribution</strong> - Share collections, create download packages, and generate secure links</p> <h2>Security &amp; Permissions</h2> <ul> <li>OAuth 2.0 authentication with Azure AD integration</li> <li>Role-based access control (RBAC) with custom profiles</li> <li>Entity-level permissions for granular control</li> <li>API key authentication for service-to-service communication</li> <li>Secure sharing with password-protected links and expiration dates</li> </ul> <h2>Use Cases</h2> <ul> <li>E-commerce product image management and distribution</li> <li>Marketing asset management across multiple channels</li> <li>Brand asset library and governance</li> <li>Video content management and publishing</li> <li>Enterprise document management with searchability</li> <li>Multi-tenant content management for agencies</li> <li>AI-powered metadata generation at scale</li> </ul> <h2>Support</h2> <p>For questions or support, contact <a href=\"mailto:support@agravity.io\">support@agravity.io</a> or visit <a href=\"https://agravity.io\">https://agravity.io</a>.</p> < p>Agravity © 2026 - Enterprise Headless Digital Asset Management</p>
4
4
 
5
- The version of the OpenAPI document: 11.0.4
5
+ The version of the OpenAPI document: 11.1.0
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/private@11.0.4 --save
27
+ npm install @agravity/private@11.1.0 --save
28
28
  ```
29
29
 
30
30
  _without publishing (not recommended):_
@@ -51,6 +51,10 @@ export interface HttpGetAllUserDefinedListsRequestParams {
51
51
  translations?: boolean;
52
52
  /** The requested language of the response. If not matching it falls back to default language. */
53
53
  acceptLanguage?: string;
54
+ /** A portal ID ignores permissions but the param coll_ids. */
55
+ portalId?: string;
56
+ /** A comma separated list of parent IDs of UDLs which should be fetched. */
57
+ collIds?: string;
54
58
  }
55
59
 
56
60
  export interface HttpGetAllowedFilterableItemsRequestParams {
@@ -398,11 +402,17 @@ export class HelperToolsService extends BaseService {
398
402
  ): Observable<any> {
399
403
  const translations = requestParameters?.translations;
400
404
  const acceptLanguage = requestParameters?.acceptLanguage;
405
+ const portalId = requestParameters?.portalId;
406
+ const collIds = requestParameters?.collIds;
401
407
 
402
408
  let localVarQueryParameters = new OpenApiHttpParams(this.encoder);
403
409
 
404
410
  localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, 'translations', <any>translations, QueryParamStyle.Form, true);
405
411
 
412
+ localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, 'portal_id', <any>portalId, QueryParamStyle.Form, true);
413
+
414
+ localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, 'coll_ids', <any>collIds, QueryParamStyle.Form, true);
415
+
406
416
  let localVarHeaders = this.defaultHeaders;
407
417
  if (acceptLanguage !== undefined && acceptLanguage !== null) {
408
418
  localVarHeaders = localVarHeaders.set('Accept-Language', String(acceptLanguage));
@@ -19,6 +19,8 @@ import { AgravityErrorResponse } from '../model/agravityErrorResponse.agravity';
19
19
  // @ts-ignore
20
20
  import { AgravityInfoResponse } from '../model/agravityInfoResponse.agravity';
21
21
  // @ts-ignore
22
+ import { AzSearchOptions } from '../model/azSearchOptions.agravity';
23
+ // @ts-ignore
22
24
  import { SearchAdminStatus } from '../model/searchAdminStatus.agravity';
23
25
  // @ts-ignore
24
26
  import { SearchFacet } from '../model/searchFacet.agravity';
@@ -96,6 +98,17 @@ export interface HttpGlobalSearchRequestParams {
96
98
  acceptLanguage?: string;
97
99
  }
98
100
 
101
+ export interface HttpGlobalSearchPostRequestParams {
102
+ /** Search options for the request body. */
103
+ azSearchOptions: AzSearchOptions;
104
+ /** When default language should be returned and the translation dictionary is delivered. (Ignores the \&quot;Accept-Language\&quot; header) */
105
+ translations?: boolean;
106
+ /** The requested language of the response. If not matching it falls back to default language. */
107
+ acceptLanguage?: string;
108
+ /** This will expose the thumbnail asset blob incl. URL with SAS Token. */
109
+ expose?: boolean;
110
+ }
111
+
99
112
  export interface HttpPatchCleanSearchFromDeletedAssetsRequestParams {
100
113
  /** If the search should be redirected to a specific portal. */
101
114
  portalId?: string;
@@ -392,7 +405,7 @@ export class SearchManagementService extends BaseService {
392
405
  }
393
406
 
394
407
  /**
395
- * This endpoint returns a configured max amount of results for search terms.
408
+ * This endpoint returns a configured max amount of results for search terms using query parameters.
396
409
  * @endpoint get /search
397
410
  * @param requestParameters
398
411
  * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
@@ -517,6 +530,102 @@ export class SearchManagementService extends BaseService {
517
530
  });
518
531
  }
519
532
 
533
+ /**
534
+ * This endpoint returns a configured max amount of results for search options in the request body.
535
+ * @endpoint post /search
536
+ * @param requestParameters
537
+ * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
538
+ * @param reportProgress flag to report request and response progress.
539
+ * @param options additional options
540
+ */
541
+ public httpGlobalSearchPost(
542
+ requestParameters: HttpGlobalSearchPostRequestParams,
543
+ observe?: 'body',
544
+ reportProgress?: boolean,
545
+ options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean }
546
+ ): Observable<SearchResult>;
547
+ public httpGlobalSearchPost(
548
+ requestParameters: HttpGlobalSearchPostRequestParams,
549
+ observe?: 'response',
550
+ reportProgress?: boolean,
551
+ options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean }
552
+ ): Observable<HttpResponse<SearchResult>>;
553
+ public httpGlobalSearchPost(
554
+ requestParameters: HttpGlobalSearchPostRequestParams,
555
+ observe?: 'events',
556
+ reportProgress?: boolean,
557
+ options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean }
558
+ ): Observable<HttpEvent<SearchResult>>;
559
+ public httpGlobalSearchPost(
560
+ requestParameters: HttpGlobalSearchPostRequestParams,
561
+ observe: any = 'body',
562
+ reportProgress: boolean = false,
563
+ options?: { httpHeaderAccept?: 'application/json'; context?: HttpContext; transferCache?: boolean }
564
+ ): Observable<any> {
565
+ const azSearchOptions = requestParameters?.azSearchOptions;
566
+ if (azSearchOptions === null || azSearchOptions === undefined) {
567
+ throw new Error('Required parameter azSearchOptions was null or undefined when calling httpGlobalSearchPost.');
568
+ }
569
+ const translations = requestParameters?.translations;
570
+ const acceptLanguage = requestParameters?.acceptLanguage;
571
+ const expose = requestParameters?.expose;
572
+
573
+ let localVarQueryParameters = new OpenApiHttpParams(this.encoder);
574
+
575
+ localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, 'translations', <any>translations, QueryParamStyle.Form, true);
576
+
577
+ localVarQueryParameters = this.addToHttpParams(localVarQueryParameters, 'expose', <any>expose, QueryParamStyle.Form, true);
578
+
579
+ let localVarHeaders = this.defaultHeaders;
580
+ if (acceptLanguage !== undefined && acceptLanguage !== null) {
581
+ localVarHeaders = localVarHeaders.set('Accept-Language', String(acceptLanguage));
582
+ }
583
+
584
+ // authentication (msal_auth) required
585
+ localVarHeaders = this.configuration.addCredentialToHeaders('msal_auth', 'Authorization', localVarHeaders, 'Bearer ');
586
+
587
+ const localVarHttpHeaderAcceptSelected: string | undefined = options?.httpHeaderAccept ?? this.configuration.selectHeaderAccept(['application/json']);
588
+ if (localVarHttpHeaderAcceptSelected !== undefined) {
589
+ localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
590
+ }
591
+
592
+ const localVarHttpContext: HttpContext = options?.context ?? new HttpContext();
593
+
594
+ const localVarTransferCache: boolean = options?.transferCache ?? true;
595
+
596
+ // to determine the Content-Type header
597
+ const consumes: string[] = ['application/json'];
598
+ const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);
599
+ if (httpContentTypeSelected !== undefined) {
600
+ localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
601
+ }
602
+
603
+ let responseType_: 'text' | 'json' | 'blob' = 'json';
604
+ if (localVarHttpHeaderAcceptSelected) {
605
+ if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
606
+ responseType_ = 'text';
607
+ } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
608
+ responseType_ = 'json';
609
+ } else {
610
+ responseType_ = 'blob';
611
+ }
612
+ }
613
+
614
+ let localVarPath = `/search`;
615
+ const { basePath, withCredentials } = this.configuration;
616
+ return this.httpClient.request<SearchResult>('post', `${basePath}${localVarPath}`, {
617
+ context: localVarHttpContext,
618
+ body: azSearchOptions,
619
+ params: localVarQueryParameters.toHttpParams(),
620
+ responseType: <any>responseType_,
621
+ ...(withCredentials ? { withCredentials } : {}),
622
+ headers: localVarHeaders,
623
+ observe: observe,
624
+ ...(localVarTransferCache !== undefined ? { transferCache: localVarTransferCache } : {}),
625
+ reportProgress: reportProgress
626
+ });
627
+ }
628
+
520
629
  /**
521
630
  * This endpoint removes all assets which are not longer available in the database from the search index.
522
631
  * @endpoint patch /searchadmin/clean
@@ -14,4 +14,5 @@ export interface NotificationSettingsEntry {
14
14
  event_types?: Array<string> | null;
15
15
  frequency?: string | null;
16
16
  include_sub_collections?: boolean | null;
17
+ email_addresses?: Array<string> | null;
17
18
  }
@@ -13,6 +13,7 @@ export interface PortalFields {
13
13
  name?: string | null;
14
14
  detail_order?: number | null;
15
15
  facet_order?: number | null;
16
+ orfilterable?: boolean | null;
16
17
  labels?: { [key: string]: string } | null;
17
18
  user_context?: PortalUserContext | null;
18
19
  format?: string | null;
@@ -13,7 +13,7 @@ import { AzSearchOptions } from './azSearchOptions.agravity';
13
13
 
14
14
  export interface SearchResult {
15
15
  data_result?: DataResult | null;
16
- options?: AzSearchOptions | null;
16
+ options?: AzSearchOptions;
17
17
  facets?: Array<SearchFacet> | null;
18
18
  count?: number | null;
19
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agravity/private",
3
- "version": "11.0.4",
3
+ "version": "11.1.0",
4
4
  "description": "The Agravity GlobalDAM API which allowes authenticated user to access the Agravity GlobalDAM Backend",
5
5
  "author": "Philipp Losbichler",
6
6
  "repository": {