Skip to main content

API Reference

Summary

This document catalogs the API surfaces found in the Velox source code as it exists today. It covers the Velox API Service REST runtime, the Designer API/OpenAPI module, webhook-related behavior found in the codebase, command-line switches, Cromis IPC calls, and script-facing request/response APIs used by REST flows.

The source code is the authority for this document. Where behavior could not be determined from the reviewed code, it is marked as unclear.

Source Code Locations

AreaSource location
Velox API Service executableVeloxAPIService/VeloxAPIService.dpr
Velox API Service lifecycle and IPCVeloxAPIService/classMain.pas
WebBroker dispatch moduleVeloxAPIService/vxWebModule.pas
REST endpoint managerClasses/Service/vxManagerREST.pas
REST action execution threadClasses/Service/vxActionThread.pas
Flow REST configurationClasses/vxActionMan.pas
Flow REST setup UIForms/frmSetupActions.pas
API/OpenAPI moduleClasses/vxAPI.pas
API/OpenAPI setup UIForms/frmSetupAPI.pas
Request/response wrappersClasses/Tools/vxAPIStream.pas
Pascal Script API importsScripting/Imports/VxClasses/uPSI_vxAPIStream.pas
Script runtime accessorsClasses/vxScripter.pas
Cromis IPC wrapperClasses/Tools/vxIPC.pas
Velox Service IPC handlerVeloxService/classMain.pas
Designer service/IPC managerClasses/GUI/vxManagerService.pas
Command-line parameter parsingClasses/Tools/vxCommon.pas
Designer executable startupVelox.dpr
Velox Service executable startupVeloxService/VeloxService.dpr
Modified service manager switchesModified/Vcl/Vcl.SvcMgr.pas

Important Classes, Forms, and Services

TypeNamePurpose
ServiceVeloxAPIServiceWindows service hosting configured REST flow endpoints through Indy/WebBroker.
ServiceVeloxServiceWindows service executing non-REST orchestration and exposing service IPC commands.
ClassTvxRESTManagerLoads active REST flows and routes HTTP requests to matching endpoint items.
ClassTvxRESTItemRepresents one runtime REST endpoint backed by a flow.
ClassTRESTActionThreadExecutes a REST flow and bridges HTTP request/response objects into the flow runtime.
ClassTvxActionManFlow module class; stores REST endpoint metadata and runtime request/response references.
ClassTvxAPIDesigner API module that groups REST flows and generates OpenAPI JSON.
ClassTvxAPIRequestScript-visible wrapper around TIdHTTPAppRequest.
ClassTvxAPIResponseScript-visible wrapper around TIdHTTPAppResponse.
ClassTvxIPCClient wrapper over Cromis IPC for service control and diagnostics.
FormTfrmSetupActionsDesigner flow setup form, including REST endpoint fields.
FormTfrmSetupAPIDesigner API setup form for grouping REST flows and exporting OpenAPI schemas.
ConfigurationWhere usedNotes
gSetup.VeloxAPIPortVeloxAPIService/classMain.pasHTTP listener port. If zero, the API service defaults to 8359.
gSetup.VeloxAPIDomainService setup and security-related codeUsed as the configured API domain. Exact listener binding behavior was not confirmed in the reviewed API service startup code.
gSetup.VeloxAPIEnableSSLService setup/security-related codeSSL configuration exists, but active TLS binding behavior was not fully confirmed in reviewed API startup code.
gSetup.VeloxAPICertificateService setup/security-related codeCertificate configuration exists. Runtime certificate loading behavior is unclear from the reviewed API startup path.
gSetup.VeloxAPIUrlForms/frmSetupActions.pasUsed by Designer to display a link for a configured REST endpoint.
gSetup.VeloxWebInstallPathClasses/vxAPI.pasUsed as the base path for exported OpenAPI JSON under wwwroot\openapi\.
gSetup.ServiceStateVeloxService/classMain.pas, REST manager syncControls whether service-managed runtime endpoints are enabled.
VX_ACTION.RESTMETHODClasses/vxActionMan.pas, Classes/vxAPI.pasConfigured method used by Designer/OpenAPI generation. Runtime dispatch behavior is described below.
VX_ACTION.RESTENDPOINTClasses/vxActionMan.pas, Classes/Service/vxManagerREST.pasRuntime REST route key.
VX_ACTION.RESTALLOWANONClasses/vxActionMan.pas, Forms/frmSetupActions.pasStored and edited. Runtime enforcement was not found in the reviewed dispatcher.
VX_ACTION.REQUESTFID / VX_ACTION.RESPONSEFIDClasses/vxActionMan.pas, Classes/vxAPI.pasOptional request/response data definitions for REST/OpenAPI metadata and runtime binding.

API Surface Overview

REST API Runtime

The REST API runtime is hosted by VeloxAPIService.exe. Startup creates a TvxRESTManager, synchronises active REST flows from the system database, starts an Indy TIdHTTPWebBrokerBridge, and dispatches each HTTP request through TRESTModule.WebModuleBeforeDispatch.

TvxRESTManager.Synchronise loads active, non-archived actions where EXECUTION = fstREST. Each flow becomes a TvxRESTItem stored by configured RESTEndpoint.

REST Dispatch Flow

REST Endpoint Catalog

EndpointMethodPurposeRequestResponseAuthenticationSource
/GET or any method dispatched to path /Lists active REST API services as generated HTML.No required body. Uses the request object to build debug details in the generated HTML.HTML endpoint listing. On failure, HTTP 500 with Error listing API services. Please try again.No authentication check was found in the default endpoint handler.Classes/Service/vxManagerREST.pas
/favicon.icoGET or any method dispatched to path /favicon.icoReturns the configured API favicon.No body.Favicon content with icon content type.No authentication check was found.Classes/Service/vxManagerREST.pas
<RESTEndpoint>GETExecutes the flow configured for the endpoint. Query fields are copied into flow locals.Query string fields; request headers; optional X-UserNum header; no request body behavior specific to GET was found.Flow response. Success status defaults to configured RESTSuccessResult; flow log errors may return configured client or server status. Fatal exceptions return configured server status or HTTP 500. Timeout returns HTTP 500.Central authentication enforcement was not found. RESTAllowAnonymous is stored but not enforced in reviewed dispatcher code. Flow logic may perform its own checks.Classes/Service/vxManagerREST.pas, Classes/Service/vxActionThread.pas
<RESTEndpoint>POSTExecutes the flow configured for the endpoint with access to the request body through TvxAPIRequest.Request body stream/string; query fields; request headers; optional X-UserNum header.Flow response. Success status defaults to configured RESTSuccessResult; issue/error statuses may return configured client status; fatal exceptions return configured server status or HTTP 500. Timeout returns HTTP 500.Central authentication enforcement was not found. Flow logic may perform its own checks.Classes/Service/vxManagerREST.pas, Classes/Service/vxActionThread.pas, Classes/Tools/vxAPIStream.pas
<RESTEndpoint>PUT, PATCH, DELETE, HEAD, otherMethod values exist in TvxAPIRequest.HTTPMethod, but TvxRESTItem.WebActionHandler only dispatches mtGet and mtPost in reviewed code.Unclear.No explicit response behavior for unsupported methods was found in the reviewed TvxRESTItem.WebActionHandler code.Unclear.Classes/Service/vxManagerREST.pas, Classes/Tools/vxAPIStream.pas

Configured REST Flow Endpoint

REST endpoints are not hard-coded routes. They are configured on flows and stored in VX_ACTION.

Field/propertyPurposeDefault or valid valuesSource
RESTEndpointURL path used as the runtime route key.If blank when a flow is added, Designer/code defaults to /api/<FID without braces>. Setter prepends / if missing.Classes/vxActionMan.pas, Forms/frmSetupActions.pas
RESTMethodDesigner/OpenAPI method metadata.Defaults to hmGET. Designer may default DB-source flows to GET and file-source flows to POST.Classes/vxActionMan.pas, Forms/frmSetupActions.pas
RESTGroupsSemicolon-separated groups/tags for API documentation.Free text.Classes/vxActionMan.pas, Classes/vxAPI.pas
RESTSummaryShort endpoint summary.Free text.Classes/vxActionMan.pas, Classes/vxAPI.pas
RESTDescriptionLonger endpoint description.Rich text/plain text stored by module persistence.Classes/vxActionMan.pas, Classes/vxAPI.pas
RESTDocumentationExternal endpoint documentation URL used in OpenAPI generation.URL/free text.Classes/vxActionMan.pas, Classes/vxAPI.pas
RESTParamsQuery parameter metadata for OpenAPI generation.Name, description, type metadata edited in Designer.Forms/frmSetupActions.pas, Classes/vxAPI.pas
RESTSuccessResultHTTP status code used after successful execution.Defaults to 200.Classes/vxActionMan.pas, Classes/Service/vxManagerREST.pas
RESTClientErrorResultHTTP status code used when flow log status is issue/error.Defaults to 400.Classes/vxActionMan.pas, Classes/Service/vxManagerREST.pas
RESTServerErrorResultHTTP status code used for fatal exceptions.Defaults to 500.Classes/vxActionMan.pas, Classes/Service/vxManagerREST.pas
RESTAllowAnonymousDesigner-configured flag for anonymous access.Defaults to false. Runtime enforcement was not found in reviewed dispatcher code.Classes/vxActionMan.pas, Forms/frmSetupActions.pas
RequestDefOptional request data definition.Data definition module reference. Used by Designer/OpenAPI and bound to runtime request.Classes/vxActionMan.pas, Classes/vxAPI.pas
ResponseDefOptional response data definition.Data definition module reference. Used by Designer/OpenAPI and bound to runtime response.Classes/vxActionMan.pas, Classes/vxAPI.pas

REST Request Handling

For REST flow execution:

  • A TRESTActionThread is created for the request.
  • The flow is acquired from gActionPool.
  • FAction.REST is set to True.
  • Query fields are copied into flow locals through FAction.SetLocals(FRequest.QueryFields).
  • FAction.UserNum is set from the X-UserNum request field using StrToIntDef; missing or invalid values become 0.
  • FAction.Request and FAction.Response are assigned.
  • The flow executes synchronously from the HTTP caller's perspective because the handler waits up to FIVE_MINS_MILLI.
  • Connection pools are released at thread cleanup.

REST Response and Error Behavior

The reviewed code shows these response behaviors:

ConditionResponse behaviorSource
Endpoint manager disabledHTTP 503 with The API endpoint is unavailable right now. Please try again later.Classes/Service/vxManagerREST.pas
Endpoint not foundHTTP 500 with No API Flow configured for endpoint - <endpoint>.Classes/Service/vxManagerREST.pas
GET flow completes with flsErrorHTTP status is configured client error result.Classes/Service/vxManagerREST.pas
POST flow completes with flsIssue or flsErrorHTTP status is configured client error result.Classes/Service/vxManagerREST.pas
Flow fatal exceptionHTTP status is configured server error result, or 500 if unavailable.Classes/Service/vxManagerREST.pas
Flow timeoutHTTP 500 with timeout message.Classes/Service/vxManagerREST.pas
Flow log status is not successfulTvxLog.GetLogAPIResponse can write application/problem+json with error details.Classes/vxModule.pas, Classes/vxActionMan.pas

TvxLog.GetLogAPIResponse builds an application/problem+json payload with type, status, title, detail, instance, and errors fields from flow log items.

REST Authentication

No central inbound REST authentication check was found in the reviewed dispatch path.

Important observed behavior:

  • RESTAllowAnonymous is stored in VX_ACTION and edited in Designer, but no runtime enforcement was found in TvxRESTManager, TvxRESTItem, or TRESTActionThread.
  • Authorization is available on TvxAPIRequest and exposed to scripts.
  • X-UserNum is accepted from the request and copied into TvxActionMan.UserNum.
  • OpenAPI generation adds API key and bearer security schemes, but matching runtime enforcement was not found in the reviewed code.
  • Flow-specific script/module logic may implement authentication or authorization. That behavior depends on individual flows and cannot be inferred globally.

REST Examples

Default endpoint list:

GET http://<host>:8359/

Configured GET flow endpoint:

curl "http://<host>:8359/api/<endpoint>?id_client=123" ^
-H "X-UserNum: 123"

Configured POST flow endpoint:

curl -X POST "http://<host>:8359/api/<endpoint>" ^
-H "Content-Type: application/json" ^
-H "X-UserNum: 123" ^
--data "{\"example\":true}"

The exact endpoint paths, accepted fields, and response schemas are flow-specific and must be read from the configured flow, request data definition, response data definition, and scripts.

API/OpenAPI Designer Module

The TvxAPI module is a Designer module for grouping REST flows and generating/exporting OpenAPI JSON. It is not itself an HTTP endpoint in the reviewed code.

Purpose

TvxAPI lets a developer:

  • define API metadata such as version, description, terms, contact, license, and documentation URL;
  • define production and test server URLs;
  • group REST flows into an API document;
  • generate OpenAPI 3.0.4 JSON;
  • export the schema to a file or to the Velox Web install path.

OpenAPI Generation Flow

API Module Configuration

SettingPurposeSource
VersionAPI document version. Required for schema creation.Classes/vxAPI.pas
APIDescriptionOpenAPI info description.Classes/vxAPI.pas
OpenAPISchemaNameGenerated JSON filename. Defaults to safe module name plus version.Classes/vxAPI.pas
ProdURL / ProdURLDescriptionProduction server entry. At least production or test URL is required.Classes/vxAPI.pas
TestURL / TestURLDescriptionTest server entry. At least production or test URL is required.Classes/vxAPI.pas
Groups / GroupDescriptionOpenAPI tags. Groups are semicolon-separated; descriptions are split by ~.Classes/vxAPI.pas
TermsOpenAPI terms of service.Classes/vxAPI.pas
ContactName, ContactURL, ContactEmailOpenAPI contact object.Classes/vxAPI.pas
LicenseName, LicenseURLOpenAPI license object.Classes/vxAPI.pas
DocumentationURLOpenAPI external documentation URL.Classes/vxAPI.pas
API actionsLinked REST flows included in the document.Classes/vxAPI.pas, Forms/frmSetupAPI.pas

OpenAPI Security Schemes

Generated OpenAPI documents include:

SchemeOpenAPI typeLocation/name
API keyapiKeyHeader X-ApiKey
Bearer tokenHTTP bearerJWT Bearer Token

Runtime enforcement of these schemes was not found in the reviewed REST dispatcher. Treat them as generated documentation metadata unless a specific flow implements matching validation.

OpenAPI Export API

OperationPurposeRequestResponseAuthenticationSource
Create OpenAPI documentBuilds TOpenAPIDocument from linked REST flows.Designer action in TfrmSetupAPI; requires module name, version, and production or test URL.JSON text stored in TvxAPI.OpenAPISchema. Logs validation errors if required fields are missing.Designer/module access rules; no HTTP auth.Forms/frmSetupAPI.pas, Classes/vxAPI.pas
Export OpenAPI schemaSaves generated schema to gSetup.VeloxWebInstallPath + 'wwwroot\openapi\'.Existing OpenAPISchema.UTF-8 JSON file.Designer/module access rules; no HTTP auth.Classes/vxAPI.pas, Forms/frmSetupAPI.pas
Export to selected fileSaves generated schema to a user-selected .json file.Existing OpenAPISchema; save dialog path.UTF-8 JSON file.Designer/module access rules; no HTTP auth.Forms/frmSetupAPI.pas

WebHooks

No dedicated WebHook subsystem, WebHook class, WebHook module type, or WebHook endpoint catalog was found in the reviewed source code.

Webhook-style inbound integrations can be represented by configured REST flow endpoints because external systems can call VeloxAPIService using HTTP GET or POST. However, no separate WebHook-specific behavior was found for:

  • provider registration;
  • callback subscription management;
  • webhook secret storage;
  • signature verification;
  • replay protection;
  • webhook retry policy;
  • webhook delivery log separate from normal flow/API logging.

WebHook-Style REST Ingress

EndpointMethodPurposeRequestResponseAuthenticationSource
<RESTEndpoint>Usually POSTExternal system calls a configured REST flow as an inbound integration callback.Provider-specific body and headers. Exact schema depends on the flow's request data definition and scripts.Flow-specific response.No global webhook authentication or signature verification was found. Any verification would need to be implemented in the flow.Classes/Service/vxManagerREST.pas, Classes/Service/vxActionThread.pas, flow modules/scripts

Example webhook-style call:

curl -X POST "http://<host>:8359/api/<webhook-like-endpoint>" ^
-H "Content-Type: application/json" ^
-H "X-Provider-Signature: <provider-signature>" ^
--data "{\"event\":\"example.created\"}"

The source code does not show a standard Velox-level interpretation of provider signature headers.

Command-Line APIs

Command-line switches are parsed by helper functions in Classes/Tools/vxCommon.pas. The parser removes the first character from a tagged parameter and therefore accepts tag prefixes such as -, /, or \.

Shared Command-Line Parsing

FunctionPurposeBehavior
GetParamExistsTests whether a tagged command-line parameter exists.Strips the first character from each ParamStr, compares tag before = if present.
GetParamValReads a tagged command-line value.Strips the first character, matches tag=, removes surrounding quotes from the value.
GetParamSignatureRebuilds a parameter signature for service startup preservation.Adds quotes around values containing spaces.

Velox.exe

SwitchPurposeRequest/syntaxResponse/behaviorAuthenticationSource
-c=<config-key>Loads the system connection configuration.Velox.exe -c="ConfigKey"If gSystemConnection.Load fails, startup exits.OS/user context plus Velox login/runtime permissions.Velox.dpr
-testStarts in test system connection mode after startup checks.Velox.exe -c="ConfigKey" -testCalls gSystemConnection.SwitchSystemConnectionMode(True).Same as Designer startup.Velox.dpr
-st=trueAlternate test-mode switch.Velox.exe -c="ConfigKey" -st=trueCalls gSystemConnection.SwitchSystemConnectionMode(True).Same as Designer startup.Velox.dpr
-tm=trueEnables test master mode.Velox.exe -c="ConfigKey" -tm=trueSets TestMasterMode := True.Same as Designer startup.Velox.dpr
-testmasterAlternate test master switch.Velox.exe -c="ConfigKey" -testmasterSets TestMasterMode := True.Same as Designer startup.Velox.dpr
-a=trueEnables alpha mode.Velox.exe -c="ConfigKey" -a=trueSets EnableAlpha := True.Same as Designer startup.Velox.dpr

The reviewed Velox.dpr also contains commented-out startup options for corrupt imports and custom config handling. Because those branches are commented out, they are not documented here as active command-line APIs.

VeloxService.exe

SwitchPurposeRequest/syntaxResponse/behaviorAuthenticationSource
-c=<config-key>Loads the system connection configuration and contributes to service name.VeloxService.exe -c="ConfigKey" -n="Production"Required by service class. Missing value is logged as an error. Startup exits if system connection load fails.Windows service account / SCM permissions.VeloxService/VeloxService.dpr, VeloxService/classMain.pas
-n=<display-name>Supplies the unique display name used by service registration/lifecycle code.VeloxService.exe -c="ConfigKey" -n="Production"Required by service class. Missing value is logged as an error.Windows service account / SCM permissions.VeloxService/classMain.pas
-testRuns the service against the test system connection mode and appends the test suffix to service identity.VeloxService.exe -c="ConfigKey" -test -n="Test"Calls SwitchSystemConnectionMode(True) and preserves the switch in service startup params.Windows service account / SCM permissions.VeloxService/VeloxService.dpr, VeloxService/classMain.pas
-u=<user>User value accessor exists.VeloxService.exe -c="ConfigKey" -n="Production" -u="user"Usage beyond reading the parameter was not found in reviewed service startup code.Unclear.VeloxService/classMain.pas
-p=<password>Password value accessor exists.VeloxService.exe -c="ConfigKey" -n="Production" -p="secret"Usage beyond reading the parameter was not found in reviewed service startup code.Unclear.VeloxService/classMain.pas

VeloxAPIService.exe

SwitchPurposeRequest/syntaxResponse/behaviorAuthenticationSource
-c=<config-key>Loads the system connection configuration and contributes to service name.VeloxAPIService.exe -c="ConfigKey" -n="Production"Required by service class. Missing value is logged as an error. Startup exits if system connection load fails.Windows service account / SCM permissions.VeloxAPIService/VeloxAPIService.dpr, VeloxAPIService/classMain.pas
-n=<display-name>Supplies the unique display name used by service registration/lifecycle code.VeloxAPIService.exe -c="ConfigKey" -n="Production"Required by service class. Missing value is logged as an error.Windows service account / SCM permissions.VeloxAPIService/classMain.pas
-testRuns the API service against the test system connection mode and appends the test suffix to service identity.VeloxAPIService.exe -c="ConfigKey" -test -n="Test"Calls SwitchSystemConnectionMode(True) and preserves the switch in service startup params.Windows service account / SCM permissions.VeloxAPIService/VeloxAPIService.dpr, VeloxAPIService/classMain.pas
-u=<user>User value accessor exists.VeloxAPIService.exe -c="ConfigKey" -n="Production" -u="user"Usage beyond reading the parameter was not found in reviewed API service startup code.Unclear.VeloxAPIService/classMain.pas
-p=<password>Password value accessor exists.VeloxAPIService.exe -c="ConfigKey" -n="Production" -p="secret"Usage beyond reading the parameter was not found in reviewed API service startup code.Unclear.VeloxAPIService/classMain.pas

Windows Service Registration Switches

The modified VCL service manager recognizes install-related switches:

SwitchPurposeRequest/syntaxResponse/behaviorAuthenticationSource
-installInstalls service through service executable path.VeloxService.exe -install -c="ConfigKey" -n="Production"Calls RegisterServices(True, ...). Modified code uses Service.StartupParams as the service path.Requires Windows service installation permissions.Modified/Vcl/Vcl.SvcMgr.pas
-uninstallUninstalls service.VeloxService.exe -uninstall -c="ConfigKey" -n="Production"Calls RegisterServices(False, ...).Requires Windows service removal permissions.Modified/Vcl/Vcl.SvcMgr.pas
-silentSuppresses service registration UI/messages where supported.VeloxService.exe -install -silent ...Passed into RegisterServices.Requires Windows service installation/removal permissions.Modified/Vcl/Vcl.SvcMgr.pas

Designer service installation code uses ServiceRegister directly and builds service startup paths like:

VeloxService.exe -c="<config-key>" [-test] -n="<display-name>"
VeloxAPIService.exe -c="<config-key>" [-test] -n="<display-name>"

That is the normal installation path found in Classes/GUI/vxManagerService.pas.

Internal Cromis IPC APIs

Velox uses Cromis IPC for local communication between Designer and the Windows services. The wrapper class is TvxIPC.

IPC Transport

PropertyValue/behaviorSource
IPC libraryCromis IPCClasses/Tools/vxIPC.pas
Client computer nameEmpty string, with source comment indicating local computerClasses/Tools/vxIPC.pas
Timeout3000 msClasses/Tools/vxIPC.pas
Velox Service server nameVX_SERVICENAME + ConfigKey + GetTestModeSuffixVeloxService/classMain.pas
API Service server nameVX_APISERVICENAME + ConfigKey + GetTestModeSuffixVeloxAPIService/classMain.pas
Request IDUsually action GUID or new GUID depending on callClasses/Tools/vxIPC.pas

IPC Authentication

No explicit authentication or authorization check was found inside TvxIPC request creation or the reviewed service OnIPCExecuteRequest handlers. Access appears to rely on local machine access, Windows process/service boundaries, and any Designer-side permission checks before issuing commands.

IPC Action Catalog

IPC actionPurposeRequestResponseAuthenticationService supportSource
EnableServiceEnables the Velox service runtime.Action=EnableService; request ID is a new GUID.Status boolean. Velox Service updates gSetup.ServiceState and synchronises managers.No handler-level auth found.Implemented in VeloxService; branch exists but no response behavior found in VeloxAPIService.Classes/Tools/vxIPC.pas, VeloxService/classMain.pas, VeloxAPIService/classMain.pas
DisableServiceDisables the Velox service runtime.Action=DisableService; request ID is a new GUID.Status boolean. Velox Service disables managers and waits/frees executing items.No handler-level auth found.Implemented in VeloxService; branch exists but no response behavior found in VeloxAPIService.Same as above
ChangeActionSynchronises an action or transport after configuration changes.Action=ChangeAction, request ID is action GUID, ExecutionType, ModuleType.Status boolean.No handler-level auth found.Implemented in VeloxService; VeloxAPIService returns Status=True but reviewed branch does not resynchronise a REST action.Same as above
EnableActionEnables a service-managed action.Action=EnableAction, request ID is action GUID, ExecutionType, ModuleType.Status boolean.No handler-level auth found.Implemented in VeloxService; branch exists but no response behavior found in VeloxAPIService.Same as above
DisableActionDisables a service-managed action.Action=DisableAction, request ID is action GUID, ExecutionType, ModuleType.Status boolean.No handler-level auth found.Implemented in VeloxService; branch exists but no response behavior found in VeloxAPIService.Same as above
ActionStatusGets runtime status for schedule or monitor flow.Action=ActionStatus, request ID is action GUID, ExecutionType.Status, ActionStatus, LastRunTime, NextRunTime, PendingFiles.No handler-level auth found.Implemented for schedule/monitor in VeloxService. Not implemented in reviewed VeloxAPIService handler.Same as above
EndTaskRequests termination/end of a schedule or monitor task.Action=EndTask, request ID is action GUID, ExecutionType.Status boolean.No handler-level auth found.Implemented for schedule/monitor in VeloxService. Not implemented in reviewed VeloxAPIService handler.Same as above
RequestTaskCountReturns active runtime item counts.Action=RequestTaskCount; request ID is a new GUID.Status, ScheduleCount, FileMonitorCount, TransportInCount, TransportOutCount, RESTCount.No handler-level auth found.Implemented in both services. Velox Service reports REST count as 0; API Service reports gRESTManager.RESTItemCount and zeros for other counts.Same as above
DBConDetailsReturns database connection pool details.Action=DBConDetails; request ID is a new GUID.Status, TextDetails.No handler-level auth found.Implemented in VeloxService. Not implemented in reviewed VeloxAPIService handler.Same as above
SysConDetailsReturns system connection pool details.Action=SysConDetails; request ID is a new GUID.Status, TextDetails.No handler-level auth found.Implemented in VeloxService. Not implemented in reviewed VeloxAPIService handler.Same as above
MemoryDumpReturns diagnostic bug report text.Action=MemoryDump; request ID is a new GUID.Status, TextDetails.No handler-level auth found.Implemented in VeloxService. Not implemented in reviewed VeloxAPIService handler.Same as above

IPC Example

The IPC API is not HTTP. Requests are Cromis IPC data messages. Conceptual request for action status:

ServerName = "VeloxService" + <ConfigKey> + <TestSuffix>
Request.Id = <ActionFID>
Request.Data["Action"] = "ActionStatus"
Request.Data["ExecutionType"] = Ord(fstSchedule)

Response.Data["Status"] -> Boolean
Response.Data["ActionStatus"] -> Integer/string enum value
Response.Data["LastRunTime"] -> DateTime
Response.Data["NextRunTime"] -> DateTime
Response.Data["PendingFiles"] -> Integer

Conceptual request for API service REST endpoint count:

ServerName = "VeloxAPIService" + <ConfigKey> + <TestSuffix>
Request.Id = <new GUID>
Request.Data["Action"] = "RequestTaskCount"

Response.Data["Status"] -> Boolean
Response.Data["RESTCount"] -> Integer

Script-Facing REST APIs

REST flows can access the current HTTP request and response from Pascal Script through Request and Response functions registered by TvxScripter.

This is an internal runtime API, not a public HTTP endpoint.

Request API

APIPurposeRequestResponseAuthenticationSource
Request: TvxAPIRequestReturns the current REST request object for the executing flow.Called from script during REST flow execution.TvxAPIRequest instance for the current request.Inherits the inbound REST request context. No additional auth check found.Classes/vxScripter.pas, Scripting/Imports/VxClasses/uPSI_vxAPIStream.pas
TvxAPIRequest.ContentExposes request body stream.Script reads stream.TStream.Same as request context.Classes/Tools/vxAPIStream.pas
TvxAPIRequest.ContentStringExposes request body as decoded string.Script reads property.String decoded from raw content and content type.Same as request context.Classes/Tools/vxAPIStream.pas
TvxAPIRequest.HTTPMethodExposes request method as TvxHTTPMethod.Script reads property.Method enum mapped from Indy method type.Same as request context.Classes/Tools/vxAPIStream.pas

Script-visible request properties imported in uPSI_vxAPIStream.pas include:

HTTPMethod, Method, CookieFields, QueryFields, ProtocolVersion, URL, Query,
PathInfo, PathTranslated, Authorization, CacheControl, Cookie, Date, Accept,
From, Host, IfModifiedSince, Referer, UserAgent, ContentEncoding, ContentType,
ContentLength, ContentVersion, RawContent, Content, ContentString, Connection,
DerivedFrom, Expires, Title, RemoteAddr, RemoteHost, ScriptName, ServerPort,
RawPathInfo, RemoteIP

Response API

APIPurposeRequestResponseAuthenticationSource
Response: TvxAPIResponseReturns the current REST response object for the executing flow.Called from script during REST flow execution.TvxAPIResponse instance for the current response.Inherits the inbound REST request context. No additional auth check found.Classes/vxScripter.pas, Scripting/Imports/VxClasses/uPSI_vxAPIStream.pas
TvxAPIResponse.ContentStringSets or reads response body content.Script writes/reads property.Response body sent by WebBroker/Indy.Same as request context.Scripting/Imports/VxClasses/uPSI_vxAPIStream.pas
TvxAPIResponse.ContentSets or reads response content stream.Script writes/reads stream.Response content stream.Same as request context.Scripting/Imports/VxClasses/uPSI_vxAPIStream.pas
TvxAPIResponse.SetCookieFieldSets a response cookie field.Script method call.Cookie header behavior through response object.Same as request context.Scripting/Imports/VxClasses/uPSI_vxAPIStream.pas
TvxAPIResponse.SetCustomHeaderSets a custom response header.Script method call.Header added to response.Same as request context.Scripting/Imports/VxClasses/uPSI_vxAPIStream.pas

Script-visible response properties imported in uPSI_vxAPIStream.pas include:

Version, ReasonString, Server, WWWAuthenticate, Realm, Allow, Location,
ContentEncoding, ContentType, ContentVersion, DerivedFrom, Title, StatusCode,
ContentLength, Date, Expires, LastModified, CustomHeaders, FreeContentStream,
ContentString, Content

Script Example

var
Body: string;
begin
Body := Request.ContentString;

Response.ContentType := 'application/json';
Response.StatusCode := 200;
Response.ContentString := '{"ok":true}';
end.

Exact script behavior depends on the flow, request data definition, response data definition, and modules used inside the flow.

Outbound HTTP/API Client Behavior

Velox contains HTTP client and transport code for outbound integrations, including Classes/Tools/vxHTTP.pas and HTTP transport classes. These do not define fixed Velox-hosted endpoints. Instead, destination URLs, methods, authentication, payloads, and response handling are configured by the relevant transport/module/script.

Because the request asks for endpoint-level API documentation, outbound APIs are documented here as a configurable integration capability rather than a fixed endpoint catalog.

API surfacePurposeRequestResponseAuthenticationSource
HTTP transport/client modulesCall external HTTP APIs from Velox flows/transports.Configured URL, method, headers, body, and data definitions.External API response consumed by transport/module logic.Configured per transport/module/script. Exact options should be read from the transport documentation and setup code.Classes/Tools/vxHTTP.pas, transport classes

Dependency Graph

High-Level Data Flow

Unclear or Not Found

The following points were not determinable from the reviewed source code:

  • No dedicated WebHook subsystem was found.
  • No central REST authentication/authorization enforcement was found in the reviewed dispatch path.
  • RESTAllowAnonymous is stored and edited, but runtime enforcement was not found.
  • Generated OpenAPI security schemes are not matched by runtime enforcement in the reviewed dispatcher.
  • TvxRESTItem.WebActionHandler dispatches based on the actual request method and only handles GET/POST; it does not visibly compare the request method with the flow's configured RESTMethod.
  • Runtime behavior for unsupported HTTP methods is unclear because no explicit response handling was found after the GET/POST switch.
  • VeloxAPIService IPC branches for service/action enable/disable exist but do not show response behavior in the reviewed handler.
  • -u and -p service command-line accessors exist, but no active usage was found in the reviewed startup code.
  • SSL/TLS configuration fields exist, but complete runtime certificate binding behavior was not confirmed from the reviewed API service startup path.