Initial commit

This commit is contained in:
Peter 2021-02-13 18:20:57 +01:00
commit cdcce2ec26
Signed by: prskr
GPG key ID: C1DB5D2E8DB512F9
8 changed files with 224 additions and 0 deletions

10
.editorconfig Normal file
View file

@ -0,0 +1,10 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
[*.proto]
indent_style = space
indent_size = 4

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.vscode/
.idea/

1
README.md Normal file
View file

@ -0,0 +1 @@
# INetMock protobuf API

View file

@ -0,0 +1,42 @@
syntax = "proto3";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit/details";
option java_multiple_files = true;
option java_package = "com.github.baez90.inetmock.audit.details";
option java_outer_classname = "HandlerEventProto";
package inetmock.audit.details;
enum DNSOpCode {
Query = 0;
Status = 2;
Notify = 4;
Update = 5;
}
enum ResourceRecordType {
UnknownRR = 0;
A = 1;
NS = 2;
CNAME = 5;
SOA = 6;
PTR = 12;
HINFO = 13;
MINFO = 14;
MX = 15;
TXT = 16;
RP = 17;
AAAA = 28;
SRV = 33;
NAPTR = 35;
}
message DNSQuestionEntity {
ResourceRecordType type = 1;
string name = 2;
}
message DNSDetailsEntity {
DNSOpCode opcode = 1;
repeated DNSQuestionEntity questions = 2;
}

View file

@ -0,0 +1,32 @@
syntax = "proto3";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit/details";
option java_multiple_files = true;
option java_package = "com.github.baez90.inetmock.audit.details";
option java_outer_classname = "HandlerEventProto";
package inetmock.audit.details;
enum HTTPMethod {
GET = 0;
HEAD = 1;
POST = 2;
PUT = 3;
DELETE = 4;
CONNECT = 5;
OPTIONS = 6;
TRACE = 7;
PATCH = 8;
}
message HTTPHeaderValue {
repeated string values = 1;
}
message HTTPDetailsEntity {
HTTPMethod method = 1;
string host = 2;
string uri = 3;
string proto = 4;
map<string, HTTPHeaderValue> headers = 5;
}

View file

@ -0,0 +1,51 @@
syntax = "proto3";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit";
option java_multiple_files = true;
option java_package = "com.github.baez90.inetmock.audit";
option java_outer_classname = "HandlerEventProto";
package inetmock.audit;
import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto";
enum TransportProtocol {
UNKNOWN_TRANSPORT = 0;
TCP = 1;
UDP = 2;
}
enum AppProtocol {
UNKNOWN_APPLICATION = 0;
DNS = 1;
HTTP = 2;
HTTP_PROXY = 3;
}
enum TLSVersion {
SSLv30 = 0;
TLS10 = 1;
TLS11 = 2;
TLS12 = 3;
TLS13 = 4;
}
message TLSDetailsEntity {
TLSVersion version = 1;
string cipherSuite = 2;
string serverName = 3;
}
message EventEntity {
int64 id = 1;
google.protobuf.Timestamp timestamp = 2;
TransportProtocol transport = 3;
AppProtocol application = 4;
bytes sourceIP = 5;
bytes destinationIP = 6;
uint32 sourcePort = 7;
uint32 destinationPort = 8;
TLSDetailsEntity tls = 9;
google.protobuf.Any protocolDetails = 10;
}

52
proto/rpc/audit.proto Normal file
View file

@ -0,0 +1,52 @@
syntax = "proto3";
option go_package = "gitlab.com/inetmock/inetmock/pkg/rpc";
option java_multiple_files = true;
option java_package = "com.github.baez90.inetmock.rpc";
option java_outer_classname = "AuditProto";
import 'pkg/audit/event_entity.proto';
package inetmock.rpc;
enum FileOpenMode {
TRUNCATE = 0;
APPEND = 1;
}
message WatchEventsRequest {
string watcherName = 1;
}
message RegisterFileSinkRequest {
string targetPath = 1;
FileOpenMode openMode = 2;
uint32 permissions = 3;
}
message RegisterFileSinkResponse {
}
message RemoveFileSinkRequest {
string targetPath = 1;
}
message RemoveFileSinkResponse {
bool SinkGotRemoved = 1;
}
message ListSinksRequest {
}
message ListSinksResponse {
repeated string sinks = 1;
}
service Audit {
rpc WatchEvents (WatchEventsRequest) returns (stream inetmock.audit.EventEntity);
rpc RegisterFileSink (RegisterFileSinkRequest) returns (RegisterFileSinkResponse);
rpc RemoveFileSink (RemoveFileSinkRequest) returns (RemoveFileSinkResponse);
rpc ListSinks(ListSinksRequest) returns (ListSinksResponse);
}

34
proto/rpc/health.proto Normal file
View file

@ -0,0 +1,34 @@
syntax = "proto3";
option go_package = "gitlab.com/inetmock/inetmock/internal/rpc";
option java_multiple_files = true;
option java_package = "com.github.baez90.inetmock.rpc";
option java_outer_classname = "HealthProto";
package inetmock.rpc;
service Health {
rpc GetHealth (HealthRequest) returns (HealthResponse) {
}
}
enum HealthState {
HEALTHY = 0;
INITIALIZING = 1;
UNHEALTHY = 2;
UNKNOWN = 3;
}
message HealthRequest {
repeated string components = 1;
}
message ComponentHealth {
HealthState State = 1;
string message = 2;
}
message HealthResponse {
HealthState overallHealthState = 1;
map<string, ComponentHealth> componentsHealth = 2;
}