Features
| Pricing | Documentation | Contact | Blog
When packets are delivered to your resources they will arrive in one of three formats: JSON, NDJSON or plain text. The table below summarized the formats used for each service:
| Resource Type | Format(s) |
|---|---|
| Lambda and StepFunctions | Input is a JSON object where the Messages property is an array of RequestPacket. Output from Lambda and EXPRESS state machines is a JSON object where the Replies properties is an array of ResponsePacket. |
| SNS and SQS | One JSON encoded RequestPacket per message. |
| EventBridge | One JSON encoded RequestPacket assigned to the `detail` property per message. |
| Firehose and S3 | NDJSON, one JSON encoded RequestPacket per line. |
| CloudWatch Logs | Packet Data as UTF-8 string, one log message per RequestPacket. |
| DynamoDB | One record per RequestPacket with the primary key being the src/dst touple and the sort key
being the arrival timestamp. Properties are mapped to attributes on the stored record. |
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://proxylity.com/request-packet.schema.json",
"title": "RequestPacket",
"description": "Representation of a packet arriving at a UDP listener, as forwarded to AWS resources.",
"type": "object",
"properties": {
"Tag": {
"description": "A unique identifier for the packet among the batch. Responses (if any) to the message must include this tag.",
"type": "string"
},
"Remote": {
"description": "The remote endpoint (sender IP and port) of the packet.",
"type": "object",
"properties": {
"IpAddress": {
"description": "The IP address of the sender.",
"type": "string"
},
"Port": {
"description": "The port of the sender.",
"type": "integer"
}
},
"required": [
"IpAddress",
"Port"
]
},
"Local": {
"description": "The local endpoint (IP and port) of the listener that received the packet.",
"type": "object",
"properties": {
"Domain": {
"description": "The ingress name of the listener that received the packet (e.g. \"ingress-1\").",
"type": "string"
},
"Port": {
"description": "The port of the listener that received the packet.",
"type": "integer"
}
},
"required": [
"Domain",
"Port"
]
},
"ReceivedAt": {
"description": "The time at which the packet was received, in ISO 8601 format.",
"type": "string",
"format": "date-time"
},
"Formatter": {
"description": "The name of the formatter that encoded the packet data (base64, hex, utf8 or ascii).",
"type": "string",
"enum": [
"base64",
"hex",
"utf8",
"ascii"
]
},
"Data": {
"description": "The packet payload, in base64 encoding.",
"type": "string",
"format": "byte"
}
},
"required": [
"Tag",
"Remote",
"Local",
"Data"
]
}
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://proxylity.com/response-packet.schema.json",
"title": "ResponsePacket",
"description": "Representation of a packet to be sent back to the remote client, as provided in the response from an AWS resource.",
"type": "object",
"properties": {
"Tag": {
"description": "A `Tag` value matching an input message. The content of the `Data` property will form the response directed to the source address and port of the input message.",
"type": "string"
},
"Data": {
"description": "The response packet payload, in base64 encoding.",
"type": "string"
}
},
"required": [
"Tag",
"Data"
]
}