naftiko: 1.0.0-alpha2 info: label: Dapr Pub/Sub API — PubSub description: 'Dapr Pub/Sub API — PubSub. 2 operations. Lead operation: Dapr Bulk Publish Events. Self-contained Naftiko capability covering one Dapr business surface.' tags: - Dapr - PubSub created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DAPR_API_KEY: DAPR_API_KEY capability: consumes: - type: http namespace: pubsub-pubsub baseUri: http://localhost:3500 description: Dapr Pub/Sub API — PubSub business capability. Self-contained, no shared references. resources: - name: v1.0-publish-bulk-pubsubname-topic path: /v1.0/publish/bulk/{pubsubname}/{topic} operations: - name: bulkpublishevents method: POST description: Dapr Bulk Publish Events outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pubsubname in: path type: string description: The name of the pub/sub component. required: true - name: topic in: path type: string description: The name of the topic. required: true - name: metadata.rawPayload in: query type: string description: Set to true to disable CloudEvent wrapping. - name: body in: body type: object description: Request body (JSON). required: true - name: v1.0-publish-pubsubname-topic path: /v1.0/publish/{pubsubname}/{topic} operations: - name: publishevent method: POST description: Dapr Publish Event outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: pubsubname in: path type: string description: The name of the pub/sub component. required: true - name: topic in: path type: string description: The name of the topic. required: true - name: metadata.rawPayload in: query type: string description: Set to true to disable CloudEvent wrapping of the payload. - name: metadata.ttlInSeconds in: query type: string description: Time-to-live for the message in seconds. - name: body in: body type: object description: Request body (JSON). required: true exposes: - type: rest namespace: pubsub-pubsub-rest port: 8080 description: REST adapter for Dapr Pub/Sub API — PubSub. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1-0/publish/bulk/{pubsubname}/{topic} name: v1-0-publish-bulk-pubsubname-topic description: REST surface for v1.0-publish-bulk-pubsubname-topic. operations: - method: POST name: bulkpublishevents description: Dapr Bulk Publish Events call: pubsub-pubsub.bulkpublishevents with: pubsubname: rest.pubsubname topic: rest.topic metadata.rawPayload: rest.metadata.rawPayload body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1-0/publish/{pubsubname}/{topic} name: v1-0-publish-pubsubname-topic description: REST surface for v1.0-publish-pubsubname-topic. operations: - method: POST name: publishevent description: Dapr Publish Event call: pubsub-pubsub.publishevent with: pubsubname: rest.pubsubname topic: rest.topic metadata.rawPayload: rest.metadata.rawPayload metadata.ttlInSeconds: rest.metadata.ttlInSeconds body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: pubsub-pubsub-mcp port: 9090 transport: http description: MCP adapter for Dapr Pub/Sub API — PubSub. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: dapr-bulk-publish-events description: Dapr Bulk Publish Events hints: readOnly: false destructive: false idempotent: false call: pubsub-pubsub.bulkpublishevents with: pubsubname: tools.pubsubname topic: tools.topic metadata.rawPayload: tools.metadata.rawPayload body: tools.body outputParameters: - type: object mapping: $. - name: dapr-publish-event description: Dapr Publish Event hints: readOnly: false destructive: false idempotent: false call: pubsub-pubsub.publishevent with: pubsubname: tools.pubsubname topic: tools.topic metadata.rawPayload: tools.metadata.rawPayload metadata.ttlInSeconds: tools.metadata.ttlInSeconds body: tools.body outputParameters: - type: object mapping: $.