@fluxo-dev/api-client-base 26.1.1 → 26.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.
- package/index.cjs.js +318 -8
- package/package.json +2 -2
- package/src/lib/auth/auth-service.d.ts +1 -0
- package/src/lib/configuration/configuration.service.d.ts +1 -0
- package/src/lib/printing/models/index.d.ts +1 -0
- package/src/lib/printing/models/update-printer-command.d.ts +4 -0
- package/src/lib/printing/printing.service.d.ts +4 -0
- package/src/lib/reporting/models/print-report-command.d.ts +1 -0
- package/src/lib/security/user/user.d.ts +1 -0
- package/src/lib/workflow/models/etl.models.d.ts +305 -0
- package/src/lib/workflow/models/index.d.ts +330 -11
- package/src/lib/workflow/workflow.service.d.ts +117 -3
- package/src/lib/workflow/models/action-category-definition.d.ts +0 -5
- package/src/lib/workflow/models/action-definition.d.ts +0 -11
- package/src/lib/workflow/models/action-input-definition.d.ts +0 -8
- package/src/lib/workflow/models/action-output-definition.d.ts +0 -4
- package/src/lib/workflow/models/trigger-category-definition.d.ts +0 -5
- package/src/lib/workflow/models/trigger-definition.d.ts +0 -10
- package/src/lib/workflow/models/workflow-action-input-type.d.ts +0 -6
- package/src/lib/workflow/models/workflow-action-input.d.ts +0 -5
- package/src/lib/workflow/models/workflow-action.d.ts +0 -16
- package/src/lib/workflow/models/workflow-trigger.d.ts +0 -11
- package/src/lib/workflow/models/workflow.d.ts +0 -9
package/index.cjs.js
CHANGED
|
@@ -4171,7 +4171,8 @@ class AuthService {
|
|
|
4171
4171
|
userId,
|
|
4172
4172
|
canChangePassword: info.canChangePassword,
|
|
4173
4173
|
canHandle2FA: info.canHandle2FA,
|
|
4174
|
-
canHandleAccessTokens: info.canHandleAccessTokens
|
|
4174
|
+
canHandleAccessTokens: info.canHandleAccessTokens,
|
|
4175
|
+
canDisable2FA: info.canDisable2FA
|
|
4175
4176
|
}, {
|
|
4176
4177
|
withCredentials: true
|
|
4177
4178
|
}).then(() => {
|
|
@@ -5380,26 +5381,335 @@ class PrintingService {
|
|
|
5380
5381
|
AddPrinter(printServerId, command) {
|
|
5381
5382
|
return HttpClient$1.Instance().client.post(`print-server/${printServerId}/virtual-printers`, command);
|
|
5382
5383
|
}
|
|
5384
|
+
UpdatePrinter(printServerId, printerId, command) {
|
|
5385
|
+
return HttpClient$1.Instance().client.put(`print-server/${printServerId}/virtual-printers/${printerId}`, command);
|
|
5386
|
+
}
|
|
5387
|
+
DeletePrinter(printServerId, printerId) {
|
|
5388
|
+
return HttpClient$1.Instance().client.delete(`print-server/${printServerId}/virtual-printers/${printerId}`);
|
|
5389
|
+
}
|
|
5390
|
+
DeletePrintServer(printServerId) {
|
|
5391
|
+
return HttpClient$1.Instance().client.delete(`print-server/${printServerId}`);
|
|
5392
|
+
}
|
|
5383
5393
|
}
|
|
5384
5394
|
|
|
5385
|
-
exports.
|
|
5386
|
-
(function (
|
|
5387
|
-
|
|
5388
|
-
|
|
5389
|
-
|
|
5390
|
-
|
|
5391
|
-
|
|
5395
|
+
exports.BlockConfigFieldType = void 0;
|
|
5396
|
+
(function (BlockConfigFieldType) {
|
|
5397
|
+
BlockConfigFieldType[BlockConfigFieldType["Text"] = 0] = "Text";
|
|
5398
|
+
BlockConfigFieldType[BlockConfigFieldType["TextArea"] = 1] = "TextArea";
|
|
5399
|
+
BlockConfigFieldType[BlockConfigFieldType["Number"] = 2] = "Number";
|
|
5400
|
+
BlockConfigFieldType[BlockConfigFieldType["Boolean"] = 3] = "Boolean";
|
|
5401
|
+
BlockConfigFieldType[BlockConfigFieldType["Select"] = 4] = "Select";
|
|
5402
|
+
BlockConfigFieldType[BlockConfigFieldType["Expression"] = 5] = "Expression";
|
|
5403
|
+
BlockConfigFieldType[BlockConfigFieldType["Secret"] = 6] = "Secret";
|
|
5404
|
+
BlockConfigFieldType[BlockConfigFieldType["KeyValue"] = 7] = "KeyValue";
|
|
5405
|
+
BlockConfigFieldType[BlockConfigFieldType["ObjectMap"] = 8] = "ObjectMap";
|
|
5406
|
+
BlockConfigFieldType[BlockConfigFieldType["Json"] = 9] = "Json";
|
|
5407
|
+
BlockConfigFieldType[BlockConfigFieldType["JsonArray"] = 10] = "JsonArray";
|
|
5408
|
+
BlockConfigFieldType[BlockConfigFieldType["ConnectionString"] = 11] = "ConnectionString";
|
|
5409
|
+
BlockConfigFieldType[BlockConfigFieldType["Sql"] = 12] = "Sql";
|
|
5410
|
+
})(exports.BlockConfigFieldType || (exports.BlockConfigFieldType = {}));
|
|
5411
|
+
exports.DynamicPortType = void 0;
|
|
5412
|
+
(function (DynamicPortType) {
|
|
5413
|
+
DynamicPortType[DynamicPortType["Count"] = 0] = "Count";
|
|
5414
|
+
DynamicPortType[DynamicPortType["ArrayProperty"] = 1] = "ArrayProperty";
|
|
5415
|
+
})(exports.DynamicPortType || (exports.DynamicPortType = {}));
|
|
5416
|
+
exports.PipelineStatus = void 0;
|
|
5417
|
+
(function (PipelineStatus) {
|
|
5418
|
+
PipelineStatus[PipelineStatus["Pending"] = 0] = "Pending";
|
|
5419
|
+
PipelineStatus[PipelineStatus["Running"] = 1] = "Running";
|
|
5420
|
+
PipelineStatus[PipelineStatus["Paused"] = 2] = "Paused";
|
|
5421
|
+
PipelineStatus[PipelineStatus["Completed"] = 3] = "Completed";
|
|
5422
|
+
PipelineStatus[PipelineStatus["Failed"] = 4] = "Failed";
|
|
5423
|
+
PipelineStatus[PipelineStatus["Cancelled"] = 5] = "Cancelled";
|
|
5424
|
+
})(exports.PipelineStatus || (exports.PipelineStatus = {}));
|
|
5425
|
+
exports.NodeExecutionState = void 0;
|
|
5426
|
+
(function (NodeExecutionState) {
|
|
5427
|
+
NodeExecutionState[NodeExecutionState["Pending"] = 0] = "Pending";
|
|
5428
|
+
NodeExecutionState[NodeExecutionState["Running"] = 1] = "Running";
|
|
5429
|
+
NodeExecutionState[NodeExecutionState["Completed"] = 2] = "Completed";
|
|
5430
|
+
NodeExecutionState[NodeExecutionState["Failed"] = 3] = "Failed";
|
|
5431
|
+
NodeExecutionState[NodeExecutionState["Cancelled"] = 4] = "Cancelled";
|
|
5432
|
+
})(exports.NodeExecutionState || (exports.NodeExecutionState = {}));
|
|
5433
|
+
|
|
5434
|
+
// Enum helper per i nomi
|
|
5435
|
+
exports.NodeTypeEnum = void 0;
|
|
5436
|
+
(function (NodeTypeEnum) {
|
|
5437
|
+
NodeTypeEnum[NodeTypeEnum["Action"] = 0] = "Action";
|
|
5438
|
+
NodeTypeEnum[NodeTypeEnum["Parallel"] = 1] = "Parallel";
|
|
5439
|
+
NodeTypeEnum[NodeTypeEnum["Join"] = 2] = "Join";
|
|
5440
|
+
NodeTypeEnum[NodeTypeEnum["While"] = 3] = "While";
|
|
5441
|
+
NodeTypeEnum[NodeTypeEnum["ForEach"] = 4] = "ForEach";
|
|
5442
|
+
NodeTypeEnum[NodeTypeEnum["Schedule"] = 5] = "Schedule";
|
|
5443
|
+
NodeTypeEnum[NodeTypeEnum["Delay"] = 6] = "Delay";
|
|
5444
|
+
NodeTypeEnum[NodeTypeEnum["WaitForEvent"] = 7] = "WaitForEvent";
|
|
5445
|
+
NodeTypeEnum[NodeTypeEnum["Decision"] = 8] = "Decision";
|
|
5446
|
+
NodeTypeEnum[NodeTypeEnum["Start"] = 9] = "Start";
|
|
5447
|
+
NodeTypeEnum[NodeTypeEnum["End"] = 10] = "End";
|
|
5448
|
+
})(exports.NodeTypeEnum || (exports.NodeTypeEnum = {}));
|
|
5449
|
+
exports.ActionInputTypeEnum = void 0;
|
|
5450
|
+
(function (ActionInputTypeEnum) {
|
|
5451
|
+
ActionInputTypeEnum[ActionInputTypeEnum["Manual"] = 0] = "Manual";
|
|
5452
|
+
ActionInputTypeEnum[ActionInputTypeEnum["Expression"] = 1] = "Expression";
|
|
5453
|
+
ActionInputTypeEnum[ActionInputTypeEnum["StepOutput"] = 2] = "StepOutput";
|
|
5454
|
+
ActionInputTypeEnum[ActionInputTypeEnum["Environment"] = 3] = "Environment"; // Variabile ambiente
|
|
5455
|
+
})(exports.ActionInputTypeEnum || (exports.ActionInputTypeEnum = {}));
|
|
5456
|
+
// ============================================================================
|
|
5457
|
+
// Workflow Execution Types
|
|
5458
|
+
// ============================================================================
|
|
5459
|
+
exports.WorkflowStatus = void 0;
|
|
5460
|
+
(function (WorkflowStatus) {
|
|
5461
|
+
WorkflowStatus[WorkflowStatus["Runnable"] = 0] = "Runnable";
|
|
5462
|
+
WorkflowStatus[WorkflowStatus["Suspended"] = 1] = "Suspended";
|
|
5463
|
+
WorkflowStatus[WorkflowStatus["Complete"] = 2] = "Complete";
|
|
5464
|
+
WorkflowStatus[WorkflowStatus["Terminated"] = 3] = "Terminated"; // Terminata (con o senza errori)
|
|
5465
|
+
})(exports.WorkflowStatus || (exports.WorkflowStatus = {}));
|
|
5466
|
+
exports.PointerStatus = void 0;
|
|
5467
|
+
(function (PointerStatus) {
|
|
5468
|
+
PointerStatus[PointerStatus["Legacy"] = 0] = "Legacy";
|
|
5469
|
+
PointerStatus[PointerStatus["Pending"] = 1] = "Pending";
|
|
5470
|
+
PointerStatus[PointerStatus["Running"] = 2] = "Running";
|
|
5471
|
+
PointerStatus[PointerStatus["Complete"] = 3] = "Complete";
|
|
5472
|
+
PointerStatus[PointerStatus["Sleeping"] = 4] = "Sleeping";
|
|
5473
|
+
PointerStatus[PointerStatus["WaitingForEvent"] = 5] = "WaitingForEvent";
|
|
5474
|
+
PointerStatus[PointerStatus["Failed"] = 6] = "Failed";
|
|
5475
|
+
PointerStatus[PointerStatus["Compensated"] = 7] = "Compensated";
|
|
5476
|
+
PointerStatus[PointerStatus["Cancelled"] = 8] = "Cancelled";
|
|
5477
|
+
})(exports.PointerStatus || (exports.PointerStatus = {}));
|
|
5392
5478
|
|
|
5393
5479
|
class WorkflowService {
|
|
5480
|
+
// ============================================================================
|
|
5481
|
+
// ETL Designer Metadata
|
|
5482
|
+
// ============================================================================
|
|
5483
|
+
getEtlBlocks() {
|
|
5484
|
+
return HttpClient$1.Instance().client.get('etl/blocks');
|
|
5485
|
+
}
|
|
5486
|
+
getEtlBlocksGrouped() {
|
|
5487
|
+
return HttpClient$1.Instance().client.get('etl/blocks-grouped');
|
|
5488
|
+
}
|
|
5489
|
+
getEtlBlock(type) {
|
|
5490
|
+
return HttpClient$1.Instance().client.get(`etl/blocks/${type}`);
|
|
5491
|
+
}
|
|
5492
|
+
/**
|
|
5493
|
+
* Ottiene una preview dei dati da un blocco source
|
|
5494
|
+
*/
|
|
5495
|
+
previewBlockSource(request) {
|
|
5496
|
+
return HttpClient$1.Instance().client.post('etl/source/preview', request);
|
|
5497
|
+
}
|
|
5498
|
+
// ============================================================================
|
|
5499
|
+
// Designer Metadata
|
|
5500
|
+
// ============================================================================
|
|
5501
|
+
/**
|
|
5502
|
+
* Ottiene tutte le azioni disponibili organizzate per categoria
|
|
5503
|
+
*/
|
|
5394
5504
|
getActionsDefinition() {
|
|
5395
5505
|
return HttpClient$1.Instance().client.get('workflow/designer/actions');
|
|
5396
5506
|
}
|
|
5507
|
+
/**
|
|
5508
|
+
* Ottiene tutti i trigger disponibili organizzati per categoria
|
|
5509
|
+
*/
|
|
5397
5510
|
getTriggersDefinition() {
|
|
5398
5511
|
return HttpClient$1.Instance().client.get('workflow/designer/triggers');
|
|
5399
5512
|
}
|
|
5513
|
+
// ============================================================================
|
|
5514
|
+
// CRUD Operations
|
|
5515
|
+
// ============================================================================
|
|
5516
|
+
/**
|
|
5517
|
+
* Crea un nuovo workflow
|
|
5518
|
+
*/
|
|
5519
|
+
createWorkflow(request) {
|
|
5520
|
+
return HttpClient$1.Instance().client.post('workflow/workflows', request);
|
|
5521
|
+
}
|
|
5522
|
+
/**
|
|
5523
|
+
* Ottiene un workflow per ID database
|
|
5524
|
+
*/
|
|
5525
|
+
getWorkflowById(id) {
|
|
5526
|
+
return HttpClient$1.Instance().client.get(`workflow/workflows/${id}`);
|
|
5527
|
+
}
|
|
5528
|
+
/**
|
|
5529
|
+
* Ottiene un workflow per WorkflowId
|
|
5530
|
+
*/
|
|
5531
|
+
getWorkflowByWorkflowId(workflowId) {
|
|
5532
|
+
return HttpClient$1.Instance().client.get(`workflow/workflows/by-workflow-id/${workflowId}`);
|
|
5533
|
+
}
|
|
5534
|
+
/**
|
|
5535
|
+
* Ottiene tutti i workflow (summary)
|
|
5536
|
+
*/
|
|
5537
|
+
listWorkflows() {
|
|
5538
|
+
return HttpClient$1.Instance().client.get('workflow/workflows');
|
|
5539
|
+
}
|
|
5540
|
+
/**
|
|
5541
|
+
* Aggiorna un workflow esistente
|
|
5542
|
+
*/
|
|
5543
|
+
updateWorkflow(id, request) {
|
|
5544
|
+
return HttpClient$1.Instance().client.put(`workflow/workflows/${id}`, request);
|
|
5545
|
+
}
|
|
5546
|
+
/**
|
|
5547
|
+
* Elimina un workflow
|
|
5548
|
+
*/
|
|
5549
|
+
deleteWorkflow(id) {
|
|
5550
|
+
return HttpClient$1.Instance().client.delete(`workflow/workflows/${id}`);
|
|
5551
|
+
}
|
|
5552
|
+
/**
|
|
5553
|
+
* Attiva un workflow
|
|
5554
|
+
*/
|
|
5555
|
+
activateWorkflow(id, updatedBy) {
|
|
5556
|
+
return HttpClient$1.Instance().client.post(`workflow/workflows/${id}/activate`, {
|
|
5557
|
+
updatedBy
|
|
5558
|
+
});
|
|
5559
|
+
}
|
|
5560
|
+
/**
|
|
5561
|
+
* Disattiva un workflow
|
|
5562
|
+
*/
|
|
5563
|
+
deactivateWorkflow(id, updatedBy) {
|
|
5564
|
+
return HttpClient$1.Instance().client.post(`workflow/workflows/${id}/deactivate`, {
|
|
5565
|
+
updatedBy
|
|
5566
|
+
});
|
|
5567
|
+
}
|
|
5568
|
+
/**
|
|
5569
|
+
* Avvia un workflow con un trigger specifico
|
|
5570
|
+
* @param workflowId - ID del workflow da avviare
|
|
5571
|
+
* @param triggerId - ID del trigger da utilizzare
|
|
5572
|
+
* @param inputs - Inputs per il trigger (opzionale)
|
|
5573
|
+
*/
|
|
5574
|
+
startWorkflow(workflowId, triggerId, inputs) {
|
|
5575
|
+
const inputSchema = {
|
|
5576
|
+
inputs: []
|
|
5577
|
+
};
|
|
5578
|
+
if (inputs) Object.keys(inputs).forEach(input => {
|
|
5579
|
+
inputSchema.inputs.push({
|
|
5580
|
+
key: `${triggerId}.${input}`,
|
|
5581
|
+
value: inputs[input]
|
|
5582
|
+
});
|
|
5583
|
+
});
|
|
5584
|
+
return HttpClient$1.Instance().client.post(`workflow/workflows-start/${workflowId}`, {
|
|
5585
|
+
inputs: inputSchema.inputs
|
|
5586
|
+
});
|
|
5587
|
+
}
|
|
5588
|
+
/**
|
|
5589
|
+
* Clona un workflow
|
|
5590
|
+
*/
|
|
5591
|
+
cloneWorkflow(id, request) {
|
|
5592
|
+
return HttpClient$1.Instance().client.post(`workflow/workflows/${id}/clone`, request);
|
|
5593
|
+
}
|
|
5594
|
+
// ============================================================================
|
|
5595
|
+
// Validation
|
|
5596
|
+
// ============================================================================
|
|
5597
|
+
/**
|
|
5598
|
+
* Valida uno schema ReactFlow
|
|
5599
|
+
*/
|
|
5600
|
+
validateWorkflow(schema) {
|
|
5601
|
+
return HttpClient$1.Instance().client.post('workflow/designer/validate', schema);
|
|
5602
|
+
}
|
|
5603
|
+
// ============================================================================
|
|
5604
|
+
// Conversion (opzionale, per test/debug)
|
|
5605
|
+
// ============================================================================
|
|
5606
|
+
/**
|
|
5607
|
+
* Converte uno schema ReactFlow in WorkflowCore JSON
|
|
5608
|
+
*/
|
|
5609
|
+
convertToWorkflowCore(schema) {
|
|
5610
|
+
return HttpClient$1.Instance().client.post('workflow/designer/convert/to-workflowcore', schema);
|
|
5611
|
+
}
|
|
5612
|
+
/**
|
|
5613
|
+
* Converte un WorkflowCore JSON in schema ReactFlow
|
|
5614
|
+
*/
|
|
5615
|
+
convertToReactFlow(request) {
|
|
5616
|
+
return HttpClient$1.Instance().client.post('workflow/designer/convert/to-reactflow', request);
|
|
5617
|
+
}
|
|
5618
|
+
// ============================================================================
|
|
5619
|
+
// Legacy (manteniamo per compatibilità)
|
|
5620
|
+
// ============================================================================
|
|
5621
|
+
/**
|
|
5622
|
+
* @deprecated Use validateWorkflow instead
|
|
5623
|
+
*/
|
|
5400
5624
|
test(workflow) {
|
|
5401
5625
|
return HttpClient$1.Instance().client.post('workflow/convert', workflow);
|
|
5402
5626
|
}
|
|
5627
|
+
// ============================================================================
|
|
5628
|
+
// Workflow Executions
|
|
5629
|
+
// ============================================================================
|
|
5630
|
+
/**
|
|
5631
|
+
* Ottiene tutte le esecuzioni di un workflow specifico
|
|
5632
|
+
*/
|
|
5633
|
+
getWorkflowExecutions(workflowId) {
|
|
5634
|
+
return HttpClient$1.Instance().client.get(`workflow/workflows/${workflowId}/executions`);
|
|
5635
|
+
}
|
|
5636
|
+
/**
|
|
5637
|
+
* Ottiene i dettagli completi di un'esecuzione
|
|
5638
|
+
*/
|
|
5639
|
+
getExecutionDetails(instanceId) {
|
|
5640
|
+
return HttpClient$1.Instance().client.get(`workflow/workflows/executions/${instanceId}`);
|
|
5641
|
+
}
|
|
5642
|
+
/**
|
|
5643
|
+
* Ottiene solo gli step di un'esecuzione
|
|
5644
|
+
*/
|
|
5645
|
+
getExecutionSteps(instanceId) {
|
|
5646
|
+
return HttpClient$1.Instance().client.get(`workflow/workflows/executions/${instanceId}/steps`);
|
|
5647
|
+
}
|
|
5648
|
+
/**
|
|
5649
|
+
* Ottiene solo gli errori di un'esecuzione
|
|
5650
|
+
*/
|
|
5651
|
+
getExecutionErrors(instanceId) {
|
|
5652
|
+
return HttpClient$1.Instance().client.get(`workflow/workflows/executions/${instanceId}/errors`);
|
|
5653
|
+
}
|
|
5654
|
+
/**
|
|
5655
|
+
* Termina un'esecuzione in corso
|
|
5656
|
+
*/
|
|
5657
|
+
terminateExecution(instanceId) {
|
|
5658
|
+
return HttpClient$1.Instance().client.post(`workflow/workflows/executions/${instanceId}/terminate`, {});
|
|
5659
|
+
}
|
|
5660
|
+
/**
|
|
5661
|
+
* Sospende un'esecuzione in corso
|
|
5662
|
+
*/
|
|
5663
|
+
suspendExecution(instanceId) {
|
|
5664
|
+
return HttpClient$1.Instance().client.post(`workflow/workflows/executions/${instanceId}/suspend`, {});
|
|
5665
|
+
}
|
|
5666
|
+
/**
|
|
5667
|
+
* Riprende un'esecuzione sospesa
|
|
5668
|
+
*/
|
|
5669
|
+
resumeExecution(instanceId) {
|
|
5670
|
+
return HttpClient$1.Instance().client.post(`workflow/workflows/executions/${instanceId}/resume`, {});
|
|
5671
|
+
}
|
|
5672
|
+
// ============================================================================
|
|
5673
|
+
// ETL Pipelines
|
|
5674
|
+
// ============================================================================
|
|
5675
|
+
saveEtlPipeline(request) {
|
|
5676
|
+
return HttpClient$1.Instance().client.post('etl/pipelines', request);
|
|
5677
|
+
}
|
|
5678
|
+
listEtlPipelines() {
|
|
5679
|
+
return HttpClient$1.Instance().client.get('etl/pipelines');
|
|
5680
|
+
}
|
|
5681
|
+
getEtlPipeline(id) {
|
|
5682
|
+
return HttpClient$1.Instance().client.get(`etl/pipelines/${id}`);
|
|
5683
|
+
}
|
|
5684
|
+
deleteEtlPipeline(id) {
|
|
5685
|
+
return HttpClient$1.Instance().client.delete(`etl/pipelines/${id}`);
|
|
5686
|
+
}
|
|
5687
|
+
executeSavedEtlPipeline(pipelineId, request) {
|
|
5688
|
+
return HttpClient$1.Instance().client.post(`etl/pipelines/${pipelineId}/execute`, request !== null && request !== void 0 ? request : {
|
|
5689
|
+
pipelineId
|
|
5690
|
+
});
|
|
5691
|
+
}
|
|
5692
|
+
getEtlPipelineExecutions(pipelineId) {
|
|
5693
|
+
return HttpClient$1.Instance().client.get(`etl/pipelines/${pipelineId}/executions`);
|
|
5694
|
+
}
|
|
5695
|
+
getEtlExecutionDetails(executionId) {
|
|
5696
|
+
return HttpClient$1.Instance().client.get(`etl/executions/${executionId}`);
|
|
5697
|
+
}
|
|
5698
|
+
getRunningEtlExecutions() {
|
|
5699
|
+
return HttpClient$1.Instance().client.get('etl/executions/running');
|
|
5700
|
+
}
|
|
5701
|
+
stopEtlExecution(executionId) {
|
|
5702
|
+
return HttpClient$1.Instance().client.post(`etl/executions/${executionId}/stop`, {});
|
|
5703
|
+
}
|
|
5704
|
+
validateEtlPipeline(request) {
|
|
5705
|
+
return HttpClient$1.Instance().client.post('etl/validate', request);
|
|
5706
|
+
}
|
|
5707
|
+
executeEtlPipeline(request) {
|
|
5708
|
+
return HttpClient$1.Instance().client.post('etl/execute', request);
|
|
5709
|
+
}
|
|
5710
|
+
dryRunEtlPipeline(request) {
|
|
5711
|
+
return HttpClient$1.Instance().client.post('etl/dry-run', request);
|
|
5712
|
+
}
|
|
5403
5713
|
}
|
|
5404
5714
|
|
|
5405
5715
|
class MailServerService {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluxo-dev/api-client-base",
|
|
3
|
-
"version": "26.1.
|
|
3
|
+
"version": "26.1.3",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"react": "^18.3.1",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"react-router-dom": "^6.11.2",
|
|
9
9
|
"react-redux": "^8.0.5",
|
|
10
10
|
"@reduxjs/toolkit": "^1.9.1",
|
|
11
|
-
"@fluxo-dev/state": "^26.1.
|
|
11
|
+
"@fluxo-dev/state": "^26.1.3"
|
|
12
12
|
},
|
|
13
13
|
"main": "./index.cjs.js",
|
|
14
14
|
"types": "./index.cjs.d.ts"
|
|
@@ -2,6 +2,7 @@ export * from './printer-type';
|
|
|
2
2
|
export * from './virtual-printer';
|
|
3
3
|
export * from './print-server-type';
|
|
4
4
|
export * from './add-printer-command';
|
|
5
|
+
export * from './update-printer-command';
|
|
5
6
|
export * from './printer-manufacturer';
|
|
6
7
|
export * from './virtual-print-server';
|
|
7
8
|
export * from './print-server-managed-type';
|
|
@@ -2,6 +2,7 @@ import { VirtualPrintServer } from "./models/virtual-print-server";
|
|
|
2
2
|
import { AddPrinterCommand } from "./models/add-printer-command";
|
|
3
3
|
import { CreatePrintServerCommand } from "./models/create-print-server-command";
|
|
4
4
|
import { UpdatePrintServerCommand } from "./models/update-print-server-command";
|
|
5
|
+
import { UpdatePrinterCommand } from "./models/update-printer-command";
|
|
5
6
|
export declare class PrintingService {
|
|
6
7
|
GetPrintServerList(): Promise<VirtualPrintServer[]>;
|
|
7
8
|
GetPrintServer(printServerId: number): Promise<VirtualPrintServer>;
|
|
@@ -9,4 +10,7 @@ export declare class PrintingService {
|
|
|
9
10
|
GetPrintServerPrinters(printServerId: number): Promise<string[]>;
|
|
10
11
|
CreatePrintServer(command: CreatePrintServerCommand): Promise<import("axios").AxiosResponse<any, any>>;
|
|
11
12
|
AddPrinter(printServerId: number, command: AddPrinterCommand): Promise<import("axios").AxiosResponse<any, any>>;
|
|
13
|
+
UpdatePrinter(printServerId: number, printerId: number, command: UpdatePrinterCommand): Promise<import("axios").AxiosResponse<any, any>>;
|
|
14
|
+
DeletePrinter(printServerId: number, printerId: number): Promise<import("axios").AxiosResponse<any, any>>;
|
|
15
|
+
DeletePrintServer(printServerId: number): Promise<import("axios").AxiosResponse<any, any>>;
|
|
12
16
|
}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
export interface BlockDescriptor {
|
|
2
|
+
type: string;
|
|
3
|
+
pattern: string;
|
|
4
|
+
description: string;
|
|
5
|
+
tier: number;
|
|
6
|
+
supportsPreview: boolean;
|
|
7
|
+
ui: BlockUiDescriptor;
|
|
8
|
+
inputs: BlockPortDescriptor[];
|
|
9
|
+
outputs: BlockPortDescriptor[];
|
|
10
|
+
configFields: BlockConfigField[];
|
|
11
|
+
dynamicInputs?: DynamicPortsDescriptor;
|
|
12
|
+
dynamicOutputs?: DynamicPortsDescriptor;
|
|
13
|
+
}
|
|
14
|
+
export interface BlockUiDescriptor {
|
|
15
|
+
label: string;
|
|
16
|
+
category: string;
|
|
17
|
+
icon: string;
|
|
18
|
+
color: string;
|
|
19
|
+
headerColor: string;
|
|
20
|
+
}
|
|
21
|
+
export interface BlockPortDescriptor {
|
|
22
|
+
id: string;
|
|
23
|
+
label: string;
|
|
24
|
+
color: string;
|
|
25
|
+
isAlwaysVisible: boolean;
|
|
26
|
+
dataType?: string;
|
|
27
|
+
conditionalVisibility?: PortVisibilityCondition[];
|
|
28
|
+
}
|
|
29
|
+
export interface PortVisibilityCondition {
|
|
30
|
+
configField: string;
|
|
31
|
+
value: string;
|
|
32
|
+
}
|
|
33
|
+
export interface BlockConfigField {
|
|
34
|
+
key: string;
|
|
35
|
+
label: string;
|
|
36
|
+
fieldType: BlockConfigFieldType;
|
|
37
|
+
required: boolean;
|
|
38
|
+
defaultValue?: any;
|
|
39
|
+
placeholder?: string;
|
|
40
|
+
description?: string;
|
|
41
|
+
options?: SelectOption[];
|
|
42
|
+
visibleWhen?: FieldVisibilityCondition;
|
|
43
|
+
validation?: FieldValidation;
|
|
44
|
+
}
|
|
45
|
+
export interface FieldVisibilityCondition {
|
|
46
|
+
dependsOn: string;
|
|
47
|
+
value?: any;
|
|
48
|
+
}
|
|
49
|
+
export declare enum BlockConfigFieldType {
|
|
50
|
+
Text = 0,
|
|
51
|
+
TextArea = 1,
|
|
52
|
+
Number = 2,
|
|
53
|
+
Boolean = 3,
|
|
54
|
+
Select = 4,
|
|
55
|
+
Expression = 5,
|
|
56
|
+
Secret = 6,
|
|
57
|
+
KeyValue = 7,
|
|
58
|
+
ObjectMap = 8,
|
|
59
|
+
Json = 9,
|
|
60
|
+
JsonArray = 10,
|
|
61
|
+
ConnectionString = 11,
|
|
62
|
+
Sql = 12
|
|
63
|
+
}
|
|
64
|
+
export interface SelectOption {
|
|
65
|
+
value: string;
|
|
66
|
+
label: string;
|
|
67
|
+
description?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface FieldValidation {
|
|
70
|
+
min?: number;
|
|
71
|
+
max?: number;
|
|
72
|
+
pattern?: string;
|
|
73
|
+
message?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface BlocksByCategory {
|
|
76
|
+
[category: string]: BlockDescriptor[];
|
|
77
|
+
}
|
|
78
|
+
export declare enum DynamicPortType {
|
|
79
|
+
Count = 0,
|
|
80
|
+
ArrayProperty = 1
|
|
81
|
+
}
|
|
82
|
+
export interface DynamicPortsDescriptor {
|
|
83
|
+
type: DynamicPortType;
|
|
84
|
+
sourceField: string;
|
|
85
|
+
portNamePattern: string;
|
|
86
|
+
labelPattern: string;
|
|
87
|
+
minCount?: number;
|
|
88
|
+
maxCount?: number;
|
|
89
|
+
channelProperty?: string;
|
|
90
|
+
defaultColor?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface PipelineDefinition {
|
|
93
|
+
$schema?: string;
|
|
94
|
+
id?: string;
|
|
95
|
+
name: string;
|
|
96
|
+
description?: string;
|
|
97
|
+
version?: string;
|
|
98
|
+
settings?: PipelineSettings;
|
|
99
|
+
variables?: Record<string, unknown>;
|
|
100
|
+
nodes: NodeDefinition[];
|
|
101
|
+
edges: EdgeDefinition[];
|
|
102
|
+
}
|
|
103
|
+
export interface PipelineSettings {
|
|
104
|
+
maxDegreeOfParallelism?: number;
|
|
105
|
+
boundedCapacity?: number;
|
|
106
|
+
cancellationTimeoutSeconds?: number;
|
|
107
|
+
}
|
|
108
|
+
export interface NodeDefinition {
|
|
109
|
+
id: string;
|
|
110
|
+
type: string;
|
|
111
|
+
pattern?: string;
|
|
112
|
+
label?: string;
|
|
113
|
+
config: Record<string, unknown>;
|
|
114
|
+
position?: {
|
|
115
|
+
x: number;
|
|
116
|
+
y: number;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export interface EdgeDefinition {
|
|
120
|
+
id?: string;
|
|
121
|
+
from: string;
|
|
122
|
+
to: string;
|
|
123
|
+
channel?: string;
|
|
124
|
+
sourceHandle?: string;
|
|
125
|
+
targetHandle?: string;
|
|
126
|
+
}
|
|
127
|
+
export interface ValidationResult {
|
|
128
|
+
isValid: boolean;
|
|
129
|
+
errors: ValidationError[];
|
|
130
|
+
warnings: ValidationError[];
|
|
131
|
+
}
|
|
132
|
+
export interface ValidationError {
|
|
133
|
+
code: string;
|
|
134
|
+
message: string;
|
|
135
|
+
nodeId?: string;
|
|
136
|
+
fieldKey?: string;
|
|
137
|
+
nodeIds?: string[];
|
|
138
|
+
severity: 'Error' | 'Warning';
|
|
139
|
+
}
|
|
140
|
+
export interface PipelineResult {
|
|
141
|
+
executionId: string;
|
|
142
|
+
status: PipelineStatus | number;
|
|
143
|
+
duration: string;
|
|
144
|
+
totalItemsProcessed: number;
|
|
145
|
+
totalItemsDeadLettered: number;
|
|
146
|
+
totalItemsSkipped: number;
|
|
147
|
+
startTime: string;
|
|
148
|
+
endTime: string;
|
|
149
|
+
blockMetrics: BlockMetrics[];
|
|
150
|
+
errorMessage?: string;
|
|
151
|
+
}
|
|
152
|
+
export declare enum PipelineStatus {
|
|
153
|
+
Pending = 0,
|
|
154
|
+
Running = 1,
|
|
155
|
+
Paused = 2,
|
|
156
|
+
Completed = 3,
|
|
157
|
+
Failed = 4,
|
|
158
|
+
Cancelled = 5
|
|
159
|
+
}
|
|
160
|
+
export declare enum NodeExecutionState {
|
|
161
|
+
Pending = 0,
|
|
162
|
+
Running = 1,
|
|
163
|
+
Completed = 2,
|
|
164
|
+
Failed = 3,
|
|
165
|
+
Cancelled = 4
|
|
166
|
+
}
|
|
167
|
+
export interface BlockMetrics {
|
|
168
|
+
nodeId: string;
|
|
169
|
+
nodeType: string;
|
|
170
|
+
itemsIn: number;
|
|
171
|
+
itemsOut: number;
|
|
172
|
+
itemsOutByChannel: Record<string, number>;
|
|
173
|
+
itemsDeadLettered: number;
|
|
174
|
+
itemsSkipped: number;
|
|
175
|
+
totalDuration: string;
|
|
176
|
+
throughput: number;
|
|
177
|
+
averageItemDuration: string;
|
|
178
|
+
minItemDuration: string;
|
|
179
|
+
maxItemDuration: string;
|
|
180
|
+
nodeState: NodeExecutionState | number | string;
|
|
181
|
+
hasFailed: boolean;
|
|
182
|
+
failureReason?: string;
|
|
183
|
+
previewItemsByChannel?: Record<string, PreviewItem[]>;
|
|
184
|
+
}
|
|
185
|
+
export interface PreviewItem {
|
|
186
|
+
[key: string]: any;
|
|
187
|
+
_truncated?: boolean;
|
|
188
|
+
_originalSize?: number;
|
|
189
|
+
}
|
|
190
|
+
export interface SavePipelineRequest {
|
|
191
|
+
id?: string;
|
|
192
|
+
name: string;
|
|
193
|
+
description?: string;
|
|
194
|
+
category?: string;
|
|
195
|
+
definitionJson: string;
|
|
196
|
+
isActive: boolean;
|
|
197
|
+
tags?: string[];
|
|
198
|
+
metadata?: Record<string, unknown>;
|
|
199
|
+
}
|
|
200
|
+
export interface SavePipelineResponse {
|
|
201
|
+
id: string;
|
|
202
|
+
name: string;
|
|
203
|
+
version: number;
|
|
204
|
+
createdAt: string;
|
|
205
|
+
updatedAt: string;
|
|
206
|
+
}
|
|
207
|
+
export interface PipelineListItem {
|
|
208
|
+
id: string;
|
|
209
|
+
name: string;
|
|
210
|
+
description?: string;
|
|
211
|
+
version: number;
|
|
212
|
+
category?: string;
|
|
213
|
+
isActive: boolean;
|
|
214
|
+
createdAt: string;
|
|
215
|
+
updatedAt: string;
|
|
216
|
+
lastExecutedAt?: string;
|
|
217
|
+
lastExecutionStatus?: PipelineStatus;
|
|
218
|
+
executionCount: number;
|
|
219
|
+
successRate: number;
|
|
220
|
+
tags?: string[];
|
|
221
|
+
}
|
|
222
|
+
export interface PipelineDetails {
|
|
223
|
+
id: string;
|
|
224
|
+
name: string;
|
|
225
|
+
description?: string;
|
|
226
|
+
version: number;
|
|
227
|
+
definitionJson: string;
|
|
228
|
+
category?: string;
|
|
229
|
+
isActive: boolean;
|
|
230
|
+
createdAt: string;
|
|
231
|
+
updatedAt: string;
|
|
232
|
+
createdBy?: string;
|
|
233
|
+
updatedBy?: string;
|
|
234
|
+
lastExecutedAt?: string;
|
|
235
|
+
lastExecutionStatus?: PipelineStatus;
|
|
236
|
+
executionCount: number;
|
|
237
|
+
successCount: number;
|
|
238
|
+
failureCount: number;
|
|
239
|
+
successRate: number;
|
|
240
|
+
tags?: string[];
|
|
241
|
+
metadata?: Record<string, unknown>;
|
|
242
|
+
}
|
|
243
|
+
export interface ExecuteSavedPipelineRequest {
|
|
244
|
+
pipelineId: string;
|
|
245
|
+
dryRun?: boolean;
|
|
246
|
+
variableOverrides?: Record<string, unknown>;
|
|
247
|
+
}
|
|
248
|
+
export interface PipelineExecutionHistoryItem {
|
|
249
|
+
id: string;
|
|
250
|
+
executionId: string;
|
|
251
|
+
pipelineId: string;
|
|
252
|
+
pipelineName: string;
|
|
253
|
+
pipelineVersion: string;
|
|
254
|
+
status: PipelineStatus;
|
|
255
|
+
startTime: string;
|
|
256
|
+
endTime?: string;
|
|
257
|
+
formattedDuration?: string;
|
|
258
|
+
totalItemsProcessed: number;
|
|
259
|
+
totalItemsDeadLettered: number;
|
|
260
|
+
totalItemsSkipped: number;
|
|
261
|
+
successRate: number;
|
|
262
|
+
errorMessage?: string;
|
|
263
|
+
executedBy?: string;
|
|
264
|
+
isDryRun: boolean;
|
|
265
|
+
serverHostname?: string;
|
|
266
|
+
}
|
|
267
|
+
export interface PipelineExecutionDetails extends PipelineExecutionHistoryItem {
|
|
268
|
+
errorStackTrace?: string;
|
|
269
|
+
blockMetricsJson?: string;
|
|
270
|
+
pipelineDefinitionSnapshot?: string;
|
|
271
|
+
metadata?: Record<string, unknown>;
|
|
272
|
+
}
|
|
273
|
+
export interface RunningExecutionItem {
|
|
274
|
+
executionId: string;
|
|
275
|
+
startTime: string;
|
|
276
|
+
elapsedTime: string;
|
|
277
|
+
}
|
|
278
|
+
export interface StopExecutionResponse {
|
|
279
|
+
success: boolean;
|
|
280
|
+
message: string;
|
|
281
|
+
}
|
|
282
|
+
export interface ValidatePipelineRequest {
|
|
283
|
+
definitionJson: string;
|
|
284
|
+
}
|
|
285
|
+
export interface ExecutePipelineRequest {
|
|
286
|
+
executionId: string;
|
|
287
|
+
definitionJson: string;
|
|
288
|
+
dryRun?: boolean;
|
|
289
|
+
isDebugMode?: boolean;
|
|
290
|
+
maxPreviewItems?: number;
|
|
291
|
+
}
|
|
292
|
+
export interface BlockPreviewRequest {
|
|
293
|
+
blockType: string;
|
|
294
|
+
config: Record<string, unknown>;
|
|
295
|
+
variables?: Record<string, unknown>;
|
|
296
|
+
maxItems?: number;
|
|
297
|
+
}
|
|
298
|
+
export interface BlockPreviewResponse {
|
|
299
|
+
success: boolean;
|
|
300
|
+
items: Record<string, unknown>[];
|
|
301
|
+
count: number;
|
|
302
|
+
hasMore: boolean;
|
|
303
|
+
metadata?: Record<string, unknown>;
|
|
304
|
+
warnings?: string[];
|
|
305
|
+
}
|
|
@@ -1,11 +1,330 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
export * from './etl.models';
|
|
2
|
+
export interface WorkflowReactFlowSchema {
|
|
3
|
+
nodes: WorkflowNode[];
|
|
4
|
+
edges: WorkflowEdge[];
|
|
5
|
+
metadata: WorkflowMetadata;
|
|
6
|
+
}
|
|
7
|
+
export interface WorkflowNode {
|
|
8
|
+
id: string;
|
|
9
|
+
type: NodeType;
|
|
10
|
+
position: NodePosition;
|
|
11
|
+
data: NodeData;
|
|
12
|
+
}
|
|
13
|
+
export type NodeType = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
|
|
14
|
+
export declare enum NodeTypeEnum {
|
|
15
|
+
Action = 0,
|
|
16
|
+
Parallel = 1,
|
|
17
|
+
Join = 2,
|
|
18
|
+
While = 3,
|
|
19
|
+
ForEach = 4,
|
|
20
|
+
Schedule = 5,
|
|
21
|
+
Delay = 6,
|
|
22
|
+
WaitForEvent = 7,
|
|
23
|
+
Decision = 8,
|
|
24
|
+
Start = 9,
|
|
25
|
+
End = 10
|
|
26
|
+
}
|
|
27
|
+
export interface NodePosition {
|
|
28
|
+
x: number;
|
|
29
|
+
y: number;
|
|
30
|
+
}
|
|
31
|
+
export interface NodeData {
|
|
32
|
+
label: string;
|
|
33
|
+
stepType?: string;
|
|
34
|
+
inputs?: Record<string, ActionInput>;
|
|
35
|
+
outputs?: Record<string, string>;
|
|
36
|
+
handles: NodeHandles;
|
|
37
|
+
condition?: string;
|
|
38
|
+
collection?: string;
|
|
39
|
+
interval?: string;
|
|
40
|
+
eventName?: string;
|
|
41
|
+
eventKey?: string;
|
|
42
|
+
branches?: number;
|
|
43
|
+
}
|
|
44
|
+
export interface NodeHandles {
|
|
45
|
+
source: string[];
|
|
46
|
+
target: string[];
|
|
47
|
+
}
|
|
48
|
+
export interface ActionInput {
|
|
49
|
+
type: ActionInputType;
|
|
50
|
+
value: any;
|
|
51
|
+
}
|
|
52
|
+
export type ActionInputType = 0 | 1 | 2 | 3;
|
|
53
|
+
export declare enum ActionInputTypeEnum {
|
|
54
|
+
Manual = 0,// Valore statico inserito dall'utente
|
|
55
|
+
Expression = 1,// Espressione dinamica (es. "data.Counter + 1")
|
|
56
|
+
StepOutput = 2,// Output di step precedente (es. "step0.EmailSentCount")
|
|
57
|
+
Environment = 3
|
|
58
|
+
}
|
|
59
|
+
export interface WorkflowEdge {
|
|
60
|
+
id: string;
|
|
61
|
+
source: string;
|
|
62
|
+
target: string;
|
|
63
|
+
sourceHandle?: string;
|
|
64
|
+
targetHandle?: string;
|
|
65
|
+
label?: string;
|
|
66
|
+
animated?: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface WorkflowMetadata {
|
|
69
|
+
workflowId: string;
|
|
70
|
+
version: number;
|
|
71
|
+
description?: string;
|
|
72
|
+
dataType?: string;
|
|
73
|
+
triggerId?: string;
|
|
74
|
+
triggerInputs?: Record<string, any>;
|
|
75
|
+
}
|
|
76
|
+
export interface WorkflowDto {
|
|
77
|
+
id: number;
|
|
78
|
+
workflowId: string;
|
|
79
|
+
name: string;
|
|
80
|
+
description: string;
|
|
81
|
+
version: number;
|
|
82
|
+
reactFlowSchema: WorkflowReactFlowSchema;
|
|
83
|
+
workflowCoreJson: string;
|
|
84
|
+
triggerId?: string;
|
|
85
|
+
triggerInputs?: Record<string, any>;
|
|
86
|
+
isActive: boolean;
|
|
87
|
+
createdAt: string;
|
|
88
|
+
updatedAt: string;
|
|
89
|
+
createdBy: string;
|
|
90
|
+
updatedBy: string;
|
|
91
|
+
tags: string[];
|
|
92
|
+
category?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface WorkflowSummaryDto {
|
|
95
|
+
id: number;
|
|
96
|
+
workflowId: string;
|
|
97
|
+
name: string;
|
|
98
|
+
description: string;
|
|
99
|
+
version: number;
|
|
100
|
+
isActive: boolean;
|
|
101
|
+
category?: string;
|
|
102
|
+
tags: string[];
|
|
103
|
+
updatedAt: string;
|
|
104
|
+
updatedBy: string;
|
|
105
|
+
}
|
|
106
|
+
export interface CreateWorkflowRequest {
|
|
107
|
+
workflowId?: string;
|
|
108
|
+
name: string;
|
|
109
|
+
description?: string;
|
|
110
|
+
reactFlowSchema: WorkflowReactFlowSchema;
|
|
111
|
+
triggerId?: string;
|
|
112
|
+
triggerInputs?: Record<string, any>;
|
|
113
|
+
category?: string;
|
|
114
|
+
tags?: string[];
|
|
115
|
+
createdBy: string;
|
|
116
|
+
}
|
|
117
|
+
export interface UpdateWorkflowRequest {
|
|
118
|
+
name?: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
reactFlowSchema?: WorkflowReactFlowSchema;
|
|
121
|
+
triggerId?: string;
|
|
122
|
+
triggerInputs?: Record<string, any>;
|
|
123
|
+
category?: string;
|
|
124
|
+
tags?: string[];
|
|
125
|
+
updatedBy: string;
|
|
126
|
+
}
|
|
127
|
+
export interface CloneWorkflowRequest {
|
|
128
|
+
newWorkflowId?: string;
|
|
129
|
+
newName?: string;
|
|
130
|
+
createdBy: string;
|
|
131
|
+
}
|
|
132
|
+
export interface WorkflowValidationResult {
|
|
133
|
+
isValid: boolean;
|
|
134
|
+
errors: WorkflowValidationError[];
|
|
135
|
+
warnings: WorkflowValidationWarning[];
|
|
136
|
+
}
|
|
137
|
+
export interface WorkflowValidationError {
|
|
138
|
+
code: string;
|
|
139
|
+
message: string;
|
|
140
|
+
nodeId?: string;
|
|
141
|
+
field?: string;
|
|
142
|
+
}
|
|
143
|
+
export interface WorkflowValidationWarning {
|
|
144
|
+
code: string;
|
|
145
|
+
message: string;
|
|
146
|
+
nodeId?: string;
|
|
147
|
+
}
|
|
148
|
+
export interface WorkflowActionCategoryDto {
|
|
149
|
+
name: string;
|
|
150
|
+
actions: WorkflowActionDto[];
|
|
151
|
+
}
|
|
152
|
+
export interface WorkflowActionDto {
|
|
153
|
+
id: string;
|
|
154
|
+
category: string;
|
|
155
|
+
name: string;
|
|
156
|
+
type: string;
|
|
157
|
+
inputs: ActionInputDescriptor[];
|
|
158
|
+
outputs: ActionOutputDescriptor[];
|
|
159
|
+
outcomes?: string[];
|
|
160
|
+
description?: string;
|
|
161
|
+
icon?: string;
|
|
162
|
+
color?: string;
|
|
163
|
+
tags?: string[];
|
|
164
|
+
groups?: InputGroup[];
|
|
165
|
+
}
|
|
166
|
+
export interface ActionInputDescriptor {
|
|
167
|
+
id: string;
|
|
168
|
+
name: string;
|
|
169
|
+
description?: string;
|
|
170
|
+
type: string;
|
|
171
|
+
required: boolean;
|
|
172
|
+
defaultValue?: any;
|
|
173
|
+
hasOptionsProvider: boolean;
|
|
174
|
+
uiHint: string;
|
|
175
|
+
helpText?: string;
|
|
176
|
+
placeholder?: string;
|
|
177
|
+
group?: string;
|
|
178
|
+
order: number;
|
|
179
|
+
validation?: InputValidation;
|
|
180
|
+
dependencies?: InputDependency[];
|
|
181
|
+
}
|
|
182
|
+
export interface ActionOutputDescriptor {
|
|
183
|
+
id: string;
|
|
184
|
+
name: string;
|
|
185
|
+
description?: string;
|
|
186
|
+
type: string;
|
|
187
|
+
displayName?: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Input group for organizing inputs in sections
|
|
191
|
+
*/
|
|
192
|
+
export interface InputGroup {
|
|
193
|
+
id: string;
|
|
194
|
+
displayName: string;
|
|
195
|
+
order: number;
|
|
196
|
+
collapsed: boolean;
|
|
197
|
+
description?: string;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Input validation rules
|
|
201
|
+
*/
|
|
202
|
+
export interface InputValidation {
|
|
203
|
+
minLength?: number;
|
|
204
|
+
maxLength?: number;
|
|
205
|
+
min?: number;
|
|
206
|
+
max?: number;
|
|
207
|
+
pattern?: string;
|
|
208
|
+
message?: string;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Input dependency for conditional visibility/enabled/required
|
|
212
|
+
*/
|
|
213
|
+
export interface InputDependency {
|
|
214
|
+
dependsOn: string;
|
|
215
|
+
operator: DependencyOperator;
|
|
216
|
+
value?: any;
|
|
217
|
+
action: DependencyAction;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Dependency operators for condition evaluation
|
|
221
|
+
*/
|
|
222
|
+
export type DependencyOperator = 'equals' | 'notEquals' | 'in' | 'notIn' | 'greaterThan' | 'lessThan' | 'greaterThanOrEqual' | 'lessThanOrEqual' | 'isNotEmpty' | 'isEmpty';
|
|
223
|
+
/**
|
|
224
|
+
* Dependency actions (what happens when condition is true)
|
|
225
|
+
*/
|
|
226
|
+
export type DependencyAction = 'visible' | 'enabled' | 'required';
|
|
227
|
+
export interface ActionInputOption {
|
|
228
|
+
value: string;
|
|
229
|
+
label: string;
|
|
230
|
+
description?: string;
|
|
231
|
+
}
|
|
232
|
+
export interface WorkflowTriggerCategoryDto {
|
|
233
|
+
name: string;
|
|
234
|
+
triggers: WorkflowTriggerDto[];
|
|
235
|
+
}
|
|
236
|
+
export interface WorkflowTriggerDto {
|
|
237
|
+
id: string;
|
|
238
|
+
name: string;
|
|
239
|
+
description: string;
|
|
240
|
+
category: string;
|
|
241
|
+
icon?: string;
|
|
242
|
+
inputs: ActionInputDescriptor[];
|
|
243
|
+
outputs: ActionOutputDescriptor[];
|
|
244
|
+
}
|
|
245
|
+
export interface ConvertToWorkflowCoreResponse {
|
|
246
|
+
workflowCoreJson: string;
|
|
247
|
+
}
|
|
248
|
+
export interface ConvertToReactFlowRequest {
|
|
249
|
+
workflowCoreJson: string;
|
|
250
|
+
autoLayout?: boolean;
|
|
251
|
+
}
|
|
252
|
+
export interface Workflow {
|
|
253
|
+
nodes: WorkflowNode[];
|
|
254
|
+
edges: WorkflowEdge[];
|
|
255
|
+
}
|
|
256
|
+
export interface ActionCategoryDefinition {
|
|
257
|
+
name: string;
|
|
258
|
+
actions: WorkflowActionDto[];
|
|
259
|
+
}
|
|
260
|
+
export interface TriggerCategoryDefinition {
|
|
261
|
+
name: string;
|
|
262
|
+
triggers: WorkflowTriggerDto[];
|
|
263
|
+
}
|
|
264
|
+
export declare enum WorkflowStatus {
|
|
265
|
+
Runnable = 0,// In esecuzione o pronta per eseguire
|
|
266
|
+
Suspended = 1,// Sospesa manualmente
|
|
267
|
+
Complete = 2,// Completata con successo
|
|
268
|
+
Terminated = 3
|
|
269
|
+
}
|
|
270
|
+
export declare enum PointerStatus {
|
|
271
|
+
Legacy = 0,
|
|
272
|
+
Pending = 1,
|
|
273
|
+
Running = 2,
|
|
274
|
+
Complete = 3,
|
|
275
|
+
Sleeping = 4,
|
|
276
|
+
WaitingForEvent = 5,
|
|
277
|
+
Failed = 6,
|
|
278
|
+
Compensated = 7,
|
|
279
|
+
Cancelled = 8
|
|
280
|
+
}
|
|
281
|
+
export interface WorkflowExecutionSummaryDto {
|
|
282
|
+
instanceId: string;
|
|
283
|
+
workflowDefinitionId: string;
|
|
284
|
+
version: number;
|
|
285
|
+
description: string;
|
|
286
|
+
reference: string;
|
|
287
|
+
status: WorkflowStatus;
|
|
288
|
+
createTime: string;
|
|
289
|
+
completeTime?: string;
|
|
290
|
+
nextExecution?: string;
|
|
291
|
+
}
|
|
292
|
+
export interface WorkflowExecutionDetailsDto {
|
|
293
|
+
instanceId: string;
|
|
294
|
+
workflowDefinitionId: string;
|
|
295
|
+
version: number;
|
|
296
|
+
description: string;
|
|
297
|
+
reference: string;
|
|
298
|
+
status: WorkflowStatus;
|
|
299
|
+
createTime: string;
|
|
300
|
+
completeTime?: string;
|
|
301
|
+
nextExecution?: string;
|
|
302
|
+
data: string;
|
|
303
|
+
steps: WorkflowExecutionStepDto[];
|
|
304
|
+
errors: WorkflowExecutionErrorDto[];
|
|
305
|
+
}
|
|
306
|
+
export interface WorkflowExecutionStepDto {
|
|
307
|
+
id: string;
|
|
308
|
+
stepId: number;
|
|
309
|
+
stepName: string;
|
|
310
|
+
active: boolean;
|
|
311
|
+
startTime?: string;
|
|
312
|
+
endTime?: string;
|
|
313
|
+
status: PointerStatus;
|
|
314
|
+
outcome: string;
|
|
315
|
+
retryCount: number;
|
|
316
|
+
sleepUntil?: string;
|
|
317
|
+
eventName?: string;
|
|
318
|
+
eventKey?: string;
|
|
319
|
+
eventPublished: boolean;
|
|
320
|
+
persistenceData?: string;
|
|
321
|
+
contextItem?: string;
|
|
322
|
+
predecessorId?: string;
|
|
323
|
+
scope?: string;
|
|
324
|
+
}
|
|
325
|
+
export interface WorkflowExecutionErrorDto {
|
|
326
|
+
workflowId: string;
|
|
327
|
+
executionPointerId: string;
|
|
328
|
+
errorTime: string;
|
|
329
|
+
message: string;
|
|
330
|
+
}
|
|
@@ -1,6 +1,120 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Workflow, WorkflowDto, WorkflowSummaryDto, CreateWorkflowRequest, UpdateWorkflowRequest, CloneWorkflowRequest, WorkflowValidationResult, WorkflowReactFlowSchema, ConvertToWorkflowCoreResponse, ConvertToReactFlowRequest, WorkflowActionCategoryDto, WorkflowTriggerCategoryDto, WorkflowExecutionSummaryDto, WorkflowExecutionDetailsDto, WorkflowExecutionStepDto, WorkflowExecutionErrorDto } from "./models";
|
|
2
|
+
import { BlockDescriptor, BlocksByCategory, BlockPreviewRequest, BlockPreviewResponse, ExecutePipelineRequest, ExecuteSavedPipelineRequest, PipelineDetails, PipelineExecutionDetails, PipelineExecutionHistoryItem, PipelineListItem, PipelineResult, RunningExecutionItem, SavePipelineRequest, SavePipelineResponse, StopExecutionResponse, ValidatePipelineRequest, ValidationResult } from "./models/etl.models";
|
|
2
3
|
export declare class WorkflowService {
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
getEtlBlocks(): Promise<BlockDescriptor[]>;
|
|
5
|
+
getEtlBlocksGrouped(): Promise<BlocksByCategory>;
|
|
6
|
+
getEtlBlock(type: string): Promise<BlockDescriptor>;
|
|
7
|
+
/**
|
|
8
|
+
* Ottiene una preview dei dati da un blocco source
|
|
9
|
+
*/
|
|
10
|
+
previewBlockSource(request: BlockPreviewRequest): Promise<BlockPreviewResponse>;
|
|
11
|
+
/**
|
|
12
|
+
* Ottiene tutte le azioni disponibili organizzate per categoria
|
|
13
|
+
*/
|
|
14
|
+
getActionsDefinition(): Promise<WorkflowActionCategoryDto[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Ottiene tutti i trigger disponibili organizzati per categoria
|
|
17
|
+
*/
|
|
18
|
+
getTriggersDefinition(): Promise<WorkflowTriggerCategoryDto[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Crea un nuovo workflow
|
|
21
|
+
*/
|
|
22
|
+
createWorkflow(request: CreateWorkflowRequest): Promise<WorkflowDto>;
|
|
23
|
+
/**
|
|
24
|
+
* Ottiene un workflow per ID database
|
|
25
|
+
*/
|
|
26
|
+
getWorkflowById(id: number): Promise<WorkflowDto>;
|
|
27
|
+
/**
|
|
28
|
+
* Ottiene un workflow per WorkflowId
|
|
29
|
+
*/
|
|
30
|
+
getWorkflowByWorkflowId(workflowId: string): Promise<WorkflowDto>;
|
|
31
|
+
/**
|
|
32
|
+
* Ottiene tutti i workflow (summary)
|
|
33
|
+
*/
|
|
34
|
+
listWorkflows(): Promise<WorkflowSummaryDto[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Aggiorna un workflow esistente
|
|
37
|
+
*/
|
|
38
|
+
updateWorkflow(id: number, request: UpdateWorkflowRequest): Promise<WorkflowDto>;
|
|
39
|
+
/**
|
|
40
|
+
* Elimina un workflow
|
|
41
|
+
*/
|
|
42
|
+
deleteWorkflow(id: number): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Attiva un workflow
|
|
45
|
+
*/
|
|
46
|
+
activateWorkflow(id: number, updatedBy: string): Promise<WorkflowDto>;
|
|
47
|
+
/**
|
|
48
|
+
* Disattiva un workflow
|
|
49
|
+
*/
|
|
50
|
+
deactivateWorkflow(id: number, updatedBy: string): Promise<WorkflowDto>;
|
|
51
|
+
/**
|
|
52
|
+
* Avvia un workflow con un trigger specifico
|
|
53
|
+
* @param workflowId - ID del workflow da avviare
|
|
54
|
+
* @param triggerId - ID del trigger da utilizzare
|
|
55
|
+
* @param inputs - Inputs per il trigger (opzionale)
|
|
56
|
+
*/
|
|
57
|
+
startWorkflow(workflowId: number, triggerId: string, inputs?: Record<string, any>): Promise<{
|
|
58
|
+
executionId: string;
|
|
59
|
+
}>;
|
|
60
|
+
/**
|
|
61
|
+
* Clona un workflow
|
|
62
|
+
*/
|
|
63
|
+
cloneWorkflow(id: number, request: CloneWorkflowRequest): Promise<WorkflowDto>;
|
|
64
|
+
/**
|
|
65
|
+
* Valida uno schema ReactFlow
|
|
66
|
+
*/
|
|
67
|
+
validateWorkflow(schema: WorkflowReactFlowSchema): Promise<WorkflowValidationResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Converte uno schema ReactFlow in WorkflowCore JSON
|
|
70
|
+
*/
|
|
71
|
+
convertToWorkflowCore(schema: WorkflowReactFlowSchema): Promise<ConvertToWorkflowCoreResponse>;
|
|
72
|
+
/**
|
|
73
|
+
* Converte un WorkflowCore JSON in schema ReactFlow
|
|
74
|
+
*/
|
|
75
|
+
convertToReactFlow(request: ConvertToReactFlowRequest): Promise<WorkflowReactFlowSchema>;
|
|
76
|
+
/**
|
|
77
|
+
* @deprecated Use validateWorkflow instead
|
|
78
|
+
*/
|
|
5
79
|
test(workflow: Workflow): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Ottiene tutte le esecuzioni di un workflow specifico
|
|
82
|
+
*/
|
|
83
|
+
getWorkflowExecutions(workflowId: number): Promise<WorkflowExecutionSummaryDto[]>;
|
|
84
|
+
/**
|
|
85
|
+
* Ottiene i dettagli completi di un'esecuzione
|
|
86
|
+
*/
|
|
87
|
+
getExecutionDetails(instanceId: string): Promise<WorkflowExecutionDetailsDto>;
|
|
88
|
+
/**
|
|
89
|
+
* Ottiene solo gli step di un'esecuzione
|
|
90
|
+
*/
|
|
91
|
+
getExecutionSteps(instanceId: string): Promise<WorkflowExecutionStepDto[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Ottiene solo gli errori di un'esecuzione
|
|
94
|
+
*/
|
|
95
|
+
getExecutionErrors(instanceId: string): Promise<WorkflowExecutionErrorDto[]>;
|
|
96
|
+
/**
|
|
97
|
+
* Termina un'esecuzione in corso
|
|
98
|
+
*/
|
|
99
|
+
terminateExecution(instanceId: string): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Sospende un'esecuzione in corso
|
|
102
|
+
*/
|
|
103
|
+
suspendExecution(instanceId: string): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* Riprende un'esecuzione sospesa
|
|
106
|
+
*/
|
|
107
|
+
resumeExecution(instanceId: string): Promise<void>;
|
|
108
|
+
saveEtlPipeline(request: SavePipelineRequest): Promise<SavePipelineResponse>;
|
|
109
|
+
listEtlPipelines(): Promise<PipelineListItem[]>;
|
|
110
|
+
getEtlPipeline(id: string): Promise<PipelineDetails>;
|
|
111
|
+
deleteEtlPipeline(id: string): Promise<void>;
|
|
112
|
+
executeSavedEtlPipeline(pipelineId: string, request?: ExecuteSavedPipelineRequest): Promise<PipelineResult>;
|
|
113
|
+
getEtlPipelineExecutions(pipelineId: string): Promise<PipelineExecutionHistoryItem[]>;
|
|
114
|
+
getEtlExecutionDetails(executionId: string): Promise<PipelineExecutionDetails>;
|
|
115
|
+
getRunningEtlExecutions(): Promise<RunningExecutionItem[]>;
|
|
116
|
+
stopEtlExecution(executionId: string): Promise<StopExecutionResponse>;
|
|
117
|
+
validateEtlPipeline(request: ValidatePipelineRequest): Promise<ValidationResult>;
|
|
118
|
+
executeEtlPipeline(request: ExecutePipelineRequest): Promise<PipelineResult>;
|
|
119
|
+
dryRunEtlPipeline(request: ExecutePipelineRequest): Promise<PipelineResult>;
|
|
6
120
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ActionInputDefinition } from "./action-input-definition";
|
|
2
|
-
import { ActionOutputDefinition } from "./action-output-definition";
|
|
3
|
-
export interface ActionDefinition {
|
|
4
|
-
id: string;
|
|
5
|
-
category: string;
|
|
6
|
-
name: string;
|
|
7
|
-
type: string;
|
|
8
|
-
inputs: ActionInputDefinition[];
|
|
9
|
-
outputs: ActionOutputDefinition[];
|
|
10
|
-
outcomes: string[];
|
|
11
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ActionInputDefinition } from "./action-input-definition";
|
|
2
|
-
import { ActionOutputDefinition } from "./action-output-definition";
|
|
3
|
-
export interface TriggerDefinition {
|
|
4
|
-
id: string;
|
|
5
|
-
category: string;
|
|
6
|
-
name: string;
|
|
7
|
-
type: string;
|
|
8
|
-
inputs: ActionInputDefinition[];
|
|
9
|
-
outputs: ActionOutputDefinition[];
|
|
10
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { WorkflowActionInput } from "./workflow-action-input";
|
|
2
|
-
export interface WorkflowAction {
|
|
3
|
-
id: string;
|
|
4
|
-
name: string;
|
|
5
|
-
color: string;
|
|
6
|
-
description: string;
|
|
7
|
-
type: string;
|
|
8
|
-
outcomes: string[];
|
|
9
|
-
nextActions: {
|
|
10
|
-
[outcome: string]: WorkflowAction;
|
|
11
|
-
};
|
|
12
|
-
parallelActions: WorkflowAction[];
|
|
13
|
-
inputs: {
|
|
14
|
-
[property: string]: WorkflowActionInput;
|
|
15
|
-
};
|
|
16
|
-
}
|