Dataiku · Arazzo Workflow

Dataiku Import and Preload API Node Generation

Version 1.0.0

Import a generation bundle for a service, preload it into memory, then switch the service to it.

1 workflow 1 source API 1 provider
View Spec View on GitHub AnalyticsArtificial IntelligenceData PlatformData ScienceMachine LearningArazzoWorkflows

Provider

dataiku

Workflows

import-and-preload-generation
Import a generation bundle, preload it, and switch the service to it.
Imports a generation via multipart upload, preloads it, then switches the service to the new generation.
3 steps inputs: apiKey, bundleFile, serviceId outputs: generationId, serviceId
1
importGeneration
importGeneration
Import a new generation bundle for the service from a ZIP archive.
2
preloadGeneration
preloadGeneration
Preload the imported generation into memory to reduce cold-start latency.
3
switchGeneration
switchGeneration
Switch the service to the newly preloaded generation.

Source API Descriptions

Arazzo Workflow Specification

dataiku-import-and-preload-generation-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Dataiku Import and Preload API Node Generation
  summary: Import a generation bundle for a service, preload it into memory, then switch the service to it.
  description: >-
    Rolls out a new model bundle to a Dataiku DSS API node with minimal
    cold-start latency. The workflow imports a generation bundle as a multipart
    upload, preloads the imported generation into memory, and then switches the
    service to that generation so live traffic is served from a warm model.
    Every step inlines its request so the flow can be executed without opening
    the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: dssApiNodeAdminApi
  url: ../openapi/dataiku-api-node-admin-openapi.yml
  type: openapi
workflows:
- workflowId: import-and-preload-generation
  summary: Import a generation bundle, preload it, and switch the service to it.
  description: >-
    Imports a generation via multipart upload, preloads it, then switches the
    service to the new generation.
  inputs:
    type: object
    required:
    - apiKey
    - serviceId
    - bundleFile
    properties:
      apiKey:
        type: string
        description: API node admin key passed as a Bearer token in the Authorization header.
      serviceId:
        type: string
        description: Identifier of the service to import a generation into.
      bundleFile:
        type: string
        description: The ZIP archive (binary) containing the generation bundle.
  steps:
  - stepId: importGeneration
    description: Import a new generation bundle for the service from a ZIP archive.
    operationId: importGeneration
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: serviceId
      in: path
      value: $inputs.serviceId
    requestBody:
      contentType: multipart/form-data
      payload:
        file: $inputs.bundleFile
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      generationId: $response.body#/generationId
  - stepId: preloadGeneration
    description: Preload the imported generation into memory to reduce cold-start latency.
    operationId: preloadGeneration
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: serviceId
      in: path
      value: $inputs.serviceId
    - name: generationId
      in: path
      value: $steps.importGeneration.outputs.generationId
    successCriteria:
    - condition: $statusCode == 200
  - stepId: switchGeneration
    description: Switch the service to the newly preloaded generation.
    operationId: switchGeneration
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: serviceId
      in: path
      value: $inputs.serviceId
    - name: generationId
      in: path
      value: $steps.importGeneration.outputs.generationId
    successCriteria:
    - condition: $statusCode == 200
  outputs:
    serviceId: $inputs.serviceId
    generationId: $steps.importGeneration.outputs.generationId