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