Skip to content

Commit 9674d32

Browse files
committed
update protobuf and submit firewall definition
1 parent e17074f commit 9674d32

File tree

8 files changed

+69
-2
lines changed

8 files changed

+69
-2
lines changed

proto/appguard.proto

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ package appguard;
55
service AppGuard {
66
// Authentication
77
rpc Heartbeat (HeartbeatRequest) returns (stream HeartbeatResponse);
8+
// Firewall
9+
rpc UpdateFirewall (AppGuardFirewall) returns (Empty);
810
// TCP
911
rpc HandleTcpConnection (AppGuardTcpConnection) returns (AppGuardTcpResponse);
1012
// HTTP
@@ -35,6 +37,13 @@ message HeartbeatResponse {
3537
DeviceStatus status = 2;
3638
}
3739

40+
// Firewall ------------------------------------------------------------------------------------------------------------
41+
42+
message AppGuardFirewall {
43+
string token = 1;
44+
string firewall = 2;
45+
}
46+
3847
// TCP -----------------------------------------------------------------------------------------------------------------
3948

4049
message AppGuardTcpConnection {
@@ -101,6 +110,8 @@ message AppGuardSmtpResponse {
101110

102111
// Response ------------------------------------------------------------------------------------------------------------
103112

113+
message Empty {}
114+
104115
message AppGuardResponse {
105116
FirewallPolicy policy = 2;
106117
}

sample/src/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ const appGuardConfig: AppGuardConfig = {
88
port: 50051,
99
tls: false,
1010
defaultPolicy: FirewallPolicy.ALLOW,
11-
timeout: 1_000
11+
timeout: 1_000,
12+
firewall: "[]",
1213
}
1314

1415
const appGuardMiddleware = createAppGuardMiddleware(appGuardConfig)

src/app-guard-express.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {HeartbeatRequest} from "./proto/appguard/HeartbeatRequest";
1212
import {HeartbeatResponse__Output} from "./proto/appguard/HeartbeatResponse";
1313
import {DeviceStatus} from "./proto/appguard/DeviceStatus";
1414
import {TOKEN_FILE} from "./auth";
15+
import {AppGuardFirewall, AppGuardFirewall__Output} from "./proto/appguard/AppGuardFirewall";
1516

1617
const PROTO_FILE = __dirname + '/../proto/appguard.proto'
1718
const packageDef = protoLoader.loadSync(path.resolve(__dirname, PROTO_FILE))
@@ -92,7 +93,7 @@ export class AppGuardService {
9293
const fs = require('fs');
9394
fs.writeFileSync(TOKEN_FILE, heartbeat.token, {flag: 'w'});
9495
let status = heartbeat.status;
95-
if (status == DeviceStatus.DS_ARCHIVED || status == DeviceStatus.DS_DELETED) {
96+
if (status == DeviceStatus.ARCHIVED || status == DeviceStatus.DELETED) {
9697
// terminate current process
9798
console.log("Device is archived or deleted, terminating process");
9899
process.exit(0);
@@ -107,4 +108,15 @@ export class AppGuardService {
107108
}, 10000);
108109
});
109110
}
111+
async updateFirewall(req: AppGuardFirewall): Promise<AppGuardFirewall__Output>{
112+
return new Promise((resolve, reject) => {
113+
this.client.updateFirewall(req, (err, res) => {
114+
if(err){
115+
reject(err)
116+
} else {
117+
resolve(res as AppGuardFirewall__Output)
118+
}
119+
})
120+
})
121+
}
110122
}

src/express-middleware.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export type AppGuardConfig = {
1919
tls: boolean;
2020
timeout?: number;
2121
defaultPolicy: FirewallPolicy;
22+
firewall: string;
2223
};
2324

2425

@@ -29,6 +30,12 @@ export const createAppGuardMiddleware = (config: AppGuardConfig) => {
2930
async function initialize() {
3031
await appGuardService.onModuleInit();
3132
await authHandler.init();
33+
await appGuardService.updateFirewall({
34+
// @ts-ignore
35+
token: authHandler.token(),
36+
// @ts-ignore
37+
firewall: config.firewall
38+
})
3239
}
3340
initialize();
3441

src/proto/appguard.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ type SubtypeConstructor<Constructor extends new (...args: any) => any, Subtype>
1010
export interface ProtoGrpcType {
1111
appguard: {
1212
AppGuard: SubtypeConstructor<typeof grpc.Client, _appguard_AppGuardClient> & { service: _appguard_AppGuardDefinition }
13+
AppGuardFirewall: MessageTypeDefinition
1314
AppGuardHttpRequest: MessageTypeDefinition
1415
AppGuardHttpResponse: MessageTypeDefinition
1516
AppGuardIpInfo: MessageTypeDefinition
@@ -20,6 +21,7 @@ export interface ProtoGrpcType {
2021
AppGuardTcpInfo: MessageTypeDefinition
2122
AppGuardTcpResponse: MessageTypeDefinition
2223
DeviceStatus: EnumTypeDefinition
24+
Empty: MessageTypeDefinition
2325
FirewallPolicy: EnumTypeDefinition
2426
HeartbeatRequest: MessageTypeDefinition
2527
HeartbeatResponse: MessageTypeDefinition

src/proto/appguard/AppGuard.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import type * as grpc from '@grpc/grpc-js'
44
import type { MethodDefinition } from '@grpc/proto-loader'
5+
import type { AppGuardFirewall as _appguard_AppGuardFirewall, AppGuardFirewall__Output as _appguard_AppGuardFirewall__Output } from '../appguard/AppGuardFirewall';
56
import type { AppGuardHttpRequest as _appguard_AppGuardHttpRequest, AppGuardHttpRequest__Output as _appguard_AppGuardHttpRequest__Output } from '../appguard/AppGuardHttpRequest';
67
import type { AppGuardHttpResponse as _appguard_AppGuardHttpResponse, AppGuardHttpResponse__Output as _appguard_AppGuardHttpResponse__Output } from '../appguard/AppGuardHttpResponse';
78
import type { AppGuardResponse as _appguard_AppGuardResponse, AppGuardResponse__Output as _appguard_AppGuardResponse__Output } from '../appguard/AppGuardResponse';
89
import type { AppGuardSmtpRequest as _appguard_AppGuardSmtpRequest, AppGuardSmtpRequest__Output as _appguard_AppGuardSmtpRequest__Output } from '../appguard/AppGuardSmtpRequest';
910
import type { AppGuardSmtpResponse as _appguard_AppGuardSmtpResponse, AppGuardSmtpResponse__Output as _appguard_AppGuardSmtpResponse__Output } from '../appguard/AppGuardSmtpResponse';
1011
import type { AppGuardTcpConnection as _appguard_AppGuardTcpConnection, AppGuardTcpConnection__Output as _appguard_AppGuardTcpConnection__Output } from '../appguard/AppGuardTcpConnection';
1112
import type { AppGuardTcpResponse as _appguard_AppGuardTcpResponse, AppGuardTcpResponse__Output as _appguard_AppGuardTcpResponse__Output } from '../appguard/AppGuardTcpResponse';
13+
import type { Empty as _appguard_Empty, Empty__Output as _appguard_Empty__Output } from '../appguard/Empty';
1214
import type { HeartbeatRequest as _appguard_HeartbeatRequest, HeartbeatRequest__Output as _appguard_HeartbeatRequest__Output } from '../appguard/HeartbeatRequest';
1315
import type { HeartbeatResponse as _appguard_HeartbeatResponse, HeartbeatResponse__Output as _appguard_HeartbeatResponse__Output } from '../appguard/HeartbeatResponse';
1416

@@ -63,6 +65,15 @@ export interface AppGuardClient extends grpc.Client {
6365
heartbeat(argument: _appguard_HeartbeatRequest, metadata: grpc.Metadata, options?: grpc.CallOptions): grpc.ClientReadableStream<_appguard_HeartbeatResponse__Output>;
6466
heartbeat(argument: _appguard_HeartbeatRequest, options?: grpc.CallOptions): grpc.ClientReadableStream<_appguard_HeartbeatResponse__Output>;
6567

68+
UpdateFirewall(argument: _appguard_AppGuardFirewall, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
69+
UpdateFirewall(argument: _appguard_AppGuardFirewall, metadata: grpc.Metadata, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
70+
UpdateFirewall(argument: _appguard_AppGuardFirewall, options: grpc.CallOptions, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
71+
UpdateFirewall(argument: _appguard_AppGuardFirewall, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
72+
updateFirewall(argument: _appguard_AppGuardFirewall, metadata: grpc.Metadata, options: grpc.CallOptions, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
73+
updateFirewall(argument: _appguard_AppGuardFirewall, metadata: grpc.Metadata, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
74+
updateFirewall(argument: _appguard_AppGuardFirewall, options: grpc.CallOptions, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
75+
updateFirewall(argument: _appguard_AppGuardFirewall, callback: grpc.requestCallback<_appguard_Empty__Output>): grpc.ClientUnaryCall;
76+
6677
}
6778

6879
export interface AppGuardHandlers extends grpc.UntypedServiceImplementation {
@@ -78,6 +89,8 @@ export interface AppGuardHandlers extends grpc.UntypedServiceImplementation {
7889

7990
Heartbeat: grpc.handleServerStreamingCall<_appguard_HeartbeatRequest__Output, _appguard_HeartbeatResponse>;
8091

92+
UpdateFirewall: grpc.handleUnaryCall<_appguard_AppGuardFirewall__Output, _appguard_Empty>;
93+
8194
}
8295

8396
export interface AppGuardDefinition extends grpc.ServiceDefinition {
@@ -87,4 +100,5 @@ export interface AppGuardDefinition extends grpc.ServiceDefinition {
87100
HandleSmtpResponse: MethodDefinition<_appguard_AppGuardSmtpResponse, _appguard_AppGuardResponse, _appguard_AppGuardSmtpResponse__Output, _appguard_AppGuardResponse__Output>
88101
HandleTcpConnection: MethodDefinition<_appguard_AppGuardTcpConnection, _appguard_AppGuardTcpResponse, _appguard_AppGuardTcpConnection__Output, _appguard_AppGuardTcpResponse__Output>
89102
Heartbeat: MethodDefinition<_appguard_HeartbeatRequest, _appguard_HeartbeatResponse, _appguard_HeartbeatRequest__Output, _appguard_HeartbeatResponse__Output>
103+
UpdateFirewall: MethodDefinition<_appguard_AppGuardFirewall, _appguard_Empty, _appguard_AppGuardFirewall__Output, _appguard_Empty__Output>
90104
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Original file: proto/appguard.proto
2+
3+
4+
export interface AppGuardFirewall {
5+
'token'?: (string);
6+
'firewall'?: (string);
7+
}
8+
9+
export interface AppGuardFirewall__Output {
10+
'token'?: (string);
11+
'firewall'?: (string);
12+
}

src/proto/appguard/Empty.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Original file: proto/appguard.proto
2+
3+
4+
export interface Empty {
5+
}
6+
7+
export interface Empty__Output {
8+
}

0 commit comments

Comments
 (0)