Skip to content

Commit

Permalink
Starting playbooks (#2297)
Browse files Browse the repository at this point in the history
* starting playbooks

Signed-off-by: 0ssigeno <s.berni@certego.net>

* Not starting

Signed-off-by: 0ssigeno <s.berni@certego.net>

* Fix migration

Signed-off-by: 0ssigeno <s.berni@certego.net>

* Prettier

Signed-off-by: 0ssigeno <s.berni@certego.net>

* Fix

Signed-off-by: 0ssigeno <s.berni@certego.net>

---------

Signed-off-by: 0ssigeno <s.berni@certego.net>
  • Loading branch information
0ssigeno authored May 7, 2024
1 parent b50311c commit 6e8de55
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 2 deletions.
5 changes: 4 additions & 1 deletion api_app/playbooks_manager/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@ class PlaybookConfigAdminView(AbstractConfigAdminView, ModelWithOwnershipAdminVi
"get_pivots",
"get_visualizers",
"scan_mode",
"starting",
) + ModelWithOwnershipAdminView.list_display
list_filter = (
AbstractConfigAdminView.list_filter + ModelWithOwnershipAdminView.list_filter
AbstractConfigAdminView.list_filter
+ ("starting",)
+ ModelWithOwnershipAdminView.list_filter
)

@staticmethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def reverse_migrate(apps, schema_editor):
class Migration(migrations.Migration):
dependencies = [
("playbooks_manager", "0035_playbook_config_takedown_request"),
("visualizers_manager", "0037_4_change_primary_key"),
]

operations = [
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Django 4.2.11 on 2024-05-07 13:54

from django.db import migrations, models


class Migration(migrations.Migration):
dependencies = [
("playbooks_manager", "0036_static_analyzer_remove_visualizer"),
]

operations = [
migrations.AddField(
model_name="playbookconfig",
name="starting",
field=models.BooleanField(
default=True,
help_text="If False, the playbook can only be executed by pivots",
),
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Generated by Django 4.2.11 on 2024-05-07 13:54

from django.db import migrations

playbooks_to_change = ["Abuse_IP"]


def migrate(apps, schema_editor):
PlaybookConfig = apps.get_model("playbooks_manager", "PlaybookConfig")
for pc in PlaybookConfig.objects.filter(name__in=playbooks_to_change):
pc.starting = False
pc.save()


def reverse_migrate(apps, schema_editor):
PlaybookConfig = apps.get_model("playbooks_manager", "PlaybookConfig")
for pc in PlaybookConfig.objects.filter(name__in=playbooks_to_change):
pc.starting = True
pc.save()


class Migration(migrations.Migration):
dependencies = [
("playbooks_manager", "0037_playbookconfig_starting"),
]

operations = [
migrations.RunPython(migrate, reverse_migrate),
]
4 changes: 4 additions & 0 deletions api_app/playbooks_manager/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ class PlaybookConfig(AbstractConfig, OwnershipAbstractModel):

tlp = models.CharField(max_length=8, choices=TLP.choices)

starting = models.BooleanField(
default=True, help_text="If False, the playbook can only be executed by pivots"
)

class Meta:
ordering = ["name", "disabled"]
indexes = OwnershipAbstractModel.Meta.indexes
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Generated by Django 4.2.11 on 2024-05-07 13:54

import django.core.validators
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('authentication', '0005_create_profiles'),
]

operations = [
migrations.AlterField(
model_name='userprofile',
name='company_name',
field=models.CharField(blank=True, default='', max_length=32, validators=[django.core.validators.MinLengthValidator(3)]),
),
migrations.AlterField(
model_name='userprofile',
name='company_role',
field=models.CharField(blank=True, default='', max_length=32, validators=[django.core.validators.MinLengthValidator(3)]),
),
]
3 changes: 2 additions & 1 deletion frontend/src/components/scan/ScanForm.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ export default function ScanForm() {
playbooksGrouped[classification]
.map((playbook) => ({
isDisabled: playbook.disabled,
starting: playbook.starting,
value: playbook.name,
analyzers: playbook.analyzers,
connectors: playbook.connectors,
Expand All @@ -411,7 +412,7 @@ export default function ScanForm() {
scan_check_time: playbook.scan_check_time,
runtime_configuration: playbook.runtime_configuration,
}))
.filter((item) => !item.isDisabled);
.filter((item) => !item.isDisabled && item.starting);

const updateAdvancedConfig = (
tags,
Expand Down
6 changes: 6 additions & 0 deletions frontend/tests/mock.js
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ export const mockedPlaybooks = {
},
],
tlp: "CLEAR",
starting: true,
},
TEST_PLAYBOOK_DOMAIN: {
name: "TEST_PLAYBOOK_DOMAIN",
Expand All @@ -142,6 +143,7 @@ export const mockedPlaybooks = {
scan_check_time: "02:00:00:00",
tags: [],
tlp: "CLEAR",
starting: true,
},
TEST_PLAYBOOK_URL: {
name: "TEST_PLAYBOOK_URL",
Expand All @@ -159,6 +161,7 @@ export const mockedPlaybooks = {
scan_check_time: null,
tags: [],
tlp: "AMBER",
starting: true,
},
TEST_PLAYBOOK_HASH: {
name: "TEST_PLAYBOOK_HASH",
Expand All @@ -176,6 +179,7 @@ export const mockedPlaybooks = {
scan_check_time: null,
tags: [],
tlp: "AMBER",
starting: true,
},
TEST_PLAYBOOK_FILE: {
name: "TEST_PLAYBOOK_FILE",
Expand All @@ -193,6 +197,7 @@ export const mockedPlaybooks = {
scan_check_time: null,
tags: [],
tlp: "AMBER",
starting: true,
},
TEST_PLAYBOOK_GENERIC: {
name: "TEST_PLAYBOOK_GENERIC",
Expand All @@ -210,6 +215,7 @@ export const mockedPlaybooks = {
scan_check_time: null,
tags: [],
tlp: "AMBER",
starting: true,
},
};

Expand Down

0 comments on commit 6e8de55

Please sign in to comment.