naftiko: 1.0.0-alpha2 info: label: Vineyard Data Sharing Workflow description: Workflow capability for sharing distributed in-memory objects across computation engines using Vineyard. Supports data scientists and ML engineers managing zero-copy data sharing, object lifecycle, and Kubernetes cluster operations for big data analytics pipelines. tags: - Big Data - CNCF - Cloud Native - Data Engineering - Distributed Systems - In-Memory Storage - Machine Learning - Python created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: VINEYARD_IPC_SOCKET: VINEYARD_IPC_SOCKET capability: consumes: - type: http namespace: vineyard-client baseUri: http://localhost:9600 description: Vineyard in-memory data manager REST interface resources: - name: connection path: /connect description: Connect to the vineyard server operations: - name: connect-to-server method: POST description: Establish IPC or RPC connection to vineyard inputParameters: - name: socket in: body type: string required: false description: UNIX domain socket path outputRawFormat: json outputParameters: - name: result type: object value: $. - name: objects path: /objects description: Store and retrieve in-memory objects operations: - name: put-object method: POST description: Store a Python object in vineyard inputParameters: - name: persist in: body type: boolean required: false description: Whether to persist globally - name: name in: body type: string required: false description: Optional name to associate outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-object method: GET description: Retrieve an object by ObjectID inputParameters: - name: objectId in: path type: string required: true description: The vineyard ObjectID - name: fetch in: query type: boolean required: false description: Fetch remote objects via RPC outputRawFormat: json outputParameters: - name: result type: object value: $. - name: delete-object method: DELETE description: Delete an object from vineyard inputParameters: - name: objectId in: path type: string required: true description: The ObjectID to delete - name: force in: query type: boolean required: false description: Force deletion - name: deep in: query type: boolean required: false description: Recursively delete members outputRawFormat: json outputParameters: - name: result type: object value: $. - name: metadata path: /objects/{objectId}/metadata description: Inspect object metadata operations: - name: get-object-metadata method: GET description: Fetch metadata for a vineyard object inputParameters: - name: objectId in: path type: string required: true description: The ObjectID to inspect outputRawFormat: json outputParameters: - name: result type: object value: $. - name: persistence path: /objects/{objectId}/persist description: Persist objects for cluster-wide visibility operations: - name: persist-object method: POST description: Make an object persistent across vineyard instances inputParameters: - name: objectId in: path type: string required: true description: The ObjectID to persist outputRawFormat: json outputParameters: - name: result type: object value: $. - name: names path: /names description: Associate names with objects operations: - name: put-name method: POST description: Associate a human-readable name with an ObjectID inputParameters: - name: object_id in: body type: string required: true description: The ObjectID to name - name: name in: body type: string required: true description: The name string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-by-name method: GET description: Retrieve an ObjectID by name inputParameters: - name: name in: path type: string required: true description: The name to resolve - name: wait in: query type: boolean required: false description: Block until name is available outputRawFormat: json outputParameters: - name: result type: object value: $. - name: blobs path: /blobs description: Low-level blob operations operations: - name: create-blob method: POST description: Allocate a raw memory blob inputParameters: - name: size in: body type: integer required: true description: Bytes to allocate outputRawFormat: json outputParameters: - name: result type: object value: $. - name: get-blob method: GET description: Retrieve a raw memory blob inputParameters: - name: objectId in: path type: string required: true description: The blob ObjectID - name: remote in: query type: boolean required: false description: Retrieve from remote instance outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: vineyard-data-sharing-api description: Unified REST API for vineyard data sharing and object lifecycle management. resources: - path: /v1/connect name: connection description: Server connection management operations: - method: POST name: connect-to-server description: Connect to a vineyard in-memory server call: vineyard-client.connect-to-server outputParameters: - type: object mapping: $. - path: /v1/objects name: objects description: Distributed in-memory object storage operations: - method: POST name: put-object description: Store an object in vineyard shared memory call: vineyard-client.put-object outputParameters: - type: object mapping: $. - path: /v1/objects/{objectId} name: object-by-id description: Object access by ID operations: - method: GET name: get-object description: Retrieve an in-memory object by its ID call: vineyard-client.get-object with: objectId: rest.objectId outputParameters: - type: object mapping: $. - method: DELETE name: delete-object description: Remove an object from vineyard memory call: vineyard-client.delete-object with: objectId: rest.objectId outputParameters: - type: object mapping: $. - path: /v1/objects/{objectId}/metadata name: object-metadata description: Object metadata inspection operations: - method: GET name: get-object-metadata description: Inspect metadata including typename, size, and location call: vineyard-client.get-object-metadata with: objectId: rest.objectId outputParameters: - type: object mapping: $. - path: /v1/objects/{objectId}/persist name: object-persistence description: Object persistence across cluster instances operations: - method: POST name: persist-object description: Persist object for cluster-wide visibility call: vineyard-client.persist-object with: objectId: rest.objectId outputParameters: - type: object mapping: $. - path: /v1/names name: names description: Human-readable names for objects operations: - method: POST name: put-name description: Register a name for an object call: vineyard-client.put-name outputParameters: - type: object mapping: $. - path: /v1/names/{name} name: name-lookup description: Name-to-ID resolution operations: - method: GET name: get-by-name description: Resolve a name to its ObjectID call: vineyard-client.get-by-name with: name: rest.name outputParameters: - type: object mapping: $. - path: /v1/blobs name: blobs description: Raw memory blob management operations: - method: POST name: create-blob description: Allocate a raw memory blob for custom data call: vineyard-client.create-blob outputParameters: - type: object mapping: $. - path: /v1/blobs/{objectId} name: blob-by-id description: Blob retrieval operations: - method: GET name: get-blob description: Retrieve a raw memory blob by ID call: vineyard-client.get-blob with: objectId: rest.objectId outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: vineyard-data-sharing-mcp transport: http description: MCP server for AI-assisted vineyard data sharing and object lifecycle management. tools: - name: connect-to-vineyard description: Connect to a vineyard in-memory data manager server via IPC or TCP hints: readOnly: false idempotent: true call: vineyard-client.connect-to-server outputParameters: - type: object mapping: $. - name: store-object description: Store a Python object in vineyard shared memory for zero-copy sharing hints: readOnly: false idempotent: false call: vineyard-client.put-object outputParameters: - type: object mapping: $. - name: retrieve-object description: Retrieve a distributed in-memory object by its ObjectID hints: readOnly: true idempotent: true call: vineyard-client.get-object with: objectId: tools.objectId outputParameters: - type: object mapping: $. - name: inspect-object-metadata description: Inspect metadata for a vineyard object including type, size, and cluster location hints: readOnly: true idempotent: true call: vineyard-client.get-object-metadata with: objectId: tools.objectId outputParameters: - type: object mapping: $. - name: remove-object description: Delete a vineyard object from shared memory hints: readOnly: false destructive: true idempotent: true call: vineyard-client.delete-object with: objectId: tools.objectId outputParameters: - type: object mapping: $. - name: persist-object-globally description: Make a vineyard object visible across all cluster instances hints: readOnly: false idempotent: true call: vineyard-client.persist-object with: objectId: tools.objectId outputParameters: - type: object mapping: $. - name: register-object-name description: Associate a human-readable name with a vineyard ObjectID for discovery hints: readOnly: false idempotent: false call: vineyard-client.put-name outputParameters: - type: object mapping: $. - name: lookup-object-by-name description: Resolve a named vineyard object to its ObjectID hints: readOnly: true idempotent: true call: vineyard-client.get-by-name with: name: tools.name outputParameters: - type: object mapping: $. - name: allocate-blob description: Allocate a raw memory blob in vineyard for low-level data operations hints: readOnly: false idempotent: false call: vineyard-client.create-blob outputParameters: - type: object mapping: $. - name: retrieve-blob description: Retrieve a raw memory blob from vineyard storage hints: readOnly: true idempotent: true call: vineyard-client.get-blob with: objectId: tools.objectId outputParameters: - type: object mapping: $.