// This software is available under the Apache-2.0 license.
// See https://www.apache.org/licenses/LICENSE-2.0.txt for full text.
//
// Copyright (c) 2024, Gluu, Inc.
syntax = "proto3";
package io.jans.lock.audit;
import "google/protobuf/timestamp.proto";
// Health Entry Message
message HealthEntry {
google.protobuf.Timestamp creation_date = 1;
google.protobuf.Timestamp event_time = 2;
string service = 3;
string node_name = 4;
string status = 5;
map<string, string> engine_status = 6;
}
message HealthRequest {
HealthEntry entry = 1;
}
message BulkHealthRequest {
repeated HealthEntry entries = 1;
}
// Log Entry Message
message LogEntry {
google.protobuf.Timestamp creation_date = 1;
google.protobuf.Timestamp event_time = 2;
string service = 3;
string node_name = 4;
string event_type = 5;
string severity_level = 6;
string action = 7;
string decision_result = 8;
string requested_resource = 9;
string principal_id = 10;
string client_id = 11;
string jti = 12;
map<string, string> context_information = 13;
}
message LogRequest {
LogEntry entry = 1;
}
message BulkLogRequest {
repeated LogEntry entries = 1;
}
// Telemetry Entry Message
message TelemetryEntry {
google.protobuf.Timestamp creation_date = 1;
string service = 2;
string node_name = 3;
string status = 4;
map<string, int64> policy_stats = 5;
map<string, int64> error_counters = 6;
map<string, int64> operational_stats = 7;
int64 interval_secs = 8;
}
message TelemetryRequest {
TelemetryEntry entry = 1;
}
message BulkTelemetryRequest {
repeated TelemetryEntry entries = 1;
}
// Common Response
message AuditResponse {
bool success = 1;
string message = 2;
}
// Audit Service
service AuditService {
rpc ProcessHealth(HealthRequest) returns (AuditResponse);
rpc ProcessBulkHealth(BulkHealthRequest) returns (AuditResponse);
rpc ProcessLog(LogRequest) returns (AuditResponse);
rpc ProcessBulkLog(BulkLogRequest) returns (AuditResponse);
rpc ProcessTelemetry(TelemetryRequest) returns (AuditResponse);
rpc ProcessBulkTelemetry(BulkTelemetryRequest) returns (AuditResponse);
}