Skip to content

Commit 001a15f

Browse files
committed
Allow osquery external alert
1 parent 6262c04 commit 001a15f

3 files changed

Lines changed: 35 additions & 6 deletions

File tree

app/Models/YnhOsquery.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,15 @@ public function message(): string
457457
if ($this->isRemoved()) {
458458
$msg = "Le paquet {$this->columns['name']} {$this->columns['version']} ({$type}) a été désinstallé.";
459459
}
460+
} else {
461+
$msg = isset($this->columns['text']) ? $this->columns['text'] : "Un événement de type {$this->name} est arrivé.";
462+
$msg = isset($this->columns['text'])
463+
? $this->columns['text']
464+
: "Un événement de type {$this->name} est arrivé. Champs disponibles : " . implode(', ', array_map(
465+
fn($k, $v) => "$k=$v",
466+
array_keys($this->columns),
467+
$this->columns
468+
));
460469
}
461470
}
462471
return $msg;

resources/themes/cywise/iframes/rules-editor.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
const editor = ace.edit("editor");
106106
editor.setTheme("ace/theme/monokai");
107107
editor.session.setMode("ace/mode/sql");
108-
editor.setValue(@json($rule->query ?? ''));
108+
editor.setValue(@json($rule->query ?? 'SELECT * FROM processes WHERE 1==0;'));
109109
110110
const btnDelete = document.querySelector('#delete-rule');
111111
const btnCreate = document.querySelector('#create-rule');

routes/web.php

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -266,11 +266,31 @@
266266
$server = \App\Models\YnhServer::where('secret', $secret)->first();
267267

268268
if (! $server) {
269-
return new JsonResponse([
270-
'status' => 'failure',
271-
'message' => 'server not found',
272-
'payload' => $payload,
273-
], 200, ['Access-Control-Allow-Origin' => '*']);
269+
$apiToken = \Wave\ApiKey::query()->where('key', '=', $secret)->first();
270+
271+
if (! $apiToken) {
272+
return new JsonResponse([
273+
'status' => 'failure',
274+
'message' => 'server not found',
275+
'payload' => $payload,
276+
], 200, ['Access-Control-Allow-Origin' => '*']);
277+
}
278+
279+
/** @var \App\Models\User $user */
280+
$user = $apiToken->user()->first();
281+
$user->actAs();
282+
283+
$server = \App\Models\YnhServer::where('name', $payload['hostname'])
284+
->where('created_by', $user->id)
285+
->first();
286+
287+
if (! $server) {
288+
return new JsonResponse([
289+
'status' => 'failure',
290+
'message' => 'server not found',
291+
'payload' => $payload,
292+
], 200, ['Access-Control-Allow-Origin' => '*']);
293+
}
274294
}
275295

276296
$events = collect($request->input('lines'))

0 commit comments

Comments
 (0)