Argo Workflows · Capability

Argo Workflows — SensorService

Argo Workflows — SensorService. 7 operations. Lead operation: SensorService. Self-contained Naftiko capability covering one Argo Workflows business surface.

Run with Naftiko Argo WorkflowsSensorService

What You Can Do

GET
Sensorservicelistsensors — sensorservicelistsensors
/v1/api/v1/sensors/{namespace}
POST
Sensorservicecreatesensor — sensorservicecreatesensor
/v1/api/v1/sensors/{namespace}
GET
Sensorservicegetsensor — sensorservicegetsensor
/v1/api/v1/sensors/{namespace}/{name}
PUT
Sensorserviceupdatesensor — sensorserviceupdatesensor
/v1/api/v1/sensors/{namespace}/{name}
DELETE
Sensorservicedeletesensor — sensorservicedeletesensor
/v1/api/v1/sensors/{namespace}/{name}
GET
Sensorservicewatchsensors — sensorservicewatchsensors
/v1/api/v1/stream/sensors/{namespace}
GET
Sensorservicesensorslogs — sensorservicesensorslogs
/v1/api/v1/stream/sensors/{namespace}/logs

MCP Tools

sensorservicelistsensors

sensorservicelistsensors

read-only idempotent
sensorservicecreatesensor

sensorservicecreatesensor

sensorservicegetsensor

sensorservicegetsensor

read-only idempotent
sensorserviceupdatesensor

sensorserviceupdatesensor

idempotent
sensorservicedeletesensor

sensorservicedeletesensor

idempotent
sensorservicewatchsensors

sensorservicewatchsensors

read-only idempotent
sensorservicesensorslogs

sensorservicesensorslogs

read-only idempotent

Capability Spec

argo-workflows-sensorservice.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Argo Workflows — SensorService
  description: 'Argo Workflows — SensorService. 7 operations. Lead operation: SensorService. Self-contained Naftiko capability
    covering one Argo Workflows business surface.'
  tags:
  - Argo Workflows
  - SensorService
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ARGO_WORKFLOWS_API_KEY: ARGO_WORKFLOWS_API_KEY
capability:
  consumes:
  - type: http
    namespace: argo-workflows-sensorservice
    baseUri: http://localhost:2746
    description: Argo Workflows — SensorService business capability. Self-contained, no shared references.
    resources:
    - name: api-v1-sensors-namespace
      path: /api/v1/sensors/{namespace}
      operations:
      - name: sensorservicelistsensors
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: namespace
          in: path
          type: string
          required: true
        - name: listOptions.labelSelector
          in: query
          type: string
          description: A selector to restrict the list of returned objects by their labels.
        - name: listOptions.fieldSelector
          in: query
          type: string
          description: A selector to restrict the list of returned objects by their fields.
        - name: listOptions.watch
          in: query
          type: boolean
          description: Watch for changes to the described resources and return them as a stream of
        - name: listOptions.allowWatchBookmarks
          in: query
          type: boolean
          description: allowWatchBookmarks requests watch events with type "BOOKMARK".
        - name: listOptions.resourceVersion
          in: query
          type: string
          description: resourceVersion sets a constraint on what resource versions a request may be served from.
        - name: listOptions.resourceVersionMatch
          in: query
          type: string
          description: resourceVersionMatch determines how resourceVersion is applied to list calls.
        - name: listOptions.timeoutSeconds
          in: query
          type: string
          description: Timeout for the list/watch call.
        - name: listOptions.limit
          in: query
          type: string
          description: limit is a maximum number of responses to return for a list call. If more items exist, the
        - name: listOptions.continue
          in: query
          type: string
          description: The continue option should be set when retrieving more results from the server. Since this value is
        - name: listOptions.sendInitialEvents
          in: query
          type: boolean
          description: '`sendInitialEvents=true` may be set together with `watch=true`.'
      - name: sensorservicecreatesensor
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: namespace
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: string
          required: true
    - name: api-v1-sensors-namespace-name
      path: /api/v1/sensors/{namespace}/{name}
      operations:
      - name: sensorservicegetsensor
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: namespace
          in: path
          type: string
          required: true
        - name: name
          in: path
          type: string
          required: true
        - name: getOptions.resourceVersion
          in: query
          type: string
          description: resourceVersion sets a constraint on what resource versions a request may be served from.
      - name: sensorserviceupdatesensor
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: namespace
          in: path
          type: string
          required: true
        - name: name
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: string
          required: true
      - name: sensorservicedeletesensor
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: namespace
          in: path
          type: string
          required: true
        - name: name
          in: path
          type: string
          required: true
        - name: deleteOptions.gracePeriodSeconds
          in: query
          type: string
          description: The duration in seconds before the object should be deleted. Value must be non-negative integer.
        - name: deleteOptions.preconditions.uid
          in: query
          type: string
          description: Specifies the target UID.
        - name: deleteOptions.preconditions.resourceVersion
          in: query
          type: string
          description: Specifies the target ResourceVersion
        - name: deleteOptions.orphanDependents
          in: query
          type: boolean
          description: 'Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7.'
        - name: deleteOptions.propagationPolicy
          in: query
          type: string
          description: Whether and how garbage collection will be performed.
        - name: deleteOptions.dryRun
          in: query
          type: array
          description: When present, indicates that modifications should not be
        - name: deleteOptions.ignoreStoreReadErrorWithClusterBreakingPotential
          in: query
          type: boolean
          description: if set to true, it will trigger an unsafe deletion of the resource in
    - name: api-v1-stream-sensors-namespace
      path: /api/v1/stream/sensors/{namespace}
      operations:
      - name: sensorservicewatchsensors
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: namespace
          in: path
          type: string
          required: true
        - name: listOptions.labelSelector
          in: query
          type: string
          description: A selector to restrict the list of returned objects by their labels.
        - name: listOptions.fieldSelector
          in: query
          type: string
          description: A selector to restrict the list of returned objects by their fields.
        - name: listOptions.watch
          in: query
          type: boolean
          description: Watch for changes to the described resources and return them as a stream of
        - name: listOptions.allowWatchBookmarks
          in: query
          type: boolean
          description: allowWatchBookmarks requests watch events with type "BOOKMARK".
        - name: listOptions.resourceVersion
          in: query
          type: string
          description: resourceVersion sets a constraint on what resource versions a request may be served from.
        - name: listOptions.resourceVersionMatch
          in: query
          type: string
          description: resourceVersionMatch determines how resourceVersion is applied to list calls.
        - name: listOptions.timeoutSeconds
          in: query
          type: string
          description: Timeout for the list/watch call.
        - name: listOptions.limit
          in: query
          type: string
          description: limit is a maximum number of responses to return for a list call. If more items exist, the
        - name: listOptions.continue
          in: query
          type: string
          description: The continue option should be set when retrieving more results from the server. Since this value is
        - name: listOptions.sendInitialEvents
          in: query
          type: boolean
          description: '`sendInitialEvents=true` may be set together with `watch=true`.'
    - name: api-v1-stream-sensors-namespace-logs
      path: /api/v1/stream/sensors/{namespace}/logs
      operations:
      - name: sensorservicesensorslogs
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: namespace
          in: path
          type: string
          required: true
        - name: name
          in: query
          type: string
          description: optional - only return entries for this sensor name.
        - name: triggerName
          in: query
          type: string
          description: optional - only return entries for this trigger.
        - name: grep
          in: query
          type: string
          description: option - only return entries where `msg` contains this regular expressions.
        - name: podLogOptions.container
          in: query
          type: string
          description: The container for which to stream logs. Defaults to only container if there is one container in the
            pod.
        - name: podLogOptions.follow
          in: query
          type: boolean
          description: Follow the log stream of the pod. Defaults to false.
        - name: podLogOptions.previous
          in: query
          type: boolean
          description: Return previous terminated container logs. Defaults to false.
        - name: podLogOptions.sinceSeconds
          in: query
          type: string
          description: A relative time in seconds before the current time from which to show logs. If this value
        - name: podLogOptions.sinceTime.seconds
          in: query
          type: string
          description: Represents seconds of UTC time since Unix epoch
        - name: podLogOptions.sinceTime.nanos
          in: query
          type: integer
          description: Non-negative fractions of a second at nanosecond resolution. Negative
        - name: podLogOptions.timestamps
          in: query
          type: boolean
          description: If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
        - name: podLogOptions.tailLines
          in: query
          type: string
          description: If set, the number of lines from the end of the logs to show. If not specified,
        - name: podLogOptions.limitBytes
          in: query
          type: string
          description: If set, the number of bytes to read from the server before terminating the
        - name: podLogOptions.insecureSkipTLSVerifyBackend
          in: query
          type: boolean
          description: insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the
        - name: podLogOptions.stream
          in: query
          type: string
          description: Specify which container log stream to return to the client.
  exposes:
  - type: rest
    namespace: argo-workflows-sensorservice-rest
    port: 8080
    description: REST adapter for Argo Workflows — SensorService. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/api/v1/sensors/{namespace}
      name: api-v1-sensors-namespace
      description: REST surface for api-v1-sensors-namespace.
      operations:
      - method: GET
        name: sensorservicelistsensors
        description: sensorservicelistsensors
        call: argo-workflows-sensorservice.sensorservicelistsensors
        with:
          namespace: rest.namespace
          listOptions.labelSelector: rest.listOptions.labelSelector
          listOptions.fieldSelector: rest.listOptions.fieldSelector
          listOptions.watch: rest.listOptions.watch
          listOptions.allowWatchBookmarks: rest.listOptions.allowWatchBookmarks
          listOptions.resourceVersion: rest.listOptions.resourceVersion
          listOptions.resourceVersionMatch: rest.listOptions.resourceVersionMatch
          listOptions.timeoutSeconds: rest.listOptions.timeoutSeconds
          listOptions.limit: rest.listOptions.limit
          listOptions.continue: rest.listOptions.continue
          listOptions.sendInitialEvents: rest.listOptions.sendInitialEvents
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: sensorservicecreatesensor
        description: sensorservicecreatesensor
        call: argo-workflows-sensorservice.sensorservicecreatesensor
        with:
          namespace: rest.namespace
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/sensors/{namespace}/{name}
      name: api-v1-sensors-namespace-name
      description: REST surface for api-v1-sensors-namespace-name.
      operations:
      - method: GET
        name: sensorservicegetsensor
        description: sensorservicegetsensor
        call: argo-workflows-sensorservice.sensorservicegetsensor
        with:
          namespace: rest.namespace
          name: rest.name
          getOptions.resourceVersion: rest.getOptions.resourceVersion
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: sensorserviceupdatesensor
        description: sensorserviceupdatesensor
        call: argo-workflows-sensorservice.sensorserviceupdatesensor
        with:
          namespace: rest.namespace
          name: rest.name
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: sensorservicedeletesensor
        description: sensorservicedeletesensor
        call: argo-workflows-sensorservice.sensorservicedeletesensor
        with:
          namespace: rest.namespace
          name: rest.name
          deleteOptions.gracePeriodSeconds: rest.deleteOptions.gracePeriodSeconds
          deleteOptions.preconditions.uid: rest.deleteOptions.preconditions.uid
          deleteOptions.preconditions.resourceVersion: rest.deleteOptions.preconditions.resourceVersion
          deleteOptions.orphanDependents: rest.deleteOptions.orphanDependents
          deleteOptions.propagationPolicy: rest.deleteOptions.propagationPolicy
          deleteOptions.dryRun: rest.deleteOptions.dryRun
          deleteOptions.ignoreStoreReadErrorWithClusterBreakingPotential: rest.deleteOptions.ignoreStoreReadErrorWithClusterBreakingPotential
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/stream/sensors/{namespace}
      name: api-v1-stream-sensors-namespace
      description: REST surface for api-v1-stream-sensors-namespace.
      operations:
      - method: GET
        name: sensorservicewatchsensors
        description: sensorservicewatchsensors
        call: argo-workflows-sensorservice.sensorservicewatchsensors
        with:
          namespace: rest.namespace
          listOptions.labelSelector: rest.listOptions.labelSelector
          listOptions.fieldSelector: rest.listOptions.fieldSelector
          listOptions.watch: rest.listOptions.watch
          listOptions.allowWatchBookmarks: rest.listOptions.allowWatchBookmarks
          listOptions.resourceVersion: rest.listOptions.resourceVersion
          listOptions.resourceVersionMatch: rest.listOptions.resourceVersionMatch
          listOptions.timeoutSeconds: rest.listOptions.timeoutSeconds
          listOptions.limit: rest.listOptions.limit
          listOptions.continue: rest.listOptions.continue
          listOptions.sendInitialEvents: rest.listOptions.sendInitialEvents
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v1/stream/sensors/{namespace}/logs
      name: api-v1-stream-sensors-namespace-logs
      description: REST surface for api-v1-stream-sensors-namespace-logs.
      operations:
      - method: GET
        name: sensorservicesensorslogs
        description: sensorservicesensorslogs
        call: argo-workflows-sensorservice.sensorservicesensorslogs
        with:
          namespace: rest.namespace
          name: rest.name
          triggerName: rest.triggerName
          grep: rest.grep
          podLogOptions.container: rest.podLogOptions.container
          podLogOptions.follow: rest.podLogOptions.follow
          podLogOptions.previous: rest.podLogOptions.previous
          podLogOptions.sinceSeconds: rest.podLogOptions.sinceSeconds
          podLogOptions.sinceTime.seconds: rest.podLogOptions.sinceTime.seconds
          podLogOptions.sinceTime.nanos: rest.podLogOptions.sinceTime.nanos
          podLogOptions.timestamps: rest.podLogOptions.timestamps
          podLogOptions.tailLines: rest.podLogOptions.tailLines
          podLogOptions.limitBytes: rest.podLogOptions.limitBytes
          podLogOptions.insecureSkipTLSVerifyBackend: rest.podLogOptions.insecureSkipTLSVerifyBackend
          podLogOptions.stream: rest.podLogOptions.stream
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: argo-workflows-sensorservice-mcp
    port: 9090
    transport: http
    description: MCP adapter for Argo Workflows — SensorService. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: sensorservicelistsensors
      description: sensorservicelistsensors
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: argo-workflows-sensorservice.sensorservicelistsensors
      with:
        namespace: tools.namespace
        listOptions.labelSelector: tools.listOptions.labelSelector
        listOptions.fieldSelector: tools.listOptions.fieldSelector
        listOptions.watch: tools.listOptions.watch
        listOptions.allowWatchBookmarks: tools.listOptions.allowWatchBookmarks
        listOptions.resourceVersion: tools.listOptions.resourceVersion
        listOptions.resourceVersionMatch: tools.listOptions.resourceVersionMatch
        listOptions.timeoutSeconds: tools.listOptions.timeoutSeconds
        listOptions.limit: tools.listOptions.limit
        listOptions.continue: tools.listOptions.continue
        listOptions.sendInitialEvents: tools.listOptions.sendInitialEvents
      outputParameters:
      - type: object
        mapping: $.
    - name: sensorservicecreatesensor
      description: sensorservicecreatesensor
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: argo-workflows-sensorservice.sensorservicecreatesensor
      with:
        namespace: tools.namespace
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: sensorservicegetsensor
      description: sensorservicegetsensor
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: argo-workflows-sensorservice.sensorservicegetsensor
      with:
        namespace: tools.namespace
        name: tools.name
        getOptions.resourceVersion: tools.getOptions.resourceVersion
      outputParameters:
      - type: object
        mapping: $.
    - name: sensorserviceupdatesensor
      description: sensorserviceupdatesensor
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: argo-workflows-sensorservice.sensorserviceupdatesensor
      with:
        namespace: tools.namespace
        name: tools.name
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: sensorservicedeletesensor
      description: sensorservicedeletesensor
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: argo-workflows-sensorservice.sensorservicedeletesensor
      with:
        namespace: tools.namespace
        name: tools.name
        deleteOptions.gracePeriodSeconds: tools.deleteOptions.gracePeriodSeconds
        deleteOptions.preconditions.uid: tools.deleteOptions.preconditions.uid
        deleteOptions.preconditions.resourceVersion: tools.deleteOptions.preconditions.resourceVersion
        deleteOptions.orphanDependents: tools.deleteOptions.orphanDependents
        deleteOptions.propagationPolicy: tools.deleteOptions.propagationPolicy
        deleteOptions.dryRun: tools.deleteOptions.dryRun
        deleteOptions.ignoreStoreReadErrorWithClusterBreakingPotential: tools.deleteOptions.ignoreStoreReadErrorWithClusterBreakingPotential
      outputParameters:
      - type: object
        mapping: $.
    - name: sensorservicewatchsensors
      description: sensorservicewatchsensors
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: argo-workflows-sensorservice.sensorservicewatchsensors
      with:
        namespace: tools.namespace
        listOptions.labelSelector: tools.listOptions.labelSelector
        listOptions.fieldSelector: tools.listOptions.fieldSelector
        listOptions.watch: tools.listOptions.watch
        listOptions.allowWatchBookmarks: tools.listOptions.allowWatchBookmarks
        listOptions.resourceVersion: tools.listOptions.resourceVersion
        listOptions.resourceVersionMatch: tools.listOptions.resourceVersionMatch
        listOptions.timeoutSeconds: tools.listOptions.timeoutSeconds
        listOptions.limit: tools.listOptions.limit
        listOptions.continue: tools.listOptions.continue
        listOptions.sendInitialEvents: tools.listOptions.sendInitialEvents
      outputParameters:
      - type: object
        mapping: $.
    - name: sensorservicesensorslogs
      description: sensorservicesensorslogs
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: argo-workflows-sensorservice.sensorservicesensorslogs
      with:
        namespace: tools.namespace
        name: tools.name
        triggerName: tools.triggerName
        grep: tools.grep
        podLogOptions.container: tools.podLogOptions.container
        podLogOptions.follow: tools.podLogOptions.follow
        podLogOptions.previous: tools.podLogOptions.previous
        podLogOptions.sinceSeconds: tools.podLogOptions.sinceSeconds
        podLogOptions.sinceTime.seconds: tools.podLogOptions.sinceTime.seconds
        podLogOptions.sinceTime.nanos: tools.podLogOptions.sinceTime.nanos
        podLogOptions.timestamps: tools.podLogOptions.timestamps
        podLogOptions.tailLines: tools.podLogOptions.tailLines
        podLogOptions.limitBytes: tools.podLogOptions.limitBytes
        podLogOptions.insecureSkipTLSVerifyBackend: tools.podLogOptions.insecureSkipTLSVerifyBackend
        podLogOptions.stream: tools.podLogOptions.stream
      outputParameters:
      - type: object
        mapping: $.