Merge commit '231f06b9a1f3cf357627b4913e7a04b69403d010' into update-api-definition

This commit is contained in:
Peter 2021-02-22 08:29:47 +01:00
commit 84b81dc99b
14 changed files with 300 additions and 216 deletions

View file

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

12
.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
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";
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";
option csharp_namespace = "INetMock.Client.Audit.Details";
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

@ -1,33 +0,0 @@
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";
option csharp_namespace = "INetMock.Client.Audit.Details";
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

@ -1,52 +0,0 @@
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";
option csharp_namespace = "INetMock.Client.Audit";
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;
}

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

@ -0,0 +1,52 @@
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";
import "google/protobuf/any.proto";
import "google/protobuf/timestamp.proto";
enum TransportProtocol {
TRANSPORT_PROTOCOL_UNSPECIFIED = 0;
TRANSPORT_PROTOCOL_TCP = 1;
TRANSPORT_PROTOCOL_UDP = 2;
}
enum AppProtocol {
APP_PROTOCOL_UNSPECIFIED = 0;
APP_PROTOCOL_DNS = 1;
APP_PROTOCOL_HTTP = 2;
APP_PROTOCOL_HTTP_PROXY = 3;
}
enum TLSVersion {
TLS_VERSION_UNSPECIFIED = 0;
TLS_VERSION_TLS10 = 1;
TLS_VERSION_TLS11 = 2;
TLS_VERSION_TLS12 = 3;
TLS_VERSION_TLS13 = 4;
}
message TLSDetailsEntity {
TLSVersion version = 1;
string cipher_suite = 2;
string server_name = 3;
}
message EventEntity {
int64 id = 1;
google.protobuf.Timestamp timestamp = 2;
TransportProtocol transport = 3;
AppProtocol application = 4;
bytes source_ip = 5;
bytes destination_ip = 6;
uint32 source_port = 7;
uint32 destination_port = 8;
TLSDetailsEntity tls = 9;
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,51 +0,0 @@
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";
option csharp_namespace = "INetMock.Client.Rpc";
import 'audit/event_entity.proto';
package inetmock.rpc;
enum FileOpenMode {
TRUNCATE = 0;
APPEND = 1;
}
message WatchEventsRequest {
string watcherName = 1;
}
message RegisterFileSinkRequest {
string targetPath = 1;
}
message RegisterFileSinkResponse {
string resolvedPath = 1;
}
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);
}

View file

@ -1,35 +0,0 @@
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";
option csharp_namespace = "INetMock.Client.Rpc";
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;
}

48
proto/rpc/v1/audit.proto Normal file
View file

@ -0,0 +1,48 @@
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 = "AuditProto";
option java_package = "com.github.baez90.inetmock.rpc";
import "audit/v1/event_entity.proto";
message WatchEventsRequest {
string watcher_name = 1;
}
message WatchEventsResponse {
inetmock.audit.v1.EventEntity entity = 1;
}
message RegisterFileSinkRequest {
string target_path = 1;
}
message RegisterFileSinkResponse {
string resolved_path = 1;
}
message RemoveFileSinkRequest {
string target_path = 1;
}
message RemoveFileSinkResponse {
bool sink_got_removed = 1;
}
message ListSinksRequest {}
message ListSinksResponse {
repeated string sinks = 1;
}
service AuditService {
rpc WatchEvents(WatchEventsRequest) returns (stream WatchEventsResponse);
rpc RegisterFileSink(RegisterFileSinkRequest) returns (RegisterFileSinkResponse);
rpc RemoveFileSink(RemoveFileSinkRequest) returns (RemoveFileSinkResponse);
rpc ListSinks(ListSinksRequest) returns (ListSinksResponse);
}

34
proto/rpc/v1/health.proto Normal file
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);
}

53
proto/rpc/v1/pcap.proto Normal file
View file

@ -0,0 +1,53 @@
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 = "AuditProto";
option java_package = "com.github.baez90.inetmock.rpc";
import "google/protobuf/duration.proto";
message ListAvailableDevicesRequest {}
message ListAvailableDevicesResponse {
message PCAPDevice {
string name = 1;
repeated bytes addresses = 2;
}
repeated PCAPDevice available_devices = 1;
}
message ListActiveRecordingsRequest {}
message ListActiveRecordingsResponse {
repeated string subscriptions = 1;
}
message StartPCAPFileRecordingRequest {
string device = 1;
string target_path = 2;
bool promiscuous = 3;
google.protobuf.Duration read_timeout = 4;
}
message StartPCAPFileRecordingResponse {
string resolved_path = 1;
}
message StopPCAPFileRecordRequest {
string consumer_key = 1;
}
message StopPCAPFileRecordResponse {
bool removed = 1;
}
service PCAPService {
rpc ListAvailableDevices(ListAvailableDevicesRequest) returns (ListAvailableDevicesResponse);
rpc ListActiveRecordings(ListActiveRecordingsRequest) returns (ListActiveRecordingsResponse);
rpc StartPCAPFileRecording(StartPCAPFileRecordingRequest) returns (StartPCAPFileRecordingResponse);
rpc StopPCAPFileRecord(StopPCAPFileRecordRequest) returns (StopPCAPFileRecordResponse);
}