enum<string>
required
Enum options:
ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENTstring
required
Timestamp (in milliseconds) of the request, used to verify liveness of user requests.
string
required
Unique identifier for a given Organization.
object
required
The parameters object containing the specific intent data for this activity.
Show details
Show details
array
required
Arguments to pass to the pivot binary at startup. Encoded as a list of strings, for example [“—foo”, “bar”]
Show item details
Show item details
Array item type: string
item field
object
required
The activity object containing type, intent, and result
Show activity details
Show activity details
curl --request POST \
--url https://api.turnkey.com/public/v1/submit/create_tvc_deployment \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header "X-Stamp: <string> (see Authorizations)" \
--data '{
"type": "ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT",
"timestampMs": "<string> (e.g. 1746736509954)",
"organizationId": "<string> (Your Organization ID)",
"parameters": {
"appId": "<string>",
"qosVersion": "<string>",
"pivotContainerImageUrl": "<string>",
"pivotPath": "<string>",
"pivotArgs": [
"<string>"
],
"expectedPivotDigest": "<string>",
"nonce": "<number>",
"pivotContainerEncryptedPullSecret": "<string>",
"debugMode": "<boolean>",
"healthCheckType": "<TVC_HEALTH_CHECK_TYPE_HTTP>",
"healthCheckPort": "<number>",
"publicIngressPort": "<number>"
}
}'
import { Turnkey } from "@turnkey/sdk-server";
const turnkeyClient = new Turnkey({
apiBaseUrl: "https://api.turnkey.com",
apiPublicKey: process.env.API_PUBLIC_KEY!,
apiPrivateKey: process.env.API_PRIVATE_KEY!,
defaultOrganizationId: process.env.ORGANIZATION_ID!,
});
const response = await turnkeyClient.apiClient().createTvcDeployment({
appId: "<string> (The unique identifier of the to-be-deployed TVC application)",
qosVersion: "<string> (The QuorumOS version to use to deploy this application)",
pivotContainerImageUrl: "<string> (URL of the container containing the pivot binary)",
pivotPath: "<string> (Location of the binary in the pivot container)",
pivotArgs: ["<string>"] // Arguments to pass to the pivot binary at startup. Encoded as a list of strings, for example ["--foo", "bar"],
expectedPivotDigest: "<string> (Digest of the pivot binary in the pivot container. This value will be inserted in the QOS manifest to ensure application integrity.)",
nonce: 0 // Optional nonce to ensure uniqueness of the deployment manifest. If not provided, it defaults to the current Unix timestamp in seconds.,
pivotContainerEncryptedPullSecret: "<string> (Optional encrypted pull secret to authorize Turnkey to pull the pivot container image. If your image is public, leave this empty.)",
debugMode: true // Optional flag to indicate whether to deploy the TVC app in debug mode, which includes additional logging and debugging tools. Default is false.,
healthCheckType: "<TVC_HEALTH_CHECK_TYPE_HTTP>" // healthCheckType field,
healthCheckPort: 0 // Port to use for health checks.,
publicIngressPort: 0 // Port to use for public ingress.
});
{
"activity": {
"id": "<activity-id>",
"status": "ACTIVITY_STATUS_COMPLETED",
"type": "ACTIVITY_TYPE_CREATE_TVC_DEPLOYMENT",
"organizationId": "<organization-id>",
"timestampMs": "<timestamp> (e.g. 1746736509954)",
"result": {
"activity": {
"id": "<string>",
"organizationId": "<string>",
"status": "<string>",
"type": "<string>",
"intent": {
"createTvcDeploymentIntent": {
"appId": "<string>",
"qosVersion": "<string>",
"pivotContainerImageUrl": "<string>",
"pivotPath": "<string>",
"pivotArgs": [
"<string>"
],
"expectedPivotDigest": "<string>",
"nonce": "<number>",
"pivotContainerEncryptedPullSecret": "<string>",
"debugMode": "<boolean>",
"healthCheckType": "<TVC_HEALTH_CHECK_TYPE_HTTP>",
"healthCheckPort": "<number>",
"publicIngressPort": "<number>"
}
},
"result": {
"createTvcDeploymentResult": {
"deploymentId": "<string>",
"manifestId": "<string>"
}
},
"votes": "<array>",
"fingerprint": "<string>",
"canApprove": "<boolean>",
"canReject": "<boolean>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
}
}
}