From e04bdc28b5c03b2b34cc1878d786bdf12dc4541c Mon Sep 17 00:00:00 2001 From: MichalKinas Date: Wed, 22 Oct 2025 17:06:47 +0200 Subject: [PATCH 1/3] [ACS-9980] Add SSO integration API --- .../services/custom-resources.service.ts | 3 +- .../src/api/activiti-rest-api/api/index.ts | 1 + .../api/integrationSSO.api.ts | 40 ++++++++++++++++++ .../docs/AlfrescoEndpointRepresentation.md | 1 + .../docs/IntegrationSSOApi.md | 41 +++++++++++++++++++ ...SSOUserAccountCredentialsRepresentation.md | 10 +++++ .../model/alfrescoEndpointRepresentation.ts | 1 + .../src/api/activiti-rest-api/model/index.ts | 1 + ...ssoUserAccountCredentialsRepresentation.ts | 33 +++++++++++++++ 9 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts create mode 100644 lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md create mode 100644 lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md create mode 100644 lib/js-api/src/api/activiti-rest-api/model/ssoUserAccountCredentialsRepresentation.ts diff --git a/lib/content-services/src/lib/document-list/services/custom-resources.service.ts b/lib/content-services/src/lib/document-list/services/custom-resources.service.ts index 3a60921f12e..eba75b71f08 100644 --- a/lib/content-services/src/lib/document-list/services/custom-resources.service.ts +++ b/lib/content-services/src/lib/document-list/services/custom-resources.service.ts @@ -116,8 +116,7 @@ export class CustomResourcesService { '-TYPE:"fm:topic"', '-TYPE:"fm:post"', '-TYPE:"ia:calendarEvent"', - '-TYPE:"lnk:link"', - '-ASPECT:"app:linked"' + '-TYPE:"lnk:link"' ]; return new Observable((observer) => { diff --git a/lib/js-api/src/api/activiti-rest-api/api/index.ts b/lib/js-api/src/api/activiti-rest-api/api/index.ts index 582f2f7ec46..81b1551750a 100644 --- a/lib/js-api/src/api/activiti-rest-api/api/index.ts +++ b/lib/js-api/src/api/activiti-rest-api/api/index.ts @@ -37,6 +37,7 @@ export * from './integrationAlfrescoCloud.api'; export * from './integrationAlfrescoOnPremise.api'; export * from './integrationBox.api'; export * from './integrationDrive.api'; +export * from './integrationSSO.api'; export * from './models.api'; export * from './modelsBpmn.api'; export * from './modelsHistory.api'; diff --git a/lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts b/lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts new file mode 100644 index 00000000000..02d29f69291 --- /dev/null +++ b/lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts @@ -0,0 +1,40 @@ +/*! + * @license + * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { BaseApi } from './base.api'; +import { SSOUserAccountCredentialsRepresentation } from '../model/ssoUserAccountCredentialsRepresentation'; + +/** + * IntegrationSSOApi service. + */ +export class IntegrationSSOApi extends BaseApi { + /** + * Get account information + * @param repositoryId repositoryId + * @return Promise + */ + getAccountInformation(repositoryId: string): Promise { + const pathParams = { + repositoryId + }; + + return this.get({ + path: '/api/enterprise/integration/sso/{repositoryId}/account', + pathParams + }); + } +} diff --git a/lib/js-api/src/api/activiti-rest-api/docs/AlfrescoEndpointRepresentation.md b/lib/js-api/src/api/activiti-rest-api/docs/AlfrescoEndpointRepresentation.md index 34c20adfa01..db43a6ffc5c 100644 --- a/lib/js-api/src/api/activiti-rest-api/docs/AlfrescoEndpointRepresentation.md +++ b/lib/js-api/src/api/activiti-rest-api/docs/AlfrescoEndpointRepresentation.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **accountUsername** | **string** | | [optional] [default to null] **alfrescoTenantId** | **string** | | [optional] [default to null] +**authenticationType** | **string** | | [optional] [default to null] **created** | [**Date**](Date.md) | | [optional] [default to null] **id** | **number** | | [optional] [default to null] **lastUpdated** | [**Date**](Date.md) | | [optional] [default to null] diff --git a/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md b/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md new file mode 100644 index 00000000000..a15d085b7b0 --- /dev/null +++ b/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md @@ -0,0 +1,41 @@ +# IntegrationSSOApi + +All URIs are relative to */activiti-app/api* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**getAccountInformation**](IntegrationSSOApi.md#getAccountInformation) | **GET** /api/enterprise/integration/sso/{repositoryId}/account | Get account information + + +## getAccountInformation + +Returns account information. + +### Example + +```javascript +import { AlfrescoApi, IntegrationSSOApi } from '@alfresco/js-api'; + +this.alfrescoApi = new AlfrescoApi(); +this.alfrescoApi.setConfig({ + hostEcm: 'http://127.0.0.1:8080' +}); + +let integrationSSOApi = new IntegrationSSOApi(this.alfrescoApi); + +integrationSSOApi.getAccountInformation('1').then(() => { + console.log('API called successfully.'); +}, function (error) { + console.error(error); +}); + +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **repositoryId** | **string**| Alfresco Repository instance ID configured in APS | + +### Return type + +`Promise` diff --git a/lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md b/lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md new file mode 100644 index 00000000000..241ccab527f --- /dev/null +++ b/lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md @@ -0,0 +1,10 @@ +# SSOUserAccountCredentialsRepresentation + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**authenticationURL** | **string** | Authentication URL that can be used to establish a session between IdP and APS | +**expireDate** | [**Date**](Date.md) | APS token expiry date | +**name** | **string** | User account name | +**ownerEmail** | **string** | User account owner email | +**repositoryId** | **number** | Alfresco repository ID | diff --git a/lib/js-api/src/api/activiti-rest-api/model/alfrescoEndpointRepresentation.ts b/lib/js-api/src/api/activiti-rest-api/model/alfrescoEndpointRepresentation.ts index 7ddb46fda81..128ada953e5 100644 --- a/lib/js-api/src/api/activiti-rest-api/model/alfrescoEndpointRepresentation.ts +++ b/lib/js-api/src/api/activiti-rest-api/model/alfrescoEndpointRepresentation.ts @@ -20,6 +20,7 @@ import { DateAlfresco } from '../../content-custom-api'; export class AlfrescoEndpointRepresentation { accountUsername?: string; alfrescoTenantId?: string; + authenticationType?: string; created?: Date; id?: number; lastUpdated?: Date; diff --git a/lib/js-api/src/api/activiti-rest-api/model/index.ts b/lib/js-api/src/api/activiti-rest-api/model/index.ts index 669588e9c4b..ee149856544 100644 --- a/lib/js-api/src/api/activiti-rest-api/model/index.ts +++ b/lib/js-api/src/api/activiti-rest-api/model/index.ts @@ -141,6 +141,7 @@ export * from './runtimeAppDefinitionSaveRepresentation'; export * from './runtimeDecisionTableRepresentation'; export * from './runtimeFormRepresentation'; export * from './saveFormRepresentation'; +export * from './ssoUserAccountCredentialsRepresentation'; export * from './submittedFormRepresentation'; export * from './syncLogEntryRepresentation'; export * from './systemPropertiesRepresentation'; diff --git a/lib/js-api/src/api/activiti-rest-api/model/ssoUserAccountCredentialsRepresentation.ts b/lib/js-api/src/api/activiti-rest-api/model/ssoUserAccountCredentialsRepresentation.ts new file mode 100644 index 00000000000..13f46a53a09 --- /dev/null +++ b/lib/js-api/src/api/activiti-rest-api/model/ssoUserAccountCredentialsRepresentation.ts @@ -0,0 +1,33 @@ +/*! + * @license + * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { DateAlfresco } from '../../content-custom-api'; + +export class SSOUserAccountCredentialsRepresentation { + authenticationURL: string; + expireDate: Date; + name: string; + ownerEmail: string; + repositoryId: number; + + constructor(input?: Partial) { + if (input) { + Object.assign(this, input); + this.expireDate = input.expireDate ? DateAlfresco.parseDate(input.expireDate) : undefined; + } + } +} From 86c05f277161e4a294a03c46e14b8fe2242c541d Mon Sep 17 00:00:00 2001 From: MichalKinas Date: Thu, 23 Oct 2025 10:29:10 +0200 Subject: [PATCH 2/3] [ACS-9980] CR fixes --- .../activiti-rest-api/api/integrationSSO.api.ts | 2 +- .../activiti-rest-api/docs/IntegrationSSOApi.md | 12 ++++++------ .../SSOUserAccountCredentialsRepresentation.md | 14 +++++++------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts b/lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts index 02d29f69291..ba615c7c1f1 100644 --- a/lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts +++ b/lib/js-api/src/api/activiti-rest-api/api/integrationSSO.api.ts @@ -16,7 +16,7 @@ */ import { BaseApi } from './base.api'; -import { SSOUserAccountCredentialsRepresentation } from '../model/ssoUserAccountCredentialsRepresentation'; +import { SSOUserAccountCredentialsRepresentation } from '../model'; /** * IntegrationSSOApi service. diff --git a/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md b/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md index a15d085b7b0..4a43ef95f0b 100644 --- a/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md +++ b/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md @@ -2,9 +2,9 @@ All URIs are relative to */activiti-app/api* -Method | HTTP request | Description -------------- | ------------- | ------------- -[**getAccountInformation**](IntegrationSSOApi.md#getAccountInformation) | **GET** /api/enterprise/integration/sso/{repositoryId}/account | Get account information +| Method | HTTP request | Description | +|------------------------------------------------------------------------ | -------------------------------------------------------------- | ----------------------| +| [**getAccountInformation**](#getAccountInformation) | **GET** /api/enterprise/integration/sso/{repositoryId}/account | Get account information | ## getAccountInformation @@ -32,9 +32,9 @@ integrationSSOApi.getAccountInformation('1').then(() => { ``` ### Parameters -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **repositoryId** | **string**| Alfresco Repository instance ID configured in APS | +| Name | Type | Description | Notes | +|----------------- | ---------- | ------------------------------------------------- | ----- | +| **repositoryId** | **string** | Alfresco Repository instance ID configured in APS | | ### Return type diff --git a/lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md b/lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md index 241ccab527f..6854bb79a18 100644 --- a/lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md +++ b/lib/js-api/src/api/activiti-rest-api/docs/SSOUserAccountCredentialsRepresentation.md @@ -1,10 +1,10 @@ # SSOUserAccountCredentialsRepresentation ## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**authenticationURL** | **string** | Authentication URL that can be used to establish a session between IdP and APS | -**expireDate** | [**Date**](Date.md) | APS token expiry date | -**name** | **string** | User account name | -**ownerEmail** | **string** | User account owner email | -**repositoryId** | **number** | Alfresco repository ID | +| Name | Type | Description | Notes | +|---------------------- | ---------- | ------------------------------------------------------------------------------ | ----- | +| **authenticationURL** | **string** | Authentication URL that can be used to establish a session between IdP and APS | | +| **expireDate** | **Date** | APS token expiry date | | +| **name** | **string** | User account name | | +| **ownerEmail** | **string** | User account owner email | | +| **repositoryId** | **number** | Alfresco repository ID | | From 5b616e96172949fd1fa9ff76aabd3ad87e942f72 Mon Sep 17 00:00:00 2001 From: MichalKinas Date: Thu, 23 Oct 2025 11:58:22 +0200 Subject: [PATCH 3/3] [ACS-9980] CR fix --- lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md b/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md index 4a43ef95f0b..8c1e158e793 100644 --- a/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md +++ b/lib/js-api/src/api/activiti-rest-api/docs/IntegrationSSOApi.md @@ -7,7 +7,7 @@ All URIs are relative to */activiti-app/api* | [**getAccountInformation**](#getAccountInformation) | **GET** /api/enterprise/integration/sso/{repositoryId}/account | Get account information | -## getAccountInformation +## getAccountInformation Returns account information.