Rigetti Computing · Arazzo Workflow

Rigetti Create Execution Engagement

Version 1.0.0

Resolve a processor's default endpoint and create an engagement that grants credentialed access to execute on the QPU.

1 workflow 1 source API 1 provider
View Spec View on GitHub Quantum ComputingSuperconducting QubitsQuantum Cloud ServicesQCSQPUQuilpyQuilNISQFault-Tolerant Quantum ComputingQuantum-Classical HybridPublic CompanyArazzoWorkflows

Provider

rigetti

Workflows

create-execution-engagement
Produce a credentialed engagement for executing on a quantum processor.
Validates the processor, resolves its default endpoint, and creates an engagement returning the address and credentials required to run programs on the hardware.
3 steps inputs: quantumProcessorId, tags, token outputs: address, clientPublic, endpointId, expiresAt, serverPublic
1
getProcessor
GetQuantumProcessor
Confirm the target quantum processor exists before engaging.
2
getDefaultEndpoint
GetDefaultEndpoint
Resolve the endpoint marked as default for the processor; this is the endpoint the engagement will grant access to.
3
createEngagement
CreateEngagement
Create an engagement against the resolved endpoint, returning the address and CURVE credentials required to execute programs on the QPU.

Source API Descriptions

Arazzo Workflow Specification

rigetti-create-execution-engagement-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Rigetti Create Execution Engagement
  summary: Resolve a processor's default endpoint and create an engagement that grants credentialed access to execute on the QPU.
  description: >-
    Execution on a Rigetti QPU is gated by an engagement: an authorization that
    returns the network address and ZeroMQ CURVE credentials a client uses to
    submit compiled programs over the data plane. This workflow confirms the
    target processor exists, resolves the endpoint set as its default, and then
    creates an engagement scoped to that processor, returning the address,
    credentials, and expiry the client needs to connect. Job submission and
    result retrieval themselves happen over the gRPC/RPCQ data plane that this
    control-plane API does not expose, so the workflow stops at producing a
    valid engagement. Every step spells out its request inline so the flow can
    be read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: qcsApi
  url: ../openapi/rigetti-qcs-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-execution-engagement
  summary: Produce a credentialed engagement for executing on a quantum processor.
  description: >-
    Validates the processor, resolves its default endpoint, and creates an
    engagement returning the address and credentials required to run programs on
    the hardware.
  inputs:
    type: object
    required:
    - token
    - quantumProcessorId
    properties:
      token:
        type: string
        description: A QCS JWT bearer token used to authenticate API requests.
      quantumProcessorId:
        type: string
        description: The processor to engage on (e.g. Aspen-M-3).
      tags:
        type: array
        description: Optional tags recorded on QPU requests for usage reporting.
        items:
          type: string
  steps:
  - stepId: getProcessor
    description: Confirm the target quantum processor exists before engaging.
    operationId: GetQuantumProcessor
    parameters:
    - name: quantum_processor_id
      in: path
      value: $inputs.quantumProcessorId
    - name: Authorization
      in: header
      value: Bearer $inputs.token
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      processorId: $response.body#/id
  - stepId: getDefaultEndpoint
    description: >-
      Resolve the endpoint marked as default for the processor; this is the
      endpoint the engagement will grant access to.
    operationId: GetDefaultEndpoint
    parameters:
    - name: quantumProcessorId
      in: path
      value: $steps.getProcessor.outputs.processorId
    - name: Authorization
      in: header
      value: Bearer $inputs.token
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      endpointId: $response.body#/id
      healthy: $response.body#/healthy
  - stepId: createEngagement
    description: >-
      Create an engagement against the resolved endpoint, returning the address
      and CURVE credentials required to execute programs on the QPU.
    operationId: CreateEngagement
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.token
    requestBody:
      contentType: application/json
      payload:
        endpointId: $steps.getDefaultEndpoint.outputs.endpointId
        quantumProcessorId: $steps.getProcessor.outputs.processorId
        tags: $inputs.tags
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      address: $response.body#/address
      endpointId: $response.body#/endpointId
      expiresAt: $response.body#/expiresAt
      clientPublic: $response.body#/credentials/clientPublic
      clientSecret: $response.body#/credentials/clientSecret
      serverPublic: $response.body#/credentials/serverPublic
  outputs:
    address: $steps.createEngagement.outputs.address
    endpointId: $steps.createEngagement.outputs.endpointId
    expiresAt: $steps.createEngagement.outputs.expiresAt
    clientPublic: $steps.createEngagement.outputs.clientPublic
    serverPublic: $steps.createEngagement.outputs.serverPublic