Relin
Inspect webhook health, investigate delivery failures, configure sources, and replay events.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (13)
- LOWen revoke_api_key
- LOWen rotate_source_token
- LOWen upsert_recipient
- LOWen rotate_endpoint_secret
- LOWen upsert_event_type
- LOWen delete_event_type
- LOWen save_portal_settings
- LOWen create_portal_host
- LOWen get_slack_connect_url
- LOWen retry_failed_deliveries
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"relin": {
"url": "https://relin.app/mcp"
}
}
}Puntos de conexión remotos
https://relin.app/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (52)
🟢describe_relin
Explain what Relin does and how agents should use it for webhook intake, delivery, replay, and anomaly review.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_supported_webhook_shapes
List the vendor webhook shapes Relin understands for event identity, ordering, and gap checks.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_setup_guide(provider)
Return concise setup guidance for connecting a webhook source and destination.
Esquema de entrada
{
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": [
"github",
"stripe",
"shopify",
"twilio",
"sendgrid",
"slack",
"custom"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_api_keys
Authenticated tool to list API keys.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_api_key(name, scopes)
Authenticated tool to create API key.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"scopes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴revoke_api_key(apiKeyId)
Authenticated tool to revoke API key.
Esquema de entrada
{
"type": "object",
"properties": {
"apiKeyId": {
"type": "string",
"minLength": 1
}
},
"required": [
"apiKeyId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_sources
Authenticated tool to list sources.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_source(name, vendor, signingSecret)
Authenticated tool to create source.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"vendor": {
"type": "string",
"enum": [
"github",
"stripe",
"shopify",
"twilio",
"sendgrid",
"slack",
"custom"
]
},
"signingSecret": {
"type": "string",
"maxLength": 500
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪rotate_source_token(sourceId)
Authenticated tool for rotating an ingest token and returning the replacement URL once.
Esquema de entrada
{
"type": "object",
"properties": {
"sourceId": {
"type": "string",
"minLength": 1
}
},
"required": [
"sourceId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴archive_source(sourceId)
Authenticated tool for deleting a source, disabling its routing, cancelling queued retries, clearing event-stream coordinator state, and pruning stored source records.
Esquema de entrada
{
"type": "object",
"properties": {
"sourceId": {
"type": "string",
"minLength": 1
}
},
"required": [
"sourceId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_destinations(sourceId)
Authenticated tool for listing outbound destinations and retry policy.
Esquema de entrada
{
"type": "object",
"properties": {
"sourceId": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_destination(sourceId, name, endpointUrl, signingSecret, retryMaxAttempts, ...)
Authenticated tool for creating an outbound destination and connection with retry policy and optional filters.
Esquema de entrada
{
"type": "object",
"properties": {
"sourceId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"endpointUrl": {
"type": "string",
"format": "uri"
},
"signingSecret": {
"type": "string",
"maxLength": 500
},
"retryMaxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"retryBackoffSeconds": {
"type": "string"
},
"rateLimitPerMinute": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"transformBodyPath": {
"type": "string"
},
"transformExpression": {
"type": "string"
},
"filterEventTypes": {
"type": "string"
},
"filterEntityKey": {
"type": "string"
},
"filterBodyPath": {
"type": "string"
},
"filterBodyValue": {
"type": "string"
}
},
"required": [
"sourceId",
"name",
"endpointUrl"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_apps
Authenticated tool to list apps.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_app(name, routingKeyBodyPath, routingKeyHeader)
Authenticated tool to create app.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"routingKeyBodyPath": {
"type": "string"
},
"routingKeyHeader": {
"type": "string"
}
},
"required": [
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_app(appId)
Authenticated tool to get app.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_recipients(appId)
Authenticated tool to list recipients.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪upsert_recipient(appId, recipient, name)
Authenticated tool for creating or updating a recipient.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"recipient": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string"
}
},
"required": [
"appId",
"recipient"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_endpoints(appId, recipient)
Authenticated tool to list recipient endpoints.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"recipient": {
"type": "string"
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_endpoint(appId, recipient, recipientName, name, url, ...)
Authenticated tool to create endpoint.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"recipient": {
"type": "string",
"minLength": 1
},
"recipientName": {
"type": "string"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"url": {
"type": "string",
"format": "uri"
},
"eventTypes": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"appId",
"recipient",
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_endpoint(appId, endpointId)
Authenticated tool to get endpoint.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"endpointId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId",
"endpointId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_endpoint(appId, endpointId, name, url, retryMaxAttempts, ...)
Authenticated tool to update endpoint.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"endpointId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"url": {
"type": "string",
"format": "uri"
},
"retryMaxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"retryBackoffSeconds": {
"type": "string"
},
"rateLimitPerMinute": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"enabled": {
"type": "boolean"
}
},
"required": [
"appId",
"endpointId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_endpoint(appId, endpointId)
Authenticated tool to disable endpoint.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"endpointId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId",
"endpointId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪rotate_endpoint_secret(appId, endpointId)
Authenticated tool for rotating the signing secret for one endpoint.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"endpointId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId",
"endpointId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_messages(appId, q, limit)
Authenticated tool to list messages.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"q": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡send_message(appId, recipient, type, data, messageId, ...)
Authenticated tool to send message.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"recipient": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"minLength": 1
},
"data": {},
"messageId": {
"type": "string"
},
"idempotencyKey": {
"type": "string"
}
},
"required": [
"appId",
"recipient",
"type"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_message(appId, messageId)
Authenticated tool to get message.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"messageId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId",
"messageId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_message_attempts(appId, messageId, limit)
Authenticated tool to list message attempts.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"messageId": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"required": [
"appId",
"messageId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪replay_message(appId, messageId)
Authenticated tool to replay message.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"messageId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId",
"messageId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_event_types(appId)
Authenticated tool to list event types.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪upsert_event_type(appId, eventType, description, schema, examplePayload)
Authenticated tool to upsert event type.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"eventType": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"schema": {},
"examplePayload": {}
},
"required": [
"appId",
"eventType"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_event_type(appId, eventType)
Authenticated tool to archive event type.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"eventType": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId",
"eventType"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_portal_session(appId, recipient, recipientName, capabilities, theme, ...)
Authenticated tool to create portal session.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"recipient": {
"type": "string",
"minLength": 1
},
"recipientName": {
"type": "string"
},
"capabilities": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"theme": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"returnUrl": {
"type": "string",
"format": "uri"
},
"expiresInSeconds": {
"type": "integer",
"minimum": 60,
"maximum": 86400
}
},
"required": [
"appId",
"recipient"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_portal_settings(appId)
Authenticated tool for reading portal branding defaults and host setup for an app.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡save_portal_settings(appId, brandName, logoUrl, primaryColor, accentColor, ...)
Authenticated tool for saving portal branding defaults for an app.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"brandName": {
"type": "string"
},
"logoUrl": {
"type": "string",
"format": "uri"
},
"primaryColor": {
"type": "string"
},
"accentColor": {
"type": "string"
},
"backgroundColor": {
"type": "string"
},
"surfaceColor": {
"type": "string"
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_portal_hosts(appId)
Authenticated tool for listing stable portal hosts for an app.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
}
},
"required": [
"appId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_portal_host(appId, hostname, oidcIssuer, oidcClientId, oidcClientSecret, ...)
Authenticated tool for creating a stable portal host with OIDC sign-in.
Esquema de entrada
{
"type": "object",
"properties": {
"appId": {
"type": "string",
"minLength": 1
},
"hostname": {
"type": "string",
"minLength": 1
},
"oidcIssuer": {
"type": "string",
"format": "uri"
},
"oidcClientId": {
"type": "string",
"minLength": 1
},
"oidcClientSecret": {
"type": "string",
"minLength": 1
},
"oidcScopes": {
"type": "string"
},
"recipientClaim": {
"type": "string"
},
"nameClaim": {
"type": "string"
},
"emailClaim": {
"type": "string"
},
"allowedEmailDomain": {
"type": "string"
}
},
"required": [
"appId",
"hostname",
"oidcIssuer",
"oidcClientId",
"oidcClientSecret"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_portal_host(portalHostId)
Authenticated tool for refreshing hostname, certificate, and OIDC readiness for a stable portal host.
Esquema de entrada
{
"type": "object",
"properties": {
"portalHostId": {
"type": "string",
"minLength": 1
}
},
"required": [
"portalHostId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪ensure_webhook_setup(vendor, sourceId, sourceName, signingSecret, destinationName, ...)
Authenticated tool for idempotently setting up a vendor source and destination, returning the ingest URL when a new source is created.
Esquema de entrada
{
"type": "object",
"properties": {
"vendor": {
"type": "string",
"enum": [
"github",
"stripe",
"shopify",
"twilio",
"sendgrid",
"slack",
"custom"
]
},
"sourceId": {
"type": "string"
},
"sourceName": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"signingSecret": {
"type": "string",
"maxLength": 500
},
"destinationName": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"destinationUrl": {
"type": "string",
"format": "uri"
},
"destinationSigningSecret": {
"type": "string",
"maxLength": 500
},
"retryMaxAttempts": {
"type": "integer",
"minimum": 1,
"maximum": 20
},
"retryBackoffSeconds": {
"type": "string"
},
"rateLimitPerMinute": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"transformBodyPath": {
"type": "string"
},
"transformExpression": {
"type": "string"
},
"filterEventTypes": {
"type": "string"
},
"filterEntityKey": {
"type": "string"
},
"filterBodyPath": {
"type": "string"
},
"filterBodyValue": {
"type": "string"
}
},
"required": [
"vendor",
"destinationUrl"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_recent_events(sourceId, q, signatureStatus, failedDeliveryOnly, limit)
Authenticated tool for inspecting recent received events, duplicates, and signature status.
Esquema de entrada
{
"type": "object",
"properties": {
"sourceId": {
"type": "string"
},
"q": {
"type": "string"
},
"signatureStatus": {
"type": "string"
},
"failedDeliveryOnly": {
"type": "boolean"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_event_detail(eventId, includePayload)
Authenticated tool for reading one event with attempts, deliveries, and optional raw payload.
Esquema de entrada
{
"type": "object",
"properties": {
"eventId": {
"type": "string",
"minLength": 1
},
"includePayload": {
"type": "boolean"
}
},
"required": [
"eventId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_open_issues(q, sourceId, destinationId, limit)
Authenticated tool for listing open anomaly and delivery issues. Use q for smart lookup by anom_, dst_, evt_, or src_ IDs, or plain text like a status code or error message.
Esquema de entrada
{
"type": "object",
"properties": {
"q": {
"description": "Smart query. Recognizes anom_, dst_, evt_, and src_ IDs as exact filters; otherwise matches issue text, kind, status, destination name, IDs, and response status.",
"type": "string"
},
"sourceId": {
"description": "Only include issues for this source ID.",
"type": "string"
},
"destinationId": {
"description": "Only include failed delivery issues for this destination ID.",
"type": "string"
},
"limit": {
"description": "Maximum number of issues to return.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_delivery_attempts(eventId, destinationId, status, since, limit)
Authenticated tool for listing fanout delivery attempts with filters.
Esquema de entrada
{
"type": "object",
"properties": {
"eventId": {
"type": "string"
},
"destinationId": {
"type": "string"
},
"status": {
"type": "string"
},
"since": {
"type": "string"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_retry_jobs(status, limit)
Authenticated tool to list retry jobs.
Esquema de entrada
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"queued",
"completed",
"cancelled"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_metrics_summary(windowHours)
Authenticated tool for delivery, failure, duplicate, and open-issue rollups.
Esquema de entrada
{
"type": "object",
"properties": {
"windowHours": {
"type": "integer",
"minimum": 1,
"maximum": 720
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_alert_channels
Authenticated tool to list alert channels.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_alert_channel(type, name, targetUrl, targetEmail, kinds)
Authenticated tool to create alert channel.
Esquema de entrada
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"webhook",
"slack",
"email"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"targetUrl": {
"type": "string",
"format": "uri"
},
"targetEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"kinds": {
"type": "array",
"items": {
"type": "string",
"enum": [
"fanout_failed",
"missing_lifecycle_event",
"duplicate_event",
"signature_failed",
"provider_retry",
"out_of_order_event",
"terminal_state_regression"
]
}
}
},
"required": [
"type",
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_slack_connect_url
Authenticated tool for returning the dashboard Slack OAuth connect URL and expected redirect URL.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪replay_event(eventId)
Authenticated tool for queueing a replay of a single received event.
Esquema de entrada
{
"type": "object",
"properties": {
"eventId": {
"type": "string",
"minLength": 1
}
},
"required": [
"eventId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪replay_events(sourceId, q, signatureStatus, failedDeliveryOnly, windowHours, ...)
Authenticated tool for queueing replay by source, query, signature status, failed-delivery state, and time window.
Esquema de entrada
{
"type": "object",
"properties": {
"sourceId": {
"type": "string"
},
"q": {
"type": "string"
},
"signatureStatus": {
"type": "string"
},
"failedDeliveryOnly": {
"type": "boolean"
},
"windowHours": {
"type": "integer",
"minimum": 1,
"maximum": 720
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪retry_failed_deliveries(destinationId, windowHours, limit)
Authenticated tool for queueing immediate retries for failed fanout deliveries.
Esquema de entrada
{
"type": "object",
"properties": {
"destinationId": {
"type": "string"
},
"windowHours": {
"anyOf": [
{
"type": "number",
"const": 24
},
{
"type": "number",
"const": 72
},
{
"type": "number",
"const": 168
}
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴cancel_queued_retries(destinationId)
Authenticated tool for cancelling queued retry jobs for a workspace or destination.
Esquema de entrada
{
"type": "object",
"properties": {
"destinationId": {
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴resolve_anomalies(anomalyIds)
Authenticated tool for marking one or more open anomalies resolved by anomaly_id.
Esquema de entrada
{
"type": "object",
"properties": {
"anomalyIds": {
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
},
"required": [
"anomalyIds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Comunidad
Evidencia