Compare commits

...
12 changed files with 479 additions and 275 deletions
+2 -1
View File
@@ -17,6 +17,7 @@
"booleanvisibility",
"booleanvisibilityprocess",
"boolitem",
"BPMECM",
"BPMHOST",
"cardview",
"checkboxes",
@@ -142,7 +143,7 @@
"Whitespaces",
"xdescribe",
"xsrf",
"BPMECM"
"zipfile"
],
"dictionaries": [
"html",
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -156,12 +156,12 @@ adf-cli docker --target "link" --dockerRepo "${docker_repository}" --dockerTags
The following command is in charge of Initializing the activiti cloud env with the default apps:
```bash
adf-cli init-aae-env --host "gateway_env" --oauth "identity_env" --identityHost "identity_env" --modelerUsername "modelerusername" --modelerPassword "modelerpassword" --devopsUsername "devopsusername" --devopsPassword "devopspassword"
adf-cli init-aae-env --host "gateway_env" --oauth "identity_env" --identityHost "identity_env" --modelerUsername "modelerusername" --modelerPassword "modelerpassword" --devopsUsername "devopsusername" --devopsPassword "devopspassword" --appsRepository "repository with default apps name"
```
You can also specify the environment ids of the envs where to deploy the app adding the `--envs` option:
```bash
adf-cli init-aae-env --host "gateway_env" --oauth "identity_env" --identityHost "identity_env" --modelerUsername "modelerusername" --modelerPassword "modelerpassword" --devopsUsername "devopsusername" --devopsPassword "devopspassword" --envs envId1 envId2
adf-cli init-aae-env --host "gateway_env" --oauth "identity_env" --identityHost "identity_env" --modelerUsername "modelerusername" --modelerPassword "modelerpassword" --devopsUsername "devopsusername" --devopsPassword "devopspassword" --envs envId1 envId2 --appsRepository "repository with default apps name"
```
If you want to add a new app the schema needs to be:
@@ -0,0 +1,50 @@
import AdmZip from 'adm-zip';
import path from 'path';
import { Octokit } from "@octokit/rest";
export class GitHubRepoUtils {
private repo: string;
private subfolderName: string;
private octokit: Octokit;
constructor(token: string, repo: string) {
this.octokit = new Octokit({
auth: `token ${token}`,
baseUrl: 'https://api.github.com',
})
this.repo = repo;
}
async downloadAndUnpackRepository(owner: string, branch = 'main'): Promise<void> {
try {
const response = await this.octokit.repos.downloadZipballArchive({
repo: this.repo,
owner,
ref: branch,
})
const parsedResponse = Buffer.from(<ArrayBuffer>response.data);
const zippedRepo = new AdmZip(parsedResponse);
this.subfolderName = (zippedRepo.getEntries().find(entry => entry.entryName.includes(owner))).entryName;
zippedRepo.extractAllTo(this.repo, true);
} catch (error) {
throw new Error(`Failed to download repository: ${error}`);
}
}
async zipNeededApplication(appName: string): Promise<string> {
const pathToZip = path.resolve(`${process.cwd()}/${this.repo}`, `${appName}.zip`);
try {
const zip = new AdmZip();
zip.addLocalFolder(`${process.cwd()}/${this.repo}/${this.subfolderName}${appName}`);
await zip.writeZipPromise(pathToZip);
return pathToZip;
} catch (e) {
throw Error(`Error during zipping app ${e}`)
}
}
}
+38 -69
View File
@@ -18,11 +18,12 @@
*/
import program from 'commander';
import fetch from 'node-fetch';
import * as fs from 'fs';
import { logger } from './logger';
import { AlfrescoApi, AlfrescoApiConfig } from '@alfresco/js-api';
import { argv, exit } from 'node:process';
import { GitHubRepoUtils } from './github-folder-downloader';
const ACTIVITI_CLOUD_APPS = require('./resources').ACTIVITI_CLOUD_APPS;
let alfrescoJsApiModeler: AlfrescoApi;
@@ -42,6 +43,9 @@ export interface ConfigArgs {
host: string;
tag: string;
envs: string[];
ghToken: string;
branch: string;
appsRepository: string;
}
export const AAE_MICROSERVICES = ['deployment-service', 'modeling-service', 'dmn-service'];
@@ -94,7 +98,6 @@ async function healthCheck(nameService: string) {
*/
async function getApplications(): Promise<{ list: { entries: any[] } }> {
const url = `${args.host}/deployment-service/v1/applications`;
const pathParams = {};
const queryParams = {};
const headerParams = {};
@@ -105,8 +108,7 @@ async function getApplications(): Promise<{ list: { entries: any[] } }> {
try {
await alfrescoJsApiDevops.login(args.devopsUsername, args.devopsPassword);
const result = alfrescoJsApiDevops.oauth2Auth.callCustomApi(
const result = await alfrescoJsApiDevops.oauth2Auth.callCustomApi(
url,
'GET',
pathParams,
@@ -117,12 +119,10 @@ async function getApplications(): Promise<{ list: { entries: any[] } }> {
contentTypes,
accepts
);
result.on('error', (error) => {
logger.error(`Get application by status ${error} `);
});
// logger.info(result)
return result;
} catch (error) {
logger.error(`Get application by status ${error.status} `);
logger.error(`Get application by status ${JSON.stringify(error)} `);
isValid = false;
return null;
}
@@ -312,7 +312,6 @@ function deleteProject(projectId: string) {
*/
async function importAndReleaseProject(absoluteFilePath: string) {
const fileContent = fs.createReadStream(absoluteFilePath);
try {
const project = await alfrescoJsApiModeler.oauth2Auth.callCustomApi(
`${args.host}/modeling-service/v1/projects/import`,
@@ -340,7 +339,7 @@ async function importAndReleaseProject(absoluteFilePath: string) {
['application/json']
);
} catch (error) {
logger.error(`Not able to import the project/create the release ${absoluteFilePath} with status: ${error}`);
logger.error(`Not able to import the project/create the release with status: ${JSON.stringify(error)}`);
isValid = false;
throw error;
}
@@ -464,7 +463,7 @@ function getAlfrescoJsApiInstance(configArgs: ConfigArgs): AlfrescoApi {
* @param tag tag
* @param envs environments
*/
async function deployMissingApps(tag?: string, envs?: string[]) {
async function deployMissingApps(envs: any) {
const deployedApps = await getApplications();
const failingApps = findFailingApps(deployedApps.list.entries);
const missingApps = findMissingApps(deployedApps.list.entries);
@@ -479,7 +478,7 @@ async function deployMissingApps(tag?: string, envs?: string[]) {
exit(1);
} else if (missingApps.length > 0) {
logger.warn(`Missing apps: ${JSON.stringify(missingApps)}`);
await checkIfAppIsReleased(missingApps, tag, envs);
await checkIfAppIsReleased(missingApps, envs);
} else {
const reset = '\x1b[0m';
const green = '\x1b[32m';
@@ -494,22 +493,25 @@ async function deployMissingApps(tag?: string, envs?: string[]) {
* @param tag tag
* @param envs environments
*/
async function checkIfAppIsReleased(missingApps: any[], tag?: string, envs?: string[]) {
async function checkIfAppIsReleased(missingApps: any[], envs: any) {
const projectList = await getProjects();
let TIME = 5000;
let noError = true;
const gitHubRepoUtils = new GitHubRepoUtils(envs.ghToken, envs.appsRepository);
await gitHubRepoUtils.downloadAndUnpackRepository('HylandSoftware', envs.branch);
for (let i = 0; i < missingApps.length; i++) {
noError = true;
const currentAbsentApp = missingApps[i];
const project = projectList.list.entries.find((currentApp: any) => currentAbsentApp.name === currentApp.entry.name);
let projectRelease: any;
if (project === undefined) {
logger.warn('Missing project: Create the project for ' + currentAbsentApp.name);
try {
projectRelease = await importProjectAndRelease(currentAbsentApp, tag);
projectRelease = await importProjectAndRelease(currentAbsentApp, gitHubRepoUtils);
} catch (error) {
logger.info(`error status ${error.status}`);
@@ -530,7 +532,7 @@ async function checkIfAppIsReleased(missingApps: any[], tag?: string, envs?: str
if (projectReleaseList.list.entries.length === 0) {
logger.warn('Project needs release');
projectRelease = await releaseProject(project);
projectRelease = await releaseProject(project.entry.id);
logger.warn(`Project released: ${projectRelease.id}`);
} else {
logger.info('Project already has release');
@@ -558,6 +560,7 @@ async function checkIfAppIsReleased(missingApps: any[], tag?: string, envs?: str
await deployWithPayload(currentAbsentApp, projectRelease);
}
}
}
}
@@ -611,16 +614,11 @@ async function checkDescriptorExist(name: string): Promise<boolean> {
* @param app application
* @param tag tag
*/
async function importProjectAndRelease(app: any, tag?: string) {
const appLocationReplaced = app.file_location(tag);
logger.warn('App fileLocation ' + appLocationReplaced);
await getFileFromRemote(appLocationReplaced, app.name);
async function importProjectAndRelease(app: any, gitHubRepoUtils: GitHubRepoUtils) {
const pathToApp = await gitHubRepoUtils.zipNeededApplication(app.name)
const projectRelease = await importAndReleaseProject(pathToApp)
logger.warn('Project imported ' + app.name);
const projectRelease = await importAndReleaseProject(`${app.name}.zip`);
await deleteLocalFile(`${app.name}`);
return projectRelease;
}
@@ -666,48 +664,6 @@ function findFailingApps(deployedApps: any[]): any[] {
return result;
}
/**
* Get file from the remote
*
* @param url url to file
* @param name name
*/
async function getFileFromRemote(url: string, name: string): Promise<void> {
return fetch(url)
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
return response;
})
.then((response) => new Promise<void>((resolve, reject) => {
const outputFile = fs.createWriteStream(`${name}.zip`);
response.body.pipe(outputFile);
outputFile.on('finish', () => {
logger.info(`The file is finished downloading.`);
resolve();
});
outputFile.on('error', (error) => {
logger.error(`Not possible to download the project form remote`);
reject(error);
});
}))
.catch((error) => {
logger.error(`Failed to fetch file from remote: ${error.message}`);
throw error;
});
}
/**
* Deletes local file
*
* @param name file name
*/
async function deleteLocalFile(name: string) {
logger.info(`Deleting local file ${name}.zip`);
fs.unlinkSync(`${name}.zip`);
}
/**
* Perform a timeout
*
@@ -728,7 +684,7 @@ export default async function main() {
.version('0.1.0')
.description(
'The following command is in charge of Initializing the activiti cloud env with the default apps' +
'adf-cli init-aae-env --host "gateway_env" --modelerUsername "modelerusername" --modelerPassword "modelerpassword" --devopsUsername "devevopsusername" --devopsPassword "devopspassword"'
'adf-cli init-aae-env --host "gateway_env" --modelerUsername "modelerusername" --modelerPassword "modelerpassword" --devopsUsername "devevopsusername" --devopsPassword "devopspassword" --ghToken "GitHub Token" --appsRepository "repositoryName"'
)
.option('-h, --host [type]', 'Host gateway')
.option('--oauth [type]', 'SSO host')
@@ -742,6 +698,9 @@ export default async function main() {
.option('--devopsPassword [type]', 'devops password')
.option('--tag [type]', 'tag name of the codebase')
.option('--envs [type...]', 'environment ids of the envs where to deploy the app')
.option('--ghToken [type]', 'GitHub token to retrieve the private repo')
.option('--branch [type]', 'target branch of GitHub repository with the default apps. Default main')
.option('--appsRepository [type]', 'GitHub repository with the apps')
.parse(argv);
if (argv.includes('-h') || argv.includes('--help')) {
@@ -763,7 +722,10 @@ export default async function main() {
scope: options.scope,
secret: options.secret,
tag: options.tag,
envs: options.envs
envs: options.envs,
ghToken: options.ghToken,
branch: options.branch,
appsRepository: options.appsRepository
};
alfrescoJsApiModeler = getAlfrescoJsApiInstance(args);
@@ -799,9 +761,16 @@ export default async function main() {
}
);
await deployMissingApps(args.tag, args.envs);
await deployMissingApps(args);
const pathToRepositoryWithApps = `${process.cwd()}/${args.appsRepository}`;
if (fs.existsSync(pathToRepositoryWithApps)) {
fs.rmSync(pathToRepositoryWithApps, { force: true, recursive: true });
}
} else {
logger.error('The environment is not up');
exit(1);
}
}
main()
+184 -188
View File
@@ -19,196 +19,192 @@
/* eslint-disable @typescript-eslint/naming-convention */
export const ACTIVITI_CLOUD_APPS: any = {
SUB_PROCESS_APP: {
name: 'subprocessapp',
file_location: (TAG = 'develop') => `https://github.com/Alfresco/alfresco-ng2-components/blob/${TAG}/e2e/resources/activiti7/subprocessapp.zip?raw=true`,
processes: {
processchild: 'processchild',
processparent: 'processparent'
},
security: [
{ role: 'APPLICATION_MANAGER', groups: [], users: ['manageruser'] },
{ role: 'ACTIVITI_ADMIN', groups: [], users: ['superadminuser'] },
{ role: 'ACTIVITI_USER', groups: ['hr', 'testgroup'], users: ['hruser'] }
]
},
CANDIDATE_BASE_APP: {
name: 'candidatebaseapp',
file_location: (TAG = 'develop') => `https://github.com/Alfresco/alfresco-ng2-components/blob/${TAG}/e2e/resources/activiti7/candidatebaseapp.zip?raw=true`,
processes: {
candidateUserProcess: 'candidateuserprocess',
candidateGroupProcess: 'candidategroupprocess',
anotherCandidateGroupProcess: 'anothercandidategroup',
uploadFileProcess: 'uploadfileprocess',
processwithstarteventform: 'processwithstarteventform',
processwithjsonfilemapping: 'processwithjsonfilemapping',
assigneeProcess: 'assigneeprocess',
errorStartEventProcess: {
process_name: 'errorstartevent',
error_id: 'Error_END_EVENT',
error_code: '123'
},
errorBoundaryEventProcess: {
process_name: 'errorboundaryevent',
error_id: 'Error_END_EVENT',
error_code: '567'
},
errorExclusiveGateProcess: {
process_name: 'errorexclusivegate',
error_id: 'Error_OK',
error_code: '200'
}
},
forms: {
starteventform: 'starteventform',
formtotestvalidations: 'formtotestvalidations',
uploadfileform: 'uploadfileform',
inputform: 'inputform',
outputform: 'outputform'
},
security: [
{ role: 'APPLICATION_MANAGER', groups: [], users: ['manageruser'] },
{ role: 'ACTIVITI_ADMIN', groups: [], users: ['superadminuser', 'processadminuser'] },
{ role: 'ACTIVITI_USER', groups: ['hr', 'testgroup'], users: ['hruser', 'salesuser'] }
],
tasks: {
uploadFileTask: 'UploadFileTask',
candidateUserTask: 'candidateUserTask'
}
},
SIMPLE_APP: {
name: 'simpleapp',
file_location: (TAG = 'develop') => `https://github.com/Alfresco/alfresco-ng2-components/blob/${TAG}/e2e/resources/activiti7/simpleapp.zip?raw=true`,
processes: {
processwithvariables: 'processwithvariables',
simpleProcess: 'simpleprocess',
dropdownrestprocess: 'dropdownrestprocess',
multilingualprocess: 'multilingualprocess',
processWithTabVisibility: 'processwithtabvisibility',
startmessageevent: 'start-message-event',
intermediatemessageevent: 'intermediate-message-event',
intboundaryevent: 'int-boundary-event',
nonintboundaryevent: 'nonint-boundary-event',
intboundarysubprocess: 'int-boundary-subprocess',
intstartmessageevent: 'int-start-message-event',
nonintstartmessageevent: 'nonint-start-message-event',
siblingtaskprocess: 'siblingtaskprocess',
startTaskVisibilityForm: 'start-task-visibility-form',
startVisibilityForm: 'start-visibility-form',
processstring: 'processstring',
processinteger: 'processinteger',
processboolean: 'processboolean',
processdate: 'processdate',
multiprocess: 'multiprocess',
terminateexclusive: 'terminate-exclusive',
terminatesubprocess: 'terminate-subprocess',
multiinstancedmnparallel: 'multiinstance-dmnparallel',
multiinstancecallactivity: 'multiinstance-callactivity',
multiinstancecollection: 'multiinstance-collection',
multiinstancecompletion: 'multiinstance-completion',
multiinstancesequential: 'multiinstance-sequential',
multiinstanceservicetask: 'multiinstance-servicetask',
multiinstanceusertask: 'multiinstance-usertask',
multiinstancedmnsequence: 'multiinstance-dmnsequence',
multiinstancemanualtask: 'multiinstance-manualtask',
multiinstancesubprocess: 'multiinstance-subprocess',
calledprocess: 'calledprocess',
booleanvisibilityprocess: 'booleanvisibilityprocess',
numbervisibilityprocess: 'numbervisibilityprocess',
processformoutcome: 'outcomebuttons',
uploadSingleMultipleFiles: 'upload-single-multiple-pro',
processDisplayRestJson: 'process-display-rest-json',
poolStartEndMessageThrow: 'pool-start-end-mess-throw',
poolStartEndMessageCatch: 'pool-start-end-mess-catch',
poolProcessCalled: 'pool-process-called',
poolProcessCalling: 'pool-process-calling',
poolNonIntBoundaryThrown: 'pool-nonint-boundary-throw',
poolNonIntBoundaryCatch: 'pool-nonint-boundary-catch',
poolIntermediateMessageThrow: 'pool-interm-message-throw',
poolIntermediateMessageCatch: 'pool-interm-message-catch',
poolInterruptingBoundarySubprocessThrow: 'pool-int-bound-subpr-throw',
poolInterruptingBoundarySubprocessCatch: 'pool-int-bound-subpr-catch',
poolInterruptingBoundaryThrow: 'pool-int-boundary-throw',
poolInterruptingBoundaryCatch: 'pool-int-boundary-catch',
outputVariablesMapping: 'output-variables-mapping'
},
forms: {
tabVisibilityFields: {
name: 'tabvisibilitywithfields'
},
tabVisibilityVars: {
name: 'tabvisibilitywithvars'
},
usertaskform: {
name: 'usertaskform'
},
dropdownform: {
name: 'dropdownform'
},
formVisibility: {
name: 'form-visibility'
},
multilingualform: {
name: 'multilingualform'
},
inputform: {
name: 'inputform'
},
outputform: {
name: 'outputform'
},
exclusiveconditionform: {
name: 'exclusive-condition-form'
},
uploadlocalfileform: {
name: 'upload-localfile-form'
},
booleanvisibility: {
name: 'booleanvisibility'
},
requirednumbervisibility: {
name: 'requirednumbervisibility'
},
mealform: {
name: 'mealform'
},
resultcollectionform: {
name: 'resultcollectionform'
},
uploadSingleMultiple: {
name: 'upload-single-multiple',
widgets: {
contentMultipleAttachFileId: 'UploadMultipleFileFromContentId'
}
},
formWithJsonWidget: {
name: 'form-with-json-widget'
},
formWithAllWidgets: {
name: 'form-with-all-widgets'
},
poolForm: {
name: 'pool-usertaskform'
},
formWithSingleInput: {
name: 'form-with-single-input'
}
},
tasks: {
processstring: 'inputtask',
uploadSingleMultipleFiles: 'UploadSingleMultipleFiles'
},
security: [
{ role: 'APPLICATION_MANAGER', groups: [], users: ['manageruser'] },
{ role: 'ACTIVITI_ADMIN', groups: [], users: ['superadminuser', 'processadminuser'] },
{ role: 'ACTIVITI_USER', groups: ['hr', 'sales', 'testgroup'], users: ['hruser'] }
],
infrastructure: { connectors: { restconnector: {} }, bridges: {} },
enableLocalDevelopment: true
},
// SUB_PROCESS_APP: {
// name: 'subprocessapp',
// processes: {
// processchild: 'processchild',
// processparent: 'processparent'
// },
// security: [
// { role: 'APPLICATION_MANAGER', groups: [], users: ['manageruser'] },
// { role: 'ACTIVITI_ADMIN', groups: [], users: ['superadminuser'] },
// { role: 'ACTIVITI_USER', groups: ['hr', 'testgroup'], users: ['hruser'] }
// ]
// },
// CANDIDATE_BASE_APP: {
// name: 'candidatebaseapp',
// processes: {
// candidateUserProcess: 'candidateuserprocess',
// candidateGroupProcess: 'candidategroupprocess',
// anotherCandidateGroupProcess: 'anothercandidategroup',
// uploadFileProcess: 'uploadfileprocess',
// processwithstarteventform: 'processwithstarteventform',
// processwithjsonfilemapping: 'processwithjsonfilemapping',
// assigneeProcess: 'assigneeprocess',
// errorStartEventProcess: {
// process_name: 'errorstartevent',
// error_id: 'Error_END_EVENT',
// error_code: '123'
// },
// errorBoundaryEventProcess: {
// process_name: 'errorboundaryevent',
// error_id: 'Error_END_EVENT',
// error_code: '567'
// },
// errorExclusiveGateProcess: {
// process_name: 'errorexclusivegate',
// error_id: 'Error_OK',
// error_code: '200'
// }
// },
// forms: {
// starteventform: 'starteventform',
// formtotestvalidations: 'formtotestvalidations',
// uploadfileform: 'uploadfileform',
// inputform: 'inputform',
// outputform: 'outputform'
// },
// security: [
// { role: 'APPLICATION_MANAGER', groups: [], users: ['manageruser'] },
// { role: 'ACTIVITI_ADMIN', groups: [], users: ['superadminuser', 'processadminuser'] },
// { role: 'ACTIVITI_USER', groups: ['hr', 'testgroup'], users: ['hruser', 'salesuser'] }
// ],
// tasks: {
// uploadFileTask: 'UploadFileTask',
// candidateUserTask: 'candidateUserTask'
// }
// },
// SIMPLE_APP: {
// name: 'simpleapp',
// processes: {
// processwithvariables: 'processwithvariables',
// simpleProcess: 'simpleprocess',
// dropdownrestprocess: 'dropdownrestprocess',
// multilingualprocess: 'multilingualprocess',
// processWithTabVisibility: 'processwithtabvisibility',
// startmessageevent: 'start-message-event',
// intermediatemessageevent: 'intermediate-message-event',
// intboundaryevent: 'int-boundary-event',
// nonintboundaryevent: 'nonint-boundary-event',
// intboundarysubprocess: 'int-boundary-subprocess',
// intstartmessageevent: 'int-start-message-event',
// nonintstartmessageevent: 'nonint-start-message-event',
// siblingtaskprocess: 'siblingtaskprocess',
// startTaskVisibilityForm: 'start-task-visibility-form',
// startVisibilityForm: 'start-visibility-form',
// processstring: 'processstring',
// processinteger: 'processinteger',
// processboolean: 'processboolean',
// processdate: 'processdate',
// multiprocess: 'multiprocess',
// terminateexclusive: 'terminate-exclusive',
// terminatesubprocess: 'terminate-subprocess',
// multiinstancedmnparallel: 'multiinstance-dmnparallel',
// multiinstancecallactivity: 'multiinstance-callactivity',
// multiinstancecollection: 'multiinstance-collection',
// multiinstancecompletion: 'multiinstance-completion',
// multiinstancesequential: 'multiinstance-sequential',
// multiinstanceservicetask: 'multiinstance-servicetask',
// multiinstanceusertask: 'multiinstance-usertask',
// multiinstancedmnsequence: 'multiinstance-dmnsequence',
// multiinstancemanualtask: 'multiinstance-manualtask',
// multiinstancesubprocess: 'multiinstance-subprocess',
// calledprocess: 'calledprocess',
// booleanvisibilityprocess: 'booleanvisibilityprocess',
// numbervisibilityprocess: 'numbervisibilityprocess',
// processformoutcome: 'outcomebuttons',
// uploadSingleMultipleFiles: 'upload-single-multiple-pro',
// processDisplayRestJson: 'process-display-rest-json',
// poolStartEndMessageThrow: 'pool-start-end-mess-throw',
// poolStartEndMessageCatch: 'pool-start-end-mess-catch',
// poolProcessCalled: 'pool-process-called',
// poolProcessCalling: 'pool-process-calling',
// poolNonIntBoundaryThrown: 'pool-nonint-boundary-throw',
// poolNonIntBoundaryCatch: 'pool-nonint-boundary-catch',
// poolIntermediateMessageThrow: 'pool-interm-message-throw',
// poolIntermediateMessageCatch: 'pool-interm-message-catch',
// poolInterruptingBoundarySubprocessThrow: 'pool-int-bound-subpr-throw',
// poolInterruptingBoundarySubprocessCatch: 'pool-int-bound-subpr-catch',
// poolInterruptingBoundaryThrow: 'pool-int-boundary-throw',
// poolInterruptingBoundaryCatch: 'pool-int-boundary-catch',
// outputVariablesMapping: 'output-variables-mapping'
// },
// forms: {
// tabVisibilityFields: {
// name: 'tabvisibilitywithfields'
// },
// tabVisibilityVars: {
// name: 'tabvisibilitywithvars'
// },
// usertaskform: {
// name: 'usertaskform'
// },
// dropdownform: {
// name: 'dropdownform'
// },
// formVisibility: {
// name: 'form-visibility'
// },
// multilingualform: {
// name: 'multilingualform'
// },
// inputform: {
// name: 'inputform'
// },
// outputform: {
// name: 'outputform'
// },
// exclusiveconditionform: {
// name: 'exclusive-condition-form'
// },
// uploadlocalfileform: {
// name: 'upload-localfile-form'
// },
// booleanvisibility: {
// name: 'booleanvisibility'
// },
// requirednumbervisibility: {
// name: 'requirednumbervisibility'
// },
// mealform: {
// name: 'mealform'
// },
// resultcollectionform: {
// name: 'resultcollectionform'
// },
// uploadSingleMultiple: {
// name: 'upload-single-multiple',
// widgets: {
// contentMultipleAttachFileId: 'UploadMultipleFileFromContentId'
// }
// },
// formWithJsonWidget: {
// name: 'form-with-json-widget'
// },
// formWithAllWidgets: {
// name: 'form-with-all-widgets'
// },
// poolForm: {
// name: 'pool-usertaskform'
// },
// formWithSingleInput: {
// name: 'form-with-single-input'
// }
// },
// tasks: {
// processstring: 'inputtask',
// uploadSingleMultipleFiles: 'UploadSingleMultipleFiles'
// },
// security: [
// { role: 'APPLICATION_MANAGER', groups: [], users: ['manageruser'] },
// { role: 'ACTIVITI_ADMIN', groups: [], users: ['superadminuser', 'processadminuser'] },
// { role: 'ACTIVITI_USER', groups: ['hr', 'sales', 'testgroup'], users: ['hruser'] }
// ],
// infrastructure: { connectors: { restconnector: {} }, bridges: {} },
// enableLocalDevelopment: true
// },
UAT_BE_DEFAULT_APP: {
name: 'uat-be-default-app',
file_location: (TAG = 'develop') => `https://github.com/Alfresco/alfresco-ng2-components/blob/${TAG}/e2e/resources/activiti7/uat-be-default-app.zip?raw=true`,
processes: {
'script-acs-process': 'script-acs-process'
},
+201 -15
View File
@@ -71,6 +71,7 @@
"@nrwl/node": "14.5.4",
"@nrwl/storybook": "14.8.9",
"@nrwl/workspace": "14.8.9",
"@octokit/rest": "^20.0.2",
"@paperist/types-remark": "0.1.3",
"@playwright/test": "^1.35.1",
"@quanzo/change-font-size": "1.0.0",
@@ -93,6 +94,7 @@
"@typescript-eslint/eslint-plugin": "5.59.8",
"@typescript-eslint/parser": "5.62.0",
"@typescript-eslint/typescript-estree": "6.7.0",
"adm-zip": "^0.5.10",
"ajv": "^8.12.0",
"commander": "6.2.1",
"css-loader": "^6.8.1",
@@ -10880,6 +10882,161 @@
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"node_modules/@octokit/auth-token": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz",
"integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==",
"dev": true,
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/core": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.0.2.tgz",
"integrity": "sha512-cZUy1gUvd4vttMic7C0lwPed8IYXWYp8kHIMatyhY8t8n3Cpw2ILczkV5pGMPqef7v0bLo0pOHrEHarsau2Ydg==",
"dev": true,
"dependencies": {
"@octokit/auth-token": "^4.0.0",
"@octokit/graphql": "^7.0.0",
"@octokit/request": "^8.0.2",
"@octokit/request-error": "^5.0.0",
"@octokit/types": "^12.0.0",
"before-after-hook": "^2.2.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/endpoint": {
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz",
"integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==",
"dev": true,
"dependencies": {
"@octokit/types": "^12.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/graphql": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz",
"integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==",
"dev": true,
"dependencies": {
"@octokit/request": "^8.0.1",
"@octokit/types": "^12.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/openapi-types": {
"version": "19.1.0",
"resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-19.1.0.tgz",
"integrity": "sha512-6G+ywGClliGQwRsjvqVYpklIfa7oRPA0vyhPQG/1Feh+B+wU0vGH1JiJ5T25d3g1JZYBHzR2qefLi9x8Gt+cpw==",
"dev": true
},
"node_modules/@octokit/plugin-paginate-rest": {
"version": "9.1.5",
"resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.1.5.tgz",
"integrity": "sha512-WKTQXxK+bu49qzwv4qKbMMRXej1DU2gq017euWyKVudA6MldaSSQuxtz+vGbhxV4CjxpUxjZu6rM2wfc1FiWVg==",
"dev": true,
"dependencies": {
"@octokit/types": "^12.4.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@octokit/core": ">=5"
}
},
"node_modules/@octokit/plugin-request-log": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.0.tgz",
"integrity": "sha512-2uJI1COtYCq8Z4yNSnM231TgH50bRkheQ9+aH8TnZanB6QilOnx8RMD2qsnamSOXtDj0ilxvevf5fGsBhBBzKA==",
"dev": true,
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@octokit/core": ">=5"
}
},
"node_modules/@octokit/plugin-rest-endpoint-methods": {
"version": "10.2.0",
"resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.2.0.tgz",
"integrity": "sha512-ePbgBMYtGoRNXDyKGvr9cyHjQ163PbwD0y1MkDJCpkO2YH4OeXX40c4wYHKikHGZcpGPbcRLuy0unPUuafco8Q==",
"dev": true,
"dependencies": {
"@octokit/types": "^12.3.0"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"@octokit/core": ">=5"
}
},
"node_modules/@octokit/request": {
"version": "8.1.6",
"resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.1.6.tgz",
"integrity": "sha512-YhPaGml3ncZC1NfXpP3WZ7iliL1ap6tLkAp6MvbK2fTTPytzVUyUesBBogcdMm86uRYO5rHaM1xIWxigWZ17MQ==",
"dev": true,
"dependencies": {
"@octokit/endpoint": "^9.0.0",
"@octokit/request-error": "^5.0.0",
"@octokit/types": "^12.0.0",
"universal-user-agent": "^6.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/request-error": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz",
"integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==",
"dev": true,
"dependencies": {
"@octokit/types": "^12.0.0",
"deprecation": "^2.0.0",
"once": "^1.4.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/rest": {
"version": "20.0.2",
"resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.0.2.tgz",
"integrity": "sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==",
"dev": true,
"dependencies": {
"@octokit/core": "^5.0.0",
"@octokit/plugin-paginate-rest": "^9.0.0",
"@octokit/plugin-request-log": "^4.0.0",
"@octokit/plugin-rest-endpoint-methods": "^10.0.0"
},
"engines": {
"node": ">= 18"
}
},
"node_modules/@octokit/types": {
"version": "12.4.0",
"resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.4.0.tgz",
"integrity": "sha512-FLWs/AvZllw/AGVs+nJ+ELCDZZJk+kY0zMen118xhL2zD0s1etIUHm1odgjP7epxYU1ln7SZxEUWYop5bhsdgQ==",
"dev": true,
"dependencies": {
"@octokit/openapi-types": "^19.1.0"
}
},
"node_modules/@paperist/types-remark": {
"version": "0.1.3",
"dev": true,
@@ -25991,6 +26148,12 @@
"tweetnacl": "^0.14.3"
}
},
"node_modules/before-after-hook": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz",
"integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==",
"dev": true
},
"node_modules/bent": {
"version": "7.3.12",
"dev": true,
@@ -29953,6 +30116,12 @@
"node": ">= 0.6.0"
}
},
"node_modules/deprecation": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz",
"integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==",
"dev": true
},
"node_modules/dequal": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@@ -30640,9 +30809,10 @@
}
},
"node_modules/envinfo": {
"version": "7.8.1",
"version": "7.11.0",
"resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz",
"integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==",
"dev": true,
"license": "MIT",
"bin": {
"envinfo": "dist/cli.js"
},
@@ -34506,8 +34676,9 @@
},
"node_modules/import-local": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
"integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
"dev": true,
"license": "MIT",
"dependencies": {
"pkg-dir": "^4.2.0",
"resolve-cwd": "^3.0.0"
@@ -34524,8 +34695,9 @@
},
"node_modules/import-local/node_modules/find-up": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
"license": "MIT",
"dependencies": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
@@ -34536,8 +34708,9 @@
},
"node_modules/import-local/node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-locate": "^4.1.0"
},
@@ -34547,8 +34720,9 @@
},
"node_modules/import-local/node_modules/p-limit": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -34561,8 +34735,9 @@
},
"node_modules/import-local/node_modules/p-locate": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
"license": "MIT",
"dependencies": {
"p-limit": "^2.2.0"
},
@@ -34572,8 +34747,9 @@
},
"node_modules/import-local/node_modules/pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"find-up": "^4.0.0"
},
@@ -38991,8 +39167,9 @@
},
"node_modules/jszip": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
"integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
"dev": true,
"license": "(MIT OR GPL-3.0-or-later)",
"dependencies": {
"lie": "~3.3.0",
"pako": "~1.0.2",
@@ -47292,8 +47469,9 @@
},
"node_modules/resolve-cwd": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
"integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
"dev": true,
"license": "MIT",
"dependencies": {
"resolve-from": "^5.0.0"
},
@@ -51691,6 +51869,12 @@
"license": "MIT",
"peer": true
},
"node_modules/universal-user-agent": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz",
"integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==",
"dev": true
},
"node_modules/universalify": {
"version": "2.0.0",
"license": "MIT",
@@ -52744,9 +52928,9 @@
}
},
"node_modules/webpack-cli": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.3.tgz",
"integrity": "sha512-MTuk7NUMvEHQUSXCpvUrF1q2p0FJS40dPFfqQvG3jTWcgv/8plBNz2Kv2HXZiLGPnfmSAA5uCtCILO1JBmmkfw==",
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.2.tgz",
"integrity": "sha512-RI4KfVpjX1qdy5Sq4A1ycCxgTZ2rLLtrTJDBYh3A3DpSSDZ+WP4oBlj/CuD70oXz4wB1WqVjg+lMxH/MPYWb5g==",
"dev": true,
"dependencies": {
"@discoveryjs/json-ext": "^0.5.0",
@@ -52790,16 +52974,18 @@
},
"node_modules/webpack-cli/node_modules/commander": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
"integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=14"
}
},
"node_modules/webpack-cli/node_modules/interpret": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz",
"integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=10.13.0"
}
+2
View File
@@ -121,6 +121,7 @@
"@nrwl/node": "14.5.4",
"@nrwl/storybook": "14.8.9",
"@nrwl/workspace": "14.8.9",
"@octokit/rest": "^20.0.2",
"@paperist/types-remark": "0.1.3",
"@playwright/test": "^1.35.1",
"@quanzo/change-font-size": "1.0.0",
@@ -143,6 +144,7 @@
"@typescript-eslint/eslint-plugin": "5.59.8",
"@typescript-eslint/parser": "5.62.0",
"@typescript-eslint/typescript-estree": "6.7.0",
"adm-zip": "^0.5.10",
"ajv": "^8.12.0",
"commander": "6.2.1",
"css-loader": "^6.8.1",