mirror of
https://github.com/dstotijn/hetty.git
synced 2025-07-01 18:47:29 -04:00
Replace GraphQL server with Connect RPC
This commit is contained in:
47
proto/http/http.proto
Normal file
47
proto/http/http.proto
Normal file
@ -0,0 +1,47 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package hetty.http.v1;
|
||||
|
||||
option go_package = "github.com/dstotijn/hetty/pkg/http";
|
||||
|
||||
enum Method {
|
||||
METHOD_UNSPECIFIED = 0;
|
||||
METHOD_GET = 1;
|
||||
METHOD_HEAD = 2;
|
||||
METHOD_POST = 3;
|
||||
METHOD_PUT = 4;
|
||||
METHOD_DELETE = 5;
|
||||
METHOD_CONNECT = 6;
|
||||
METHOD_OPTIONS = 7;
|
||||
METHOD_TRACE = 8;
|
||||
METHOD_PATCH = 9;
|
||||
}
|
||||
|
||||
enum Protocol {
|
||||
PROTOCOL_UNSPECIFIED = 0;
|
||||
PROTOCOL_HTTP10 = 1;
|
||||
PROTOCOL_HTTP11 = 2;
|
||||
PROTOCOL_HTTP20 = 3;
|
||||
}
|
||||
|
||||
message Request {
|
||||
Method method = 1;
|
||||
Protocol protocol = 2;
|
||||
string url = 3;
|
||||
repeated Header headers = 4;
|
||||
bytes body = 5;
|
||||
Response response = 6;
|
||||
}
|
||||
|
||||
message Response {
|
||||
Protocol protocol = 1;
|
||||
string status = 2;
|
||||
int32 status_code = 3;
|
||||
repeated Header headers = 5;
|
||||
bytes body = 6;
|
||||
}
|
||||
|
||||
message Header {
|
||||
string key = 1;
|
||||
string value = 2;
|
||||
}
|
104
proto/proj/proj.proto
Normal file
104
proto/proj/proj.proto
Normal file
@ -0,0 +1,104 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package hetty.proj.v1;
|
||||
|
||||
import "reqlog/reqlog.proto";
|
||||
import "scope/scope.proto";
|
||||
|
||||
option go_package = "github.com/dstotijn/hetty/pkg/proj";
|
||||
|
||||
message Project {
|
||||
string id = 1;
|
||||
string name = 2;
|
||||
bool is_active = 3;
|
||||
|
||||
// Request log settings
|
||||
bool req_log_bypass_out_of_scope = 4;
|
||||
|
||||
// Request logs filter
|
||||
hetty.reqlog.v1.RequestLogsFilter req_log_filter = 5;
|
||||
|
||||
// Intercept settings
|
||||
bool intercept_requests = 6;
|
||||
bool intercept_responses = 7;
|
||||
string intercept_request_filter_expr = 8;
|
||||
string intercept_response_filter_expr = 9;
|
||||
|
||||
// Sender settings
|
||||
bool sender_only_find_in_scope = 10;
|
||||
string sender_search_expr = 11;
|
||||
|
||||
// Scope settings
|
||||
repeated hetty.scope.v1.ScopeRule scope_rules = 12;
|
||||
}
|
||||
|
||||
message CreateProjectRequest {
|
||||
string name = 1;
|
||||
}
|
||||
|
||||
message CreateProjectResponse {
|
||||
Project project = 1;
|
||||
}
|
||||
|
||||
message OpenProjectRequest {
|
||||
string project_id = 1;
|
||||
}
|
||||
|
||||
message OpenProjectResponse {
|
||||
Project project = 1;
|
||||
}
|
||||
|
||||
message CloseProjectRequest {}
|
||||
|
||||
message CloseProjectResponse {}
|
||||
|
||||
message DeleteProjectRequest {
|
||||
string project_id = 1;
|
||||
}
|
||||
|
||||
message DeleteProjectResponse {}
|
||||
|
||||
message GetActiveProjectRequest {}
|
||||
|
||||
message GetActiveProjectResponse {
|
||||
Project project = 1;
|
||||
}
|
||||
|
||||
message ListProjectsRequest {}
|
||||
|
||||
message ListProjectsResponse {
|
||||
repeated Project projects = 1;
|
||||
}
|
||||
|
||||
message UpdateInterceptSettingsRequest {
|
||||
bool requests_enabled = 1;
|
||||
bool responses_enabled = 2;
|
||||
string request_filter_expr = 3;
|
||||
string response_filter_expr = 4;
|
||||
}
|
||||
|
||||
message UpdateInterceptSettingsResponse {}
|
||||
|
||||
message SetScopeRulesRequest {
|
||||
repeated hetty.scope.v1.ScopeRule rules = 1;
|
||||
}
|
||||
|
||||
message SetScopeRulesResponse {}
|
||||
|
||||
message SetRequestLogsFilterRequest {
|
||||
hetty.reqlog.v1.RequestLogsFilter filter = 1;
|
||||
}
|
||||
|
||||
message SetRequestLogsFilterResponse {}
|
||||
|
||||
service ProjectService {
|
||||
rpc CreateProject(CreateProjectRequest) returns (CreateProjectResponse) {}
|
||||
rpc OpenProject(OpenProjectRequest) returns (OpenProjectResponse) {}
|
||||
rpc CloseProject(CloseProjectRequest) returns (CloseProjectResponse) {}
|
||||
rpc DeleteProject(DeleteProjectRequest) returns (DeleteProjectResponse) {}
|
||||
rpc GetActiveProject(GetActiveProjectRequest) returns (GetActiveProjectResponse) {}
|
||||
rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse) {}
|
||||
rpc UpdateInterceptSettings(UpdateInterceptSettingsRequest) returns (UpdateInterceptSettingsResponse) {}
|
||||
rpc SetScopeRules(SetScopeRulesRequest) returns (SetScopeRulesResponse) {}
|
||||
rpc SetRequestLogsFilter(SetRequestLogsFilterRequest) returns (SetRequestLogsFilterResponse) {}
|
||||
}
|
44
proto/reqlog/reqlog.proto
Normal file
44
proto/reqlog/reqlog.proto
Normal file
@ -0,0 +1,44 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package hetty.reqlog.v1;
|
||||
|
||||
import "http/http.proto";
|
||||
|
||||
option go_package = "github.com/dstotijn/hetty/pkg/reqlog";
|
||||
|
||||
message HttpRequestLog {
|
||||
string id = 1;
|
||||
string project_id = 2;
|
||||
string remote_ip = 3;
|
||||
hetty.http.v1.Request request = 4;
|
||||
hetty.http.v1.Response response = 5;
|
||||
}
|
||||
|
||||
message GetHttpRequestLogRequest {
|
||||
string id = 1;
|
||||
}
|
||||
|
||||
message GetHttpRequestLogResponse {
|
||||
HttpRequestLog http_request_log = 1;
|
||||
}
|
||||
|
||||
message ListHttpRequestLogsRequest {}
|
||||
|
||||
message ListHttpRequestLogsResponse {
|
||||
repeated HttpRequestLog http_request_logs = 1;
|
||||
}
|
||||
|
||||
message RequestLogsFilter {
|
||||
bool only_in_scope = 1;
|
||||
string search_expr = 2;
|
||||
}
|
||||
|
||||
message ClearHttpRequestLogsRequest {}
|
||||
|
||||
message ClearHttpRequestLogsResponse {}
|
||||
|
||||
service HttpRequestLogService {
|
||||
rpc GetHttpRequestLog(GetHttpRequestLogRequest) returns (GetHttpRequestLogResponse) {}
|
||||
rpc ListHttpRequestLogs(ListHttpRequestLogsRequest) returns (ListHttpRequestLogsResponse) {}
|
||||
rpc ClearHttpRequestLogs(ClearHttpRequestLogsRequest) returns (ClearHttpRequestLogsResponse) {}
|
||||
}
|
12
proto/scope/scope.proto
Normal file
12
proto/scope/scope.proto
Normal file
@ -0,0 +1,12 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package hetty.scope.v1;
|
||||
|
||||
option go_package = "github.com/dstotijn/hetty/pkg/scope";
|
||||
|
||||
message ScopeRule {
|
||||
string url_regexp = 1;
|
||||
string header_key_regexp = 2;
|
||||
string header_value_regexp = 3;
|
||||
string body_regexp = 4;
|
||||
}
|
85
proto/sender/sender.proto
Normal file
85
proto/sender/sender.proto
Normal file
@ -0,0 +1,85 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package sender;
|
||||
|
||||
import "http/http.proto";
|
||||
|
||||
option go_package = "github.com/dstotijn/hetty/proto/sender";
|
||||
|
||||
message Request {
|
||||
string id = 1;
|
||||
string project_id = 2;
|
||||
string source_request_log_id = 3;
|
||||
hetty.http.v1.Request http_request = 4;
|
||||
hetty.http.v1.Response http_response = 10;
|
||||
}
|
||||
|
||||
message RequestsFilter {
|
||||
bool only_in_scope = 1;
|
||||
string search_expr = 2;
|
||||
}
|
||||
|
||||
message GetRequestByIDRequest {
|
||||
string request_id = 1;
|
||||
}
|
||||
|
||||
message GetRequestByIDResponse {
|
||||
Request request = 1;
|
||||
}
|
||||
|
||||
message ListRequestsRequest {}
|
||||
|
||||
message ListRequestsResponse {
|
||||
repeated Request requests = 1;
|
||||
}
|
||||
|
||||
message CloneFromRequestLogRequest {
|
||||
string request_log_id = 1;
|
||||
}
|
||||
|
||||
message CloneFromRequestLogResponse {
|
||||
Request request = 1;
|
||||
}
|
||||
|
||||
message SendRequestRequest {
|
||||
string request_id = 1;
|
||||
}
|
||||
|
||||
message SendRequestResponse {
|
||||
Request request = 1;
|
||||
}
|
||||
|
||||
message DeleteRequestsRequest {}
|
||||
|
||||
message DeleteRequestsResponse {}
|
||||
|
||||
message CreateOrUpdateRequestRequest {
|
||||
Request request = 1;
|
||||
}
|
||||
|
||||
message CreateOrUpdateRequestResponse {
|
||||
Request request = 1;
|
||||
}
|
||||
|
||||
message SetRequestsFilterRequest {
|
||||
RequestsFilter filter = 1;
|
||||
}
|
||||
|
||||
message SetRequestsFilterResponse {}
|
||||
|
||||
message GetRequestsFilterRequest {}
|
||||
|
||||
message GetRequestsFilterResponse {
|
||||
RequestsFilter filter = 1;
|
||||
}
|
||||
|
||||
service SenderService {
|
||||
rpc GetRequestByID(GetRequestByIDRequest) returns (GetRequestByIDResponse) {}
|
||||
rpc ListRequests(ListRequestsRequest) returns (ListRequestsResponse) {}
|
||||
rpc SetRequestsFilter(SetRequestsFilterRequest) returns (SetRequestsFilterResponse) {}
|
||||
rpc GetRequestsFilter(GetRequestsFilterRequest) returns (GetRequestsFilterResponse) {}
|
||||
rpc CreateOrUpdateRequest(CreateOrUpdateRequestRequest) returns (CreateOrUpdateRequestResponse) {}
|
||||
rpc CloneFromRequestLog(CloneFromRequestLogRequest) returns (CloneFromRequestLogResponse) {}
|
||||
rpc SendRequest(SendRequestRequest) returns (SendRequestResponse) {}
|
||||
rpc DeleteRequests(DeleteRequestsRequest) returns (DeleteRequestsResponse) {}
|
||||
}
|
Reference in New Issue
Block a user