Plugins

Standard Plugins

Drift includes core plugins for OpenAPI and AsyncAPI testing, payload validation, datasets, and reporting. Transport and specialized plugins are optional. Install them with drift component install <name>. For more information, see Drift Components.

Plugin

Tier

Status

OpenAPI (oas)

Core

Stable

AsyncAPI (asyncapi)

Core

Stable

JSON (json)

Core

Stable

Form URL Encoded (form-urlencoded)

Core

Stable

XML (xml)

Core

Stable

Data (data)

Core

Stable

JUnit Reporter (junit-output)

Core

Stable

Kafka (kafka)

Optional

Stable

AWS Messaging (aws-messaging)

Optional

Stable

gRPC (grpc)

Optional

Stable

MCP (mcp)

Optional

Beta

Protobuf (protobuf)

Optional

Stable

Avro (avro)

Optional

Stable

OpenAPI (oas)

The foundational plugin for spec-first testing. It parses OpenAPI 3.0 and 3.1 documents to resolve endpoints, schemas, and examples.

Specification format

Support status

Swagger 2.0

Supported

OpenAPI 3.0

Supported

OpenAPI 3.1

Supported

OpenAPI 3.2

Not supported

Swagger earlier than 2.0

Not supported

  • Automatic validation of response bodies against JSON schemas.

  • Support for source:method:path targeting when operationId is missing.

  • See Also: OpenAPI (OAS)

AsyncAPI (asyncapi)

The foundational plugin for message-based testing. It parses AsyncAPI 3.x documents to resolve operations, channels, message schemas, and correlation rules, then plans how each interaction should be executed. 

Specification format

Support status

AsyncAPI 3.1

Supported

AsyncAPI 3.0

Supported

AsyncAPI 2.x

Not supported

See Also: AsyncAPI Plugin

  • Automatic selection of the execution mode from the operation action and your test inputs.

  • Validation of captured messages against payload and header schemas.

  • Use with a transport plugin (kafka or aws-messaging) and the json plugin.

JSON (json)

Provides specialized validation for JSON payloads.

  • Media Type Support: Handles application/json payloads defined in your API specification.

  • Schema Support: Powers deep property and type checking for API responses.

Kafka (kafka)

Provides Apache Kafka transport for AsyncAPI operations.

Use Case: Use this plugin when your AsyncAPI document declares the kafka protocol. Drift publishes to and consumes from real Kafka topics.

Supports: Asynchronous and request/reply interactions.

See Also: Kafka Plugin

AWS Messaging (aws-messaging)

Provides Amazon SNS and Amazon SQS transport for AsyncAPI operations.

Use Case: Use this plugin when your AsyncAPI document declares the sns or sqs protocol. Works against AWS or a local emulator such as LocalStack.

Supports: Asynchronous interactions only. Request/reply is not available on SNS or SQS.

See Also: AWS Messaging Plugin

XML (xml)

Provides payload support for XML request and response bodies.

  • Media Type Support: Handles application/xml payloads defined in your API specification.

  • Use Case: Use this plugin when your API exchanges XML bodies that Drift needs to send or validate.

  • See Also: XML Plugin

Form URL Encoded (form-urlencoded)

Provides payload support for HTML form-style request bodies.

  • Media Type Support: Handles application/x-www-form-urlencoded payloads.

  • Use Case: Use this plugin when an operation expects form fields instead of JSON.

  • See Also: Form URL Encoded Plugin

Data (data)

Manages the loading and injection of external datasets into your test cases.

  • Dataset Management: Resolves references like ${product:products.product10.id} from drift-dataset-file sources.

  • Dynamic Generation: Supports advanced expressions like notIn() to create unique test data on the fly.

  • See Also: Data Plugin

JUnit Reporter (junit-output)

Generates standardized XML reports for integration with CI/CD tools like GitHub Actions, Jenkins, or GitLab.

  • Format: Produces testsuite and testcase elements compatible with universal JUnit XML schemas.

  • CI Integration: Allows build systems to visualize pass/fail counts and execution times natively.

gRPC (grpc)

Provides support for gRPC services with protobuf payloads.

  • Media Type Support: Handles application/grpc+proto, application/grpc and application/x-protobuf

  • Use Case: Use this plugin when you need to test gRPC services

  • See Also: gRPC Plugin

MCP (mcp)

Provides support for MCP servers.

  • Media Type Support: Handles application/json bodies

  • Network Support: Supports streamable HTTP via SSE and stdio

  • Use Case: Use this plugin when you need to test MCP Servers

  • See Also: MCP Plugin

Protobuf (protobuf)

Provides Protocol Buffers payload support for AsyncAPI messages.

  • Media Type Support: Handles application/vnd.google.protobuf, application/protobuf, application/x-protobuf, and application/x-google-protobuf payloads.

  • Use Case: Use this plugin when your AsyncAPI messages embed a .proto schema and your service sends or receives protobuf binary payloads.

  • See Also: Protobuf Plugin

Avro (avro)

Provides Apache Avro payload support for AsyncAPI messages.

  • Media Type Support: Handles application/vnd.apache.avro, application/avro, and avro/binary payloads.

  • Use Case: Use this plugin when your AsyncAPI messages embed an Avro schema and your service sends or receives Avro binary payloads.

  • See Also: Avro Plugin

Publication date: