# DaprClient API

HTTP client for Dapr sidecar APIs used by the Dapr event bridge.

---
Canonical: /handbook/api/classes/_purista_dapr-sdk.DaprClient/
Source: dapr-sdk/src/DaprClient/DaprClient.impl.ts
Format: Markdown for agents
---

HTTP client for Dapr sidecar APIs used by the Dapr event bridge.

Package: `@purista/dapr-sdk`

## Signature

```typescript
class DaprClient
```

## Members

### Constructors

- `new constructor(config: { apiPrefix: string; baseUrl: string; basicAuth: { password: string; username: string }; bearerToken: string; clientConfig: DaprClientConfig; commandPayloadAsCloudEvent: boolean; ... })`

### Properties

- `auth: AuthCredentials`
- `baseUrl: URL | undefined` — Parsed base URL, when configured.
- `config: { apiPrefix: string; baseUrl: string; basicAuth: { password: string; username: string }; bearerToken: string; clientConfig: DaprClientConfig; commandPayloadAsCloudEvent: boolean; ... }` — Resolved client configuration.
- `logger: Logger` — Logger scoped to this client.
- `name: string` — Client name used in logs, spans, and metrics.
- `spanProcessor: SpanProcessor | undefined` — Optional OpenTelemetry span processor configured for this client.
- `timeout: number` — Default request timeout in milliseconds.
- `traceProvider: NodeTracerProvider` — Node tracer provider owned by this client instance.

### Methods

- `delete<T>(path: string, options?: HttpClientRequestOptions, payload?: unknown): Promise<T>` — DELETE request.
- `execute(method: string, path: string, options?: HttpClientRequestOptions, payload?: unknown): Promise<any>` — Helper method
- `get<T>(path: string, options?: HttpClientRequestOptions): Promise<T>` — GET request.
- `getApiPathForCommand(addess: EBMessageAddress, metadata: { expose: { contentEncodingRequest: string; contentEncodingResponse: string; contentTypeRequest: string; contentTypeResponse: string; deprecated: boolean; inputPayload: SchemaObject; ... } & { http: { method: unknown | unknown | unknown | unknown | unknown; mode: unknown | unknown; openApi: { additionalStatusCodes: unknown; description: unknown; isSecure: unknown; operationId: unknown; query: unknown; summary: unknown; ... }; path: string; stream: { documentationUrl: unknown; mode: unknown; protocol: unknown } } } }): string` — Returns the public REST projection path for an HTTP-exposed command.
- `getInternalPathForCommand(address: EBMessageAddress): string` — Returns the internal route Dapr calls for a PURISTA command.
- `getInternalPathForSubscription(address: EBMessageAddress): string` — Returns the internal route Dapr calls for a PURISTA subscription.
- `getTracer(): Tracer` — Returns OpenTelemetry tracer of this client.
- `getUrlAndHeader(path: string, options?: HttpClientRequestOptions): { headers: Record<string, string>; url: URL }`
- `invoke(command: { contentEncoding: string; contentType: string; correlationId: string; eventName: string; id: string; messageType: Command; ... }, headers?: Record<string, string>, timeout?: number): Promise<CommandResponse>` — Invokes a remote PURISTA command through Dapr service invocation.
- `isSidecarAvailable(): Promise<boolean>` — Checks whether the local Dapr sidecar metadata endpoint is reachable.
- `patch<T>(path: string, payload: unknown, options?: HttpClientRequestOptions): Promise<T>` — PATCH request with an optional JSON payload.
- `post<T>(path: string, payload: unknown, options?: HttpClientRequestOptions): Promise<T>` — POST request with an optional JSON payload.
- `put<T>(path: string, payload: unknown, options?: HttpClientRequestOptions): Promise<T>` — PUT request with an optional JSON payload.
- `sendEvent(message: EBMessage, headers?: Record<string, string>): Promise<void>` — Publishes a PURISTA event message to the configured Dapr Pub/Sub component.
- `setBearerToken(token: string | undefined): void` — Set the bearer token for all following requests.
- `startActiveSpan<F>(name: string, opts: SpanOptions, context: Context | undefined, fn: (span: Span) => Promise<F>): Promise<F>` — Start a child span for OpenTelemetry tracking.
