Skip to content

Commit 6b1fcd1

Browse files
committed
Check GUID validation for any kind of value in GUID format for all commands
#100
1 parent 332f77f commit 6b1fcd1

17 files changed

Lines changed: 89 additions & 22 deletions

src/FlowCtl.Infrastructure/Extensions/ServiceCollectionExtensions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public static IServiceCollection AddInfrastructure(this IServiceCollection servi
2222
.AddScoped<IProcessProvider, DefaultProcessProvider>()
2323
.AddScoped<IProcessHandler, ProcessHandler>()
2424
.AddScoped<IArchiveExtractor, ArchiveExtractor>()
25+
.AddScoped<IDataProtectorWrapper, DataProtectorWrapper>()
2526
.AddScoped<IAuthenticationManager, AuthenticationManager>();
2627

2728
return services;

src/FlowCtl/Commands/Config/Delete/DeleteConfigCommandOptionsHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ private async Task Execute(DeleteConfigCommandOptions options, CancellationToken
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44-
var request = new DeletePluginConfigRequest { Id = Guid.Parse(options.ConfigId) };
44+
if (!Guid.TryParse(options.ConfigId, out Guid configId))
45+
throw new FormatException("Invalid config id format. Expected a valid GUID.");
46+
47+
var request = new DeletePluginConfigRequest { Id = configId };
4548
var result = await _flowSynxClient.PluginConfig.DeleteAsync(request, cancellationToken);
4649

4750
if (result.StatusCode != 200)

src/FlowCtl/Commands/Config/Details/DetailsConfigCommandOptionsHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ private async Task Execute(DetailsConfigCommandOptions options, CancellationToke
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44-
var request = new PluginConfigDetailsRequest { Id = Guid.Parse(options.ConfigId) };
44+
if (!Guid.TryParse(options.ConfigId, out Guid configId))
45+
throw new FormatException("Invalid config id format. Expected a valid GUID.");
46+
47+
var request = new PluginConfigDetailsRequest { Id = configId };
4548
var result = await _flowSynxClient.PluginConfig.DetailsAsync(request, cancellationToken);
4649

4750
if (result.StatusCode != 200)

src/FlowCtl/Commands/Plugins/Details/PluginDetailsCommandOptionsHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ private async Task Execute(PluginDetailsCommandOptions options, CancellationToke
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44-
var request = new PluginDetailsRequest { Id = Guid.Parse(options.PluginId) };
44+
if (!Guid.TryParse(options.PluginId, out Guid pluginId))
45+
throw new FormatException("Invalid plugin id format. Expected a valid GUID.");
46+
47+
var request = new PluginDetailsRequest { Id = pluginId };
4548
var result = await _flowSynxClient.Plugins.DetailsAsync(request, cancellationToken);
4649

4750
if (result.StatusCode != 200)

src/FlowCtl/Commands/Workflows/Delete/DeleteWorkflowCommandOptionsHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ private async Task Execute(DeleteWorkflowCommandOptions options, CancellationTok
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44-
var request = new DeleteWorkflowRequest { Id = Guid.Parse(options.WorkflowId) };
44+
if (!Guid.TryParse(options.WorkflowId, out Guid workflowId))
45+
throw new FormatException("Invalid workflow id format. Expected a valid GUID.");
46+
47+
var request = new DeleteWorkflowRequest { Id = workflowId };
4548
var result = await _flowSynxClient.Workflows.DeleteAsync(request, cancellationToken);
4649

4750
if (result.StatusCode != 200)

src/FlowCtl/Commands/Workflows/Details/WorkflowDetailsCommandOptionsHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ private async Task Execute(WorkflowDetailsCommandOptions options, CancellationTo
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44-
var request = new WorkflowDetailsRequest { Id = Guid.Parse(options.WorkflowId) };
44+
if (!Guid.TryParse(options.WorkflowId, out Guid workflowId))
45+
throw new FormatException("Invalid workflow id format. Expected a valid GUID.");
46+
47+
var request = new WorkflowDetailsRequest { Id = workflowId };
4548
var result = await _flowSynxClient.Workflows.DetailsAsync(request, cancellationToken);
4649

4750
if (result.StatusCode != 200)

src/FlowCtl/Commands/Workflows/Executions/Cancel/WorkflowExecutionCancelCommandOptionsHandler.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@ private async Task Execute(WorkflowExecutionCancelCommandOptions options, Cancel
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44+
if (!Guid.TryParse(options.WorkflowId, out Guid workflowId))
45+
throw new FormatException("Invalid workflow id format. Expected a valid GUID.");
46+
47+
if (!Guid.TryParse(options.ExecutionId, out Guid executionId))
48+
throw new FormatException("Invalid executionId id format. Expected a valid GUID.");
49+
4450
var request = new CancelWorkflowRequest
4551
{
46-
WorkflowId = options.WorkflowId,
47-
WorkflowExecutionId = options.ExecutionId
52+
WorkflowId = workflowId,
53+
WorkflowExecutionId = executionId
4854
};
4955
var result = await _flowSynxClient.Workflows.CancelExecutionsAsync(request, cancellationToken);
5056

src/FlowCtl/Commands/Workflows/Executions/Details/WorkflowExecutionsDetailsCommandOptionsHandler.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@ private async Task Execute(WorkflowExecutionDetailsCommandOptions options, Cance
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44+
if (!Guid.TryParse(options.WorkflowId, out Guid workflowId))
45+
throw new FormatException("Invalid workflow id format. Expected a valid GUID.");
46+
47+
if (!Guid.TryParse(options.ExecutionId, out Guid executionId))
48+
throw new FormatException("Invalid execution id format. Expected a valid GUID.");
49+
4450
var request = new WorkflowExecutionDetailsRequest
4551
{
46-
WorkflowId = options.WorkflowId,
47-
WorkflowExecutionId = options.ExecutionId
52+
WorkflowId = workflowId,
53+
WorkflowExecutionId = executionId
4854
};
4955
var result = await _flowSynxClient.Workflows.ExecutionsDetailsAsync(request, cancellationToken);
5056

src/FlowCtl/Commands/Workflows/Executions/Execute/ExecuteWorkflowCommandOptionsHandler.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,10 @@ private async Task Execute(ExecuteWorkflowCommandOptions options, CancellationTo
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44-
var request = new ExecuteWorkflowRequest { WorkflowId = Guid.Parse(options.WorkflowId) };
44+
if (!Guid.TryParse(options.WorkflowId, out Guid workflowId))
45+
throw new FormatException("Invalid workflow id format. Expected a valid GUID.");
46+
47+
var request = new ExecuteWorkflowRequest { WorkflowId = workflowId };
4548
var result = await _flowSynxClient.Workflows.ExecuteAsync(request, cancellationToken);
4649

4750
if (result.StatusCode != 200)

src/FlowCtl/Commands/Workflows/Executions/Logs/WorkflowExecutionLogsCommandOptionsHandler.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,16 @@ private async Task Execute(WorkflowExecutionLogsCommandOptions options, Cancella
4141
_flowSynxClient.SetConnection(connection);
4242
}
4343

44+
if (!Guid.TryParse(options.WorkflowId, out Guid workflowId))
45+
throw new FormatException("Invalid workflow id format. Expected a valid GUID.");
46+
47+
if (!Guid.TryParse(options.ExecutionId, out Guid executionId))
48+
throw new FormatException("Invalid execution id format. Expected a valid GUID.");
49+
4450
var request = new WorkflowExecutionDetailsRequest
4551
{
46-
WorkflowId = options.WorkflowId,
47-
WorkflowExecutionId = options.ExecutionId
52+
WorkflowId = workflowId,
53+
WorkflowExecutionId = executionId
4854
};
4955
var result = await _flowSynxClient.Workflows.ExecutionsDetailsAsync(request, cancellationToken);
5056

0 commit comments

Comments
 (0)