Merge commit 'd1265fdb161f0a86944a27184fb3923350c9b6d1'

This commit is contained in:
Peter 2021-02-21 17:18:50 +01:00
commit f6ce972034
Signed by: prskr
GPG key ID: C1DB5D2E8DB512F9
12 changed files with 193 additions and 159 deletions

View file

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

12
api/.gitlab-ci.yml Normal file
View file

@ -0,0 +1,12 @@
image:
name: docker.io/bufbuild/buf:latest
entrypoint: [""]
stages:
- test
lint:
stage: test
script:
- buf ls-files
- buf lint

20
api/buf.yaml Normal file
View file

@ -0,0 +1,20 @@
# Below is not the lint and breaking configuration we recommend!
# This just just what googleapis passes.
# For lint, we recommend having the single value "DEFAULT" in "use"
# with no values in "except".
# For breaking, we recommend having the single value "FILE" in use.
# See https://docs.buf.build/lint-usage
# See https://docs.buf.build/breaking-usage
version: v1beta1
build:
roots:
- proto
lint:
use:
- DEFAULT
except:
- PACKAGE_DIRECTORY_MATCH
allow_comment_ignores: true
breaking:
use:
- FILE

View file

@ -1,43 +0,0 @@
syntax = "proto3";
package inetmock.audit.details;
option csharp_namespace = "INetMock.Client.Audit.Details";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit/details";
option java_multiple_files = true;
option java_outer_classname = "HandlerEventProto";
option java_package = "com.github.baez90.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

@ -1,33 +0,0 @@
syntax = "proto3";
package inetmock.audit.details;
option csharp_namespace = "INetMock.Client.Audit.Details";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit/details";
option java_multiple_files = true;
option java_outer_classname = "HandlerEventProto";
option java_package = "com.github.baez90.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,44 @@
syntax = "proto3";
package inetmock.audit.v1;
option csharp_namespace = "INetMock.Client.Audit";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit";
option java_multiple_files = true;
option java_outer_classname = "HandlerEventProto";
option java_package = "com.github.baez90.inetmock.audit";
enum DNSOpCode {
//buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
DNS_OP_CODE_QUERY = 0;
DNS_OP_CODE_STATUS = 2;
DNS_OP_CODE_NOTIFY = 4;
DNS_OP_CODE_UPDATE = 5;
}
enum ResourceRecordType {
RESOURCE_RECORD_TYPE_UNSPECIFIED = 0;
RESOURCE_RECORD_TYPE_A = 1;
RESOURCE_RECORD_TYPE_NS = 2;
RESOURCE_RECORD_TYPE_CNAME = 5;
RESOURCE_RECORD_TYPE_SOA = 6;
RESOURCE_RECORD_TYPE_PTR = 12;
RESOURCE_RECORD_TYPE_HINFO = 13;
RESOURCE_RECORD_TYPE_MINFO = 14;
RESOURCE_RECORD_TYPE_MX = 15;
RESOURCE_RECORD_TYPE_TXT = 16;
RESOURCE_RECORD_TYPE_RP = 17;
RESOURCE_RECORD_TYPE_AAAA = 28;
RESOURCE_RECORD_TYPE_SRV = 33;
RESOURCE_RECORD_TYPE_NAPTR = 35;
}
message DNSQuestionEntity {
ResourceRecordType type = 1;
string name = 2;
}
message DNSDetailsEntity {
DNSOpCode opcode = 1;
repeated DNSQuestionEntity questions = 2;
}

View file

@ -1,6 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package inetmock.audit; package inetmock.audit.v1;
option csharp_namespace = "INetMock.Client.Audit"; option csharp_namespace = "INetMock.Client.Audit";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit"; option go_package = "gitlab.com/inetmock/inetmock/pkg/audit";
@ -12,30 +12,30 @@ import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
enum TransportProtocol { enum TransportProtocol {
UNKNOWN_TRANSPORT = 0; TRANSPORT_PROTOCOL_UNSPECIFIED = 0;
TCP = 1; TRANSPORT_PROTOCOL_TCP = 1;
UDP = 2; TRANSPORT_PROTOCOL_UDP = 2;
} }
enum AppProtocol { enum AppProtocol {
UNKNOWN_APPLICATION = 0; APP_PROTOCOL_UNSPECIFIED = 0;
DNS = 1; APP_PROTOCOL_DNS = 1;
HTTP = 2; APP_PROTOCOL_HTTP = 2;
HTTP_PROXY = 3; APP_PROTOCOL_HTTP_PROXY = 3;
} }
enum TLSVersion { enum TLSVersion {
SSLv30 = 0; TLS_VERSION_UNSPECIFIED = 0;
TLS10 = 1; TLS_VERSION_TLS10 = 1;
TLS11 = 2; TLS_VERSION_TLS11 = 2;
TLS12 = 3; TLS_VERSION_TLS12 = 3;
TLS13 = 4; TLS_VERSION_TLS13 = 4;
} }
message TLSDetailsEntity { message TLSDetailsEntity {
TLSVersion version = 1; TLSVersion version = 1;
string cipherSuite = 2; string cipher_suite = 2;
string serverName = 3; string server_name = 3;
} }
message EventEntity { message EventEntity {
@ -43,10 +43,10 @@ message EventEntity {
google.protobuf.Timestamp timestamp = 2; google.protobuf.Timestamp timestamp = 2;
TransportProtocol transport = 3; TransportProtocol transport = 3;
AppProtocol application = 4; AppProtocol application = 4;
bytes sourceIP = 5; bytes source_ip = 5;
bytes destinationIP = 6; bytes destination_ip = 6;
uint32 sourcePort = 7; uint32 source_port = 7;
uint32 destinationPort = 8; uint32 destination_port = 8;
TLSDetailsEntity tls = 9; TLSDetailsEntity tls = 9;
google.protobuf.Any protocolDetails = 10; google.protobuf.Any protocol_details = 10;
} }

View file

@ -0,0 +1,34 @@
syntax = "proto3";
package inetmock.audit.v1;
option csharp_namespace = "INetMock.Client.Audit";
option go_package = "gitlab.com/inetmock/inetmock/pkg/audit";
option java_multiple_files = true;
option java_outer_classname = "HandlerEventProto";
option java_package = "com.github.baez90.inetmock.audit";
enum HTTPMethod {
HTTP_METHOD_UNSPECIFIED = 0;
HTTP_METHOD_GET = 1;
HTTP_METHOD_HEAD = 2;
HTTP_METHOD_POST = 3;
HTTP_METHOD_PUT = 4;
HTTP_METHOD_DELETE = 5;
HTTP_METHOD_CONNECT = 6;
HTTP_METHOD_OPTIONS = 7;
HTTP_METHOD_TRACE = 8;
HTTP_METHOD_PATCH = 9;
}
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

@ -1,34 +0,0 @@
syntax = "proto3";
package inetmock.rpc;
option csharp_namespace = "INetMock.Client.Rpc";
option go_package = "gitlab.com/inetmock/inetmock/internal/rpc";
option java_multiple_files = true;
option java_outer_classname = "HealthProto";
option java_package = "com.github.baez90.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;
}

View file

@ -1,6 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package inetmock.rpc; package inetmock.rpc.v1;
option csharp_namespace = "INetMock.Client.Rpc"; option csharp_namespace = "INetMock.Client.Rpc";
option go_package = "gitlab.com/inetmock/inetmock/pkg/rpc"; option go_package = "gitlab.com/inetmock/inetmock/pkg/rpc";
@ -8,31 +8,30 @@ option java_multiple_files = true;
option java_outer_classname = "AuditProto"; option java_outer_classname = "AuditProto";
option java_package = "com.github.baez90.inetmock.rpc"; option java_package = "com.github.baez90.inetmock.rpc";
import "audit/event_entity.proto"; import "audit/v1/event_entity.proto";
enum FileOpenMode {
TRUNCATE = 0;
APPEND = 1;
}
message WatchEventsRequest { message WatchEventsRequest {
string watcherName = 1; string watcher_name = 1;
}
message WatchEventsResponse {
inetmock.audit.v1.EventEntity entity = 1;
} }
message RegisterFileSinkRequest { message RegisterFileSinkRequest {
string targetPath = 1; string target_path = 1;
} }
message RegisterFileSinkResponse { message RegisterFileSinkResponse {
string resolvedPath = 1; string resolved_path = 1;
} }
message RemoveFileSinkRequest { message RemoveFileSinkRequest {
string targetPath = 1; string target_path = 1;
} }
message RemoveFileSinkResponse { message RemoveFileSinkResponse {
bool SinkGotRemoved = 1; bool sink_got_removed = 1;
} }
message ListSinksRequest {} message ListSinksRequest {}
@ -41,8 +40,8 @@ message ListSinksResponse {
repeated string sinks = 1; repeated string sinks = 1;
} }
service Audit { service AuditService {
rpc WatchEvents(WatchEventsRequest) returns (stream inetmock.audit.EventEntity); rpc WatchEvents(WatchEventsRequest) returns (stream WatchEventsResponse);
rpc RegisterFileSink(RegisterFileSinkRequest) returns (RegisterFileSinkResponse); rpc RegisterFileSink(RegisterFileSinkRequest) returns (RegisterFileSinkResponse);
rpc RemoveFileSink(RemoveFileSinkRequest) returns (RemoveFileSinkResponse); rpc RemoveFileSink(RemoveFileSinkRequest) returns (RemoveFileSinkResponse);
rpc ListSinks(ListSinksRequest) returns (ListSinksResponse); rpc ListSinks(ListSinksRequest) returns (ListSinksResponse);

View file

@ -0,0 +1,34 @@
syntax = "proto3";
package inetmock.rpc.v1;
option csharp_namespace = "INetMock.Client.Rpc";
option go_package = "gitlab.com/inetmock/inetmock/pkg/rpc";
option java_multiple_files = true;
option java_outer_classname = "HealthProto";
option java_package = "com.github.baez90.inetmock.rpc";
enum HealthState {
HEALTH_STATE_UNSPECIFIED = 0;
HEALTH_STATE_INITIALIZING = 1;
HEALTH_STATE_UNHEALTHY = 2;
HEALTH_STATE_HEALTHY = 3;
}
message GetHealthRequest {
repeated string components = 1;
}
message ComponentHealth {
HealthState state = 1;
string message = 2;
}
message GetHealthResponse {
HealthState overall_health_state = 1;
map<string, ComponentHealth> components_health = 2;
}
service HealthService {
rpc GetHealth(GetHealthRequest) returns (GetHealthResponse);
}

View file

@ -1,6 +1,6 @@
syntax = "proto3"; syntax = "proto3";
package inetmock.rpc; package inetmock.rpc.v1;
option csharp_namespace = "INetMock.Client.Rpc"; option csharp_namespace = "INetMock.Client.Rpc";
option go_package = "gitlab.com/inetmock/inetmock/pkg/rpc"; option go_package = "gitlab.com/inetmock/inetmock/pkg/rpc";
@ -17,37 +17,37 @@ message ListAvailableDevicesResponse {
string name = 1; string name = 1;
repeated bytes addresses = 2; repeated bytes addresses = 2;
} }
repeated PCAPDevice availableDevices = 1; repeated PCAPDevice available_devices = 1;
} }
message ListRecordingsRequest {} message ListActiveRecordingsRequest {}
message ListRecordingsResponse { message ListActiveRecordingsResponse {
repeated string subscriptions = 1; repeated string subscriptions = 1;
} }
message StartPCAPFileRecordRequest { message StartPCAPFileRecordingRequest {
string device = 1; string device = 1;
string targetPath = 2; string target_path = 2;
bool promiscuous = 3; bool promiscuous = 3;
google.protobuf.Duration readTimeout = 4; google.protobuf.Duration read_timeout = 4;
} }
message StartPCAPFileRecordResponse { message StartPCAPFileRecordingResponse {
string resolvedPath = 1; string resolved_path = 1;
} }
message StopPCAPFileRecordRequest { message StopPCAPFileRecordRequest {
string consumerKey = 1; string consumer_key = 1;
} }
message StopPCAPFileRecordResponse { message StopPCAPFileRecordResponse {
bool removed = 1; bool removed = 1;
} }
service PCAP { service PCAPService {
rpc ListAvailableDevices(ListAvailableDevicesRequest) returns (ListAvailableDevicesResponse); rpc ListAvailableDevices(ListAvailableDevicesRequest) returns (ListAvailableDevicesResponse);
rpc ListActiveRecordings(ListRecordingsRequest) returns (ListRecordingsResponse); rpc ListActiveRecordings(ListActiveRecordingsRequest) returns (ListActiveRecordingsResponse);
rpc StartPCAPFileRecording(StartPCAPFileRecordRequest) returns (StartPCAPFileRecordResponse); rpc StartPCAPFileRecording(StartPCAPFileRecordingRequest) returns (StartPCAPFileRecordingResponse);
rpc StopPCAPFileRecord(StopPCAPFileRecordRequest) returns (StopPCAPFileRecordResponse); rpc StopPCAPFileRecord(StopPCAPFileRecordRequest) returns (StopPCAPFileRecordResponse);
} }