AsyncAPI
Core pluginmarmotdata/asyncapi
Discover metadata from AsyncAPI v3 specifications including services, channels, and message schemas
The AsyncAPI plugin catalogues services, channels and message schemas from AsyncAPI v3 specifications. It reads spec files from a local path, S3 bucket or Git repository and emits an asset for each service and channel it finds.
In the UI
Point-and-click, no config file needed.
- 1 Open
Runs→Create Pipeline - 2 Pick AsyncAPI from the plugin list.
- 3 Fill in the wizard, set a schedule, save.
With the CLI
Save a YAML config, then run marmot ingest.
name: my-asyncapi-pipeline
runs:
- asyncapi:
spec_path: "<spec_path>"marmot ingest -c ingest.yaml Not using plugins? Other ways to populate Marmot
Configuration
10 top-level fields.
tags multiselect Tags to apply to discovered assets
external_links object[] External links to show on all assets
name string Display name for the link
icon string Icon identifier for the link
url string URL to the external resource
filter object Filter discovered assets by name (regex)
include multiselect Include patterns for resource names (regex)
exclude multiselect Exclude patterns for resource names (regex)
s3_source object S3 file source configuration
source_type = s3credentials object AWS credentials for S3 access
use_default bool Use AWS credentials from environment or default profile (recommended)
true id string AWS access key ID
secret password AWS secret access key
token password AWS session token
profile string AWS profile to use from shared credentials file
role string AWS IAM role ARN to assume
role_external_id string External ID for cross-account role assumption
region string AWS region for services
endpoint string Custom endpoint URL for AWS services
git_source object Git repository file source configuration
source_type = giturl string Git repository URL
ref string Branch, tag or commit to check out
main path string Subdirectory within the repository
token password Personal access token for HTTPS auth
ssh_key_path string Path to SSH private key for SSH auth
spec_path string Path to AsyncAPI spec file or directory containing specs (local path, s3://bucket/prefix or git::url)
environment string Environment name (e.g., production, staging)
production discover_services bool Create service assets from AsyncAPI info
true discover_channels bool Create channel/topic assets from channels and bindings
true discover_messages bool Attach message schemas to channel assets
true Assets Emitted
Metadata fields this plugin attaches to each discovered asset.
Shared
SharedFieldsSharedFields represents common metadata fields across all AsyncAPI resources
asyncapi_version stringAsyncAPI specification version
service_name stringName of the service that owns the resource
service_version stringVersion of the service
environment stringEnvironment the resource belongs to
channel_name stringName of the channel in the AsyncAPI spec
channel_address stringAddress/topic of the channel
description stringDescription of the resource
Service
ServiceFieldsServiceFields represents AsyncAPI service-specific metadata
contact_name stringContact person name
contact_email stringContact email address
contact_url stringContact URL
license stringLicense name
license_url stringLicense URL
servers string[]List of server names
protocols string[]List of protocols used
channel_count intNumber of channels
operation_count intNumber of operations
Kafka
KafkaFieldsKafkaFields represents Kafka-specific metadata fields
topic_name stringKafka topic name
partitions intNumber of partitions
replicas intNumber of replicas
cleanup_policy string[]Topic cleanup policies
retention_ms intMessage retention period in milliseconds
retention_bytes intMaximum size of the topic
max_message_bytes intMaximum message size
delete_retention_ms intTime to retain deleted messages
SNS
SNSFieldsSNSFields represents SNS-specific metadata fields
topic_name stringSNS Topic Name
topic_arn stringSNS Topic ARN
ordering_type stringSNS topic ordering type
content_deduplication boolWhether content-based deduplication is enabled
SQS
SQSFieldsSQSFields represents SQS-specific metadata fields
queue_name stringName of the SQS queue
fifo_queue boolWhether this is a FIFO queue
deduplication_scope stringScope of deduplication if enabled
fifo_throughput_limit stringFIFO throughput limit type
delivery_delay intDelivery delay in seconds
visibility_timeout intVisibility timeout in seconds
receive_message_wait_time intLong polling wait time in seconds
message_retention_period intMessage retention period in seconds
dlq_name stringName of the Dead Letter Queue
max_receive_count intMaximum receives before sending to DLQ
AMQP
AMQPFieldsAMQPFields represents AMQP-specific metadata fields
binding_is stringAMQP binding type (queue or routingKey)
exchange_name stringExchange name
exchange_vhost stringExchange virtual host
exchange_type stringExchange type (topic, fanout, direct, etc.)
exchange_durable boolExchange durability flag
exchange_auto_delete boolExchange auto delete flag
queue_name stringQueue name
queue_vhost stringQueue virtual host
queue_durable boolQueue durability flag
queue_exclusive boolQueue exclusivity flag
queue_auto_delete boolQueue auto delete flag
Google Pub Sub
GooglePubSubFieldsGooglePubSubFields represents Google Pub/Sub-specific metadata fields
topic_name stringGoogle Pub/Sub topic name
message_retention_duration stringMessage retention duration
allowed_regions string[]Allowed persistence regions
schema_encoding stringSchema encoding format
schema_name stringSchema name