summaryrefslogtreecommitdiff
path: root/httpRequest.proto
blob: 8b1c86b00e117d38cf3f3ba5f614c5ecfec83db7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright 2025 WIT.COM Inc Licensed GPL 3.0

syntax = "proto3";

package httppb;

// todo: try this
// import "google/rpc/status.proto";
//    google.rpc.Status           error            = 13;
import "google/protobuf/timestamp.proto"; // Import the well-known type for Timestamp

message HttpRequest {                                       // HttpRequest represents the essential fields of an incoming HTTP request.
        string                      method            = 1;  // The request method, e.g., "GET", "POST".
        string                      URL               = 2;  // The full URL of the request, including scheme, host, path, and query string.
        string                      route             = 3;  // just the route: "/add/" or "/find/"
        string                      proto             = 4;  // The protocol version, e.g., "HTTP/1.1", "HTTP/2.0".
        map<string, string>         headers           = 5;  // The map of request headers. Header names are case-insensitive,
        string                      IP                = 6;  // The remote IP address of the client, after resolving proxies.
        string                      host              = 7;  // The host on which the URL is sought (www.wit.com)
        string                      hostname          = 8;  // The hostname of the client if passed from the client (mylaptop.fun.me)
        string                      namespace         = 9;  // This is the pb namespace ("go.wit.com/lib/protobuf/virtpb")
        google.protobuf.Timestamp   ctime             = 10; // create time of the patch
        bytes                       clientData        = 11; // the client payload
        int64                       clientDataLen     = 12; // len(body)
        bytes                       serverData        = 13; // the server response
        int64                       serverDataLen     = 14; // len(data)
        repeated string             log               = 15; // use this to store whatever you want while the whole POST happens
}

message HttpRequests {                                      // `autogenpb:marshal` `autogenpb:mutex`
        string                      uuid              = 1;  // `autogenpb:uuid:1524ed43-e57d-4bf9-9449-1cdfdc498605`
        string                      version           = 2;  // `autogenpb:version:v0.0.1`
        repeated HttpRequest        HttpRequests      = 3;  // THIS MUST BE  HttpRequest  and then  HttpRequests
}