Certificate
property Certificate: string read write;
Example
procedure ScriptEvent(var Value: variant);
begin
Http.AuthType := fatNetsuiteOAuth;
Http.GrantType := gtClientCredentials;
Http.Certificate := 'C:\ProgramData\Velox\Secrets\netsuite-private-key.pem';
Value := Http.Certificate;
end;
Usage
Names the private-key file used to sign NetSuite OAuth client assertions, despite the property's certificate-oriented name.
Additional Technical Info
Certificate defaults to an empty string and is consulted only by the NetSuite OAuth client-credentials path. Despite its name, the value is a filename from which Velox loads the private signing key. The matching public certificate is what an administrator uploads to NetSuite.
When the first NetSuite assertion is needed, the authenticator reads the entire file as ASCII and caches the resulting key text. It then creates a JWT with:
issset toClientId;scopeset toScope;audfixed fromTenantas the NetSuite token endpoint;- issue time
Nowand expiry 59 minutes later; kidset fromSecret; and- an ES512 signature made with the cached file content.
The cache is not keyed by filename. Changing Certificate after the first assertion does not clear the cached key, and ClearAuthentication does not clear it either. Use a new TvxHTTP object after rotating or changing the key file.
The file is opened using the Velox process account and can therefore expose any readable file if the path is untrusted. Keep it outside script/source repositories, restrict its ACL to the service identity and administrators, and obtain the path from approved protected configuration. The key is retained as a managed string and is not explicitly zeroed. Missing, unreadable or malformed key material raises during authentication before the resource request.
This property does not configure the TLS client certificate used for HTTPS, and it does not repair the HTTP helper's absent server-certificate validation. It is solely NetSuite JWT signing material.
External references
Created 2026-07-15