Unable to find data model for generic
| Request Method: | GET |
|---|---|
| Request URL: | http://localhost/api/jobs/59 |
| Django Version: | 4.2.16 |
| Exception Type: | NotImplementedError |
| Exception Value: | Unable to find data model for generic |
| Exception Location: | /opt/deploy/intel_owl/api_app/analyzers_manager/models.py, line 76, in get_data_model_class |
| Raised during: | api_app.views.JobViewSet |
| Python Executable: | /usr/local/bin/python |
| Python Version: | 3.11.7 |
| Python Path: | ['/opt/deploy/intel_owl', '/opt/deploy/intel_owl', '/opt/deploy/intel_owl', '/usr/local/lib/python311.zip', '/usr/local/lib/python3.11', '/usr/local/lib/python3.11/lib-dynload', '/usr/local/lib/python3.11/site-packages'] |
| Server time: | Mon, 06 Jan 2025 06:26:38 +0000 |
/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py, line 55, in inner
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^ …except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
| Variable | Value |
|---|---|
| exc | NotImplementedError('Unable to find data model for generic') |
| get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0xffffa7b618d0>> |
| request | <WSGIRequest: GET '/api/jobs/59'> |
/usr/local/lib/python3.11/site-packages/django/core/handlers/base.py, line 197, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
| Variable | Value |
|---|---|
| callback | <function JobViewSet at 0xffffa68a3740> |
| callback_args | () |
| callback_kwargs | {'pk': '59'} |
| middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
| request | <WSGIRequest: GET '/api/jobs/59'> |
| response | None |
| self | <django.core.handlers.wsgi.WSGIHandler object at 0xffffa7b618d0> |
| wrapped_callback | <function JobViewSet at 0xffffa68a3740> |
/usr/local/lib/python3.11/site-packages/django/views/decorators/csrf.py, line 56, in wrapper_view
def csrf_exempt(view_func):
"""Mark a view function as being exempt from the CSRF view protection."""
# view_func.csrf_exempt = True would also work, but decorators are nicer
# if they don't have side effects, so return a new function.
@wraps(view_func)
def wrapper_view(*args, **kwargs):
return view_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^ …wrapper_view.csrf_exempt = True
return wrapper_view
| Variable | Value |
|---|---|
| args | (<WSGIRequest: GET '/api/jobs/59'>,) |
| kwargs | {'pk': '59'} |
| view_func | <function JobViewSet at 0xffffa68a36a0> |
/usr/local/lib/python3.11/site-packages/rest_framework/viewsets.py, line 124, in view
setattr(self, method, handler)
self.request = request
self.args = args
self.kwargs = kwargs
# And continue as usual
return self.dispatch(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …# take name and docstring from class
update_wrapper(view, cls, updated=())
# and possible attributes set by decorators
# like csrf_exempt from dispatch
| Variable | Value |
|---|---|
| action | 'retrieve' |
| actions | {'delete': 'destroy', 'get': 'retrieve', 'head': 'retrieve'} |
| args | () |
| cls | <class 'api_app.views.JobViewSet'> |
| handler | <bound method RetrieveModelMixin.retrieve of <api_app.views.JobViewSet object at 0xffffa576a8d0>> |
| initkwargs | {'basename': 'jobs', 'detail': True, 'suffix': 'Instance'} |
| kwargs | {'pk': '59'} |
| method | 'head' |
| request | <WSGIRequest: GET '/api/jobs/59'> |
| self | <api_app.views.JobViewSet object at 0xffffa576a8d0> |
/usr/local/lib/python3.11/site-packages/rest_framework/views.py, line 509, in dispatch
self.http_method_not_allowed)
else:
handler = self.http_method_not_allowed
response = handler(request, *args, **kwargs)
except Exception as exc:
response = self.handle_exception(exc)
^^^^^^^^^^^^^^^^^^^^^^^^^^ …self.response = self.finalize_response(request, response, *args, **kwargs)
return self.response
def options(self, request, *args, **kwargs):
"""
| Variable | Value |
|---|---|
| args | () |
| handler | <bound method RetrieveModelMixin.retrieve of <api_app.views.JobViewSet object at 0xffffa576a8d0>> |
| kwargs | {'pk': '59'} |
| request | <rest_framework.request.Request: GET '/api/jobs/59'> |
| self | <api_app.views.JobViewSet object at 0xffffa576a8d0> |
/usr/local/lib/python3.11/site-packages/rest_framework/views.py, line 469, in handle_exception
exception_handler = self.get_exception_handler()
context = self.get_exception_handler_context()
response = exception_handler(exc, context)
if response is None:
self.raise_uncaught_exception(exc)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …response.exception = True
return response
def raise_uncaught_exception(self, exc):
if settings.DEBUG:
| Variable | Value |
|---|---|
| context | {'args': (),
'kwargs': {'pk': '59'},
'request': <rest_framework.request.Request: GET '/api/jobs/59'>,
'view': <api_app.views.JobViewSet object at 0xffffa576a8d0>} |
| exc | NotImplementedError('Unable to find data model for generic') |
| exception_handler | <function logging_exception_handler at 0xffffa6d6c900> |
| response | None |
| self | <api_app.views.JobViewSet object at 0xffffa576a8d0> |
/usr/local/lib/python3.11/site-packages/rest_framework/views.py, line 480, in raise_uncaught_exception
def raise_uncaught_exception(self, exc):
if settings.DEBUG:
request = self.request
renderer_format = getattr(request.accepted_renderer, 'format')
use_plaintext_traceback = renderer_format not in ('html', 'api', 'admin')request.force_plaintext_errors(use_plaintext_traceback)
raise exc
^^^^^^^^^ …# Note: Views are made CSRF exempt from within `as_view` as to prevent
# accidental removal of this exemption in cases where `dispatch` needs to
# be overridden.
def dispatch(self, request, *args, **kwargs):
"""
| Variable | Value |
|---|---|
| exc | NotImplementedError('Unable to find data model for generic') |
| renderer_format | 'json' |
| request | <rest_framework.request.Request: GET '/api/jobs/59'> |
| self | <api_app.views.JobViewSet object at 0xffffa576a8d0> |
| use_plaintext_traceback | True |
/usr/local/lib/python3.11/site-packages/rest_framework/views.py, line 506, in dispatch
# Get the appropriate handler method
if request.method.lower() in self.http_method_names:
handler = getattr(self, request.method.lower(),
self.http_method_not_allowed)
else:
handler = self.http_method_not_allowed
response = handler(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …except Exception as exc:
response = self.handle_exception(exc)
self.response = self.finalize_response(request, response, *args, **kwargs)
return self.response
| Variable | Value |
|---|---|
| args | () |
| handler | <bound method RetrieveModelMixin.retrieve of <api_app.views.JobViewSet object at 0xffffa576a8d0>> |
| kwargs | {'pk': '59'} |
| request | <rest_framework.request.Request: GET '/api/jobs/59'> |
| self | <api_app.views.JobViewSet object at 0xffffa576a8d0> |
/usr/local/lib/python3.11/site-packages/rest_framework/mixins.py, line 56, in retrieve
class RetrieveModelMixin:
"""
Retrieve a model instance.
"""
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)
return Response(serializer.data)
^^^^^^^^^^^^^^^ …class UpdateModelMixin:
"""
Update a model instance.
"""
| Variable | Value |
|---|---|
| args | () |
| instance | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
| kwargs | {'pk': '59'} |
| request | <rest_framework.request.Request: GET '/api/jobs/59'> |
| self | <api_app.views.JobViewSet object at 0xffffa576a8d0> |
| serializer | RestJobSerializer(<Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>, context={'request': <rest_framework.request.Request: GET '/api/jobs/59'>, 'format': None, 'view': <api_app.views.JobViewSet object>}):
id = IntegerField(label='ID', read_only=True)
user = UserSerializer():
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
tags = TagSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
label = CharField(max_length=50, min_length=4, validators=[<UniqueValidator(queryset=Tag.objects.all())>])
color = CharField(max_length=7, validators=[<django.core.validators.RegexValidator object>])
comments = CommentSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
content = CharField(style={'base_template': 'textarea.html'})
created_at = DateTimeField(read_only=True)
user = UserSerializer(read_only=True):
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
job_id = PrimaryKeyRelatedField(queryset=<JobQuerySet [<Job: Job(#53, "facebook-lite-430-1-0-5-109.apk")>, <Job: Job(#56, "t13d301200_1d37bd780c83_d339722ba4af")>, <Job: Job(#54, "t13d301200_1d37bd780c83_550dd089df7a")>, <Job: Job(#58, "t13i181000_85036bcba153_d41ae481755e")>, <Job: Job(#55, "t13d1715h2_5b57614c22b0_c114573b7948")>, <Job: Job(#57, "t13d1516h2_8daaf6152771_02713d6af862")>, <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>]>, source='job', write_only=True)
pivots_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
visualizers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
playbook_requested = SlugRelatedField(read_only=True, slug_field='name')
playbook_to_execute = SlugRelatedField(read_only=True, slug_field='name')
investigation = SerializerMethodField(default=None, read_only=True)
permissions = SerializerMethodField()
analyzers_data_model = SerializerMethodField(read_only=True)
analyzer_reports = AnalyzerReportSerializer(many=True, read_only=True, source='analyzerreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
end_time = DateTimeField(required=False)
parameters = JSONField(decoder=None, encoder=None, read_only=True, style={'base_template': 'textarea.html'})
type = SerializerMethodField(method_name='get_type', read_only=True)
id = IntegerField(label='ID', read_only=True)
report = JSONField(decoder=None, encoder=None, required=False, style={'base_template': 'textarea.html'})
errors = ListField(child=CharField(label='Errors', max_length=512), required=False)
start_time = DateTimeField(required=False)
connector_reports = ConnectorReportSerializer(many=True, read_only=True, source='connectorreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
… <trimmed 8973 bytes string> |
/usr/local/lib/python3.11/site-packages/rest_framework/serializers.py, line 571, in data
return BoundField(field, value, error)
# Include a backlink to the serializer class on return objects.
# Allows renderers such as HTMLFormRenderer to get the full field info.
@property
def data(self):
ret = super().data
^^^^^^^^^^^^ …return ReturnDict(ret, serializer=self)
@property
def errors(self):
ret = super().errors
if isinstance(ret, list) and len(ret) == 1 and getattr(ret[0], 'code', None) == 'null':
| Variable | Value |
|---|---|
| __class__ | <class 'rest_framework.serializers.Serializer'> |
| self | RestJobSerializer(<Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>, context={'request': <rest_framework.request.Request: GET '/api/jobs/59'>, 'format': None, 'view': <api_app.views.JobViewSet object>}):
id = IntegerField(label='ID', read_only=True)
user = UserSerializer():
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
tags = TagSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
label = CharField(max_length=50, min_length=4, validators=[<UniqueValidator(queryset=Tag.objects.all())>])
color = CharField(max_length=7, validators=[<django.core.validators.RegexValidator object>])
comments = CommentSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
content = CharField(style={'base_template': 'textarea.html'})
created_at = DateTimeField(read_only=True)
user = UserSerializer(read_only=True):
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
job_id = PrimaryKeyRelatedField(queryset=<JobQuerySet [<Job: Job(#53, "facebook-lite-430-1-0-5-109.apk")>, <Job: Job(#56, "t13d301200_1d37bd780c83_d339722ba4af")>, <Job: Job(#54, "t13d301200_1d37bd780c83_550dd089df7a")>, <Job: Job(#58, "t13i181000_85036bcba153_d41ae481755e")>, <Job: Job(#55, "t13d1715h2_5b57614c22b0_c114573b7948")>, <Job: Job(#57, "t13d1516h2_8daaf6152771_02713d6af862")>, <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>]>, source='job', write_only=True)
pivots_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
visualizers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
playbook_requested = SlugRelatedField(read_only=True, slug_field='name')
playbook_to_execute = SlugRelatedField(read_only=True, slug_field='name')
investigation = SerializerMethodField(default=None, read_only=True)
permissions = SerializerMethodField()
analyzers_data_model = SerializerMethodField(read_only=True)
analyzer_reports = AnalyzerReportSerializer(many=True, read_only=True, source='analyzerreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
end_time = DateTimeField(required=False)
parameters = JSONField(decoder=None, encoder=None, read_only=True, style={'base_template': 'textarea.html'})
type = SerializerMethodField(method_name='get_type', read_only=True)
id = IntegerField(label='ID', read_only=True)
report = JSONField(decoder=None, encoder=None, required=False, style={'base_template': 'textarea.html'})
errors = ListField(child=CharField(label='Errors', max_length=512), required=False)
start_time = DateTimeField(required=False)
connector_reports = ConnectorReportSerializer(many=True, read_only=True, source='connectorreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
… <trimmed 8973 bytes string> |
/usr/local/lib/python3.11/site-packages/rest_framework/serializers.py, line 249, in data
'You should either call `.is_valid()` first, '
'or access `.initial_data` instead.'
)
raise AssertionError(msg)
if not hasattr(self, '_data'):
if self.instance is not None and not getattr(self, '_errors', None):
self._data = self.to_representation(self.instance)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …elif hasattr(self, '_validated_data') and not getattr(self, '_errors', None):
self._data = self.to_representation(self.validated_data)
else:
self._data = self.get_initial()
return self._data
| Variable | Value |
|---|---|
| self | RestJobSerializer(<Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>, context={'request': <rest_framework.request.Request: GET '/api/jobs/59'>, 'format': None, 'view': <api_app.views.JobViewSet object>}):
id = IntegerField(label='ID', read_only=True)
user = UserSerializer():
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
tags = TagSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
label = CharField(max_length=50, min_length=4, validators=[<UniqueValidator(queryset=Tag.objects.all())>])
color = CharField(max_length=7, validators=[<django.core.validators.RegexValidator object>])
comments = CommentSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
content = CharField(style={'base_template': 'textarea.html'})
created_at = DateTimeField(read_only=True)
user = UserSerializer(read_only=True):
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
job_id = PrimaryKeyRelatedField(queryset=<JobQuerySet [<Job: Job(#53, "facebook-lite-430-1-0-5-109.apk")>, <Job: Job(#56, "t13d301200_1d37bd780c83_d339722ba4af")>, <Job: Job(#54, "t13d301200_1d37bd780c83_550dd089df7a")>, <Job: Job(#58, "t13i181000_85036bcba153_d41ae481755e")>, <Job: Job(#55, "t13d1715h2_5b57614c22b0_c114573b7948")>, <Job: Job(#57, "t13d1516h2_8daaf6152771_02713d6af862")>, <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>]>, source='job', write_only=True)
pivots_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
visualizers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
playbook_requested = SlugRelatedField(read_only=True, slug_field='name')
playbook_to_execute = SlugRelatedField(read_only=True, slug_field='name')
investigation = SerializerMethodField(default=None, read_only=True)
permissions = SerializerMethodField()
analyzers_data_model = SerializerMethodField(read_only=True)
analyzer_reports = AnalyzerReportSerializer(many=True, read_only=True, source='analyzerreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
end_time = DateTimeField(required=False)
parameters = JSONField(decoder=None, encoder=None, read_only=True, style={'base_template': 'textarea.html'})
type = SerializerMethodField(method_name='get_type', read_only=True)
id = IntegerField(label='ID', read_only=True)
report = JSONField(decoder=None, encoder=None, required=False, style={'base_template': 'textarea.html'})
errors = ListField(child=CharField(label='Errors', max_length=512), required=False)
start_time = DateTimeField(required=False)
connector_reports = ConnectorReportSerializer(many=True, read_only=True, source='connectorreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
… <trimmed 8973 bytes string> |
/usr/local/lib/python3.11/site-packages/rest_framework/serializers.py, line 538, in to_representation
#
# For related fields with `use_pk_only_optimization` we need to
# resolve the pk value.
check_for_none = attribute.pk if isinstance(attribute, PKOnlyObject) else attribute
if check_for_none is None:
ret[field.field_name] = None
else:
ret[field.field_name] = field.to_representation(attribute)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …return ret
def validate(self, attrs):
return attrs
| Variable | Value |
|---|---|
| attribute | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
| check_for_none | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
| field | SerializerMethodField(read_only=True) |
| fields | <generator object Serializer._readable_fields at 0xffffa52d6a80> |
| instance | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
| ret | {'analyzers_requested': ['JA4_DB'],
'analyzers_to_execute': ['JA4_DB'],
'comments': [],
'connectors_requested': [],
'connectors_to_execute': [],
'id': 59,
'investigation': None,
'permissions': {'delete': True, 'kill': True, 'plugin_actions': True},
'pivots_to_execute': [],
'playbook_requested': None,
'playbook_to_execute': None,
'tags': [],
'user': {'username': 'admin'},
'visualizers_to_execute': []} |
| self | RestJobSerializer(<Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>, context={'request': <rest_framework.request.Request: GET '/api/jobs/59'>, 'format': None, 'view': <api_app.views.JobViewSet object>}):
id = IntegerField(label='ID', read_only=True)
user = UserSerializer():
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
tags = TagSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
label = CharField(max_length=50, min_length=4, validators=[<UniqueValidator(queryset=Tag.objects.all())>])
color = CharField(max_length=7, validators=[<django.core.validators.RegexValidator object>])
comments = CommentSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
content = CharField(style={'base_template': 'textarea.html'})
created_at = DateTimeField(read_only=True)
user = UserSerializer(read_only=True):
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
job_id = PrimaryKeyRelatedField(queryset=<JobQuerySet [<Job: Job(#53, "facebook-lite-430-1-0-5-109.apk")>, <Job: Job(#56, "t13d301200_1d37bd780c83_d339722ba4af")>, <Job: Job(#54, "t13d301200_1d37bd780c83_550dd089df7a")>, <Job: Job(#58, "t13i181000_85036bcba153_d41ae481755e")>, <Job: Job(#55, "t13d1715h2_5b57614c22b0_c114573b7948")>, <Job: Job(#57, "t13d1516h2_8daaf6152771_02713d6af862")>, <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>]>, source='job', write_only=True)
pivots_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
visualizers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
playbook_requested = SlugRelatedField(read_only=True, slug_field='name')
playbook_to_execute = SlugRelatedField(read_only=True, slug_field='name')
investigation = SerializerMethodField(default=None, read_only=True)
permissions = SerializerMethodField()
analyzers_data_model = SerializerMethodField(read_only=True)
analyzer_reports = AnalyzerReportSerializer(many=True, read_only=True, source='analyzerreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
end_time = DateTimeField(required=False)
parameters = JSONField(decoder=None, encoder=None, read_only=True, style={'base_template': 'textarea.html'})
type = SerializerMethodField(method_name='get_type', read_only=True)
id = IntegerField(label='ID', read_only=True)
report = JSONField(decoder=None, encoder=None, required=False, style={'base_template': 'textarea.html'})
errors = ListField(child=CharField(label='Errors', max_length=512), required=False)
start_time = DateTimeField(required=False)
connector_reports = ConnectorReportSerializer(many=True, read_only=True, source='connectorreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
… <trimmed 8973 bytes string> |
/usr/local/lib/python3.11/site-packages/rest_framework/fields.py, line 1870, in to_representation
if self.method_name is None:
self.method_name = 'get_{field_name}'.format(field_name=field_name)super().bind(field_name, parent)
def to_representation(self, value):
method = getattr(self.parent, self.method_name)
return method(value)
^^^^^^^^^^^^^ …class ModelField(Field):
"""
A generic field that can be used against an arbitrary model field.
| Variable | Value |
|---|---|
| method | <bound method JobSerializer.get_analyzers_data_model of RestJobSerializer(<Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>, context={'request': <rest_framework.request.Request: GET '/api/jobs/59'>, 'format': None, 'view': <api_app.views.JobViewSet object>}):
id = IntegerField(label='ID', read_only=True)
user = UserSerializer():
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
tags = TagSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
label = CharField(max_length=50, min_length=4, validators=[<UniqueValidator(queryset=Tag.objects.all())>])
color = CharField(max_length=7, validators=[<django.core.validators.RegexValidator object>])
comments = CommentSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
content = CharField(style={'base_template': 'textarea.html'})
created_at = DateTimeField(read_only=True)
user = UserSerializer(read_only=True):
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
job_id = PrimaryKeyRelatedField(queryset=<JobQuerySet [<Job: Job(#53, "facebook-lite-430-1-0-5-109.apk")>, <Job: Job(#56, "t13d301200_1d37bd780c83_d339722ba4af")>, <Job: Job(#54, "t13d301200_1d37bd780c83_550dd089df7a")>, <Job: Job(#58, "t13i181000_85036bcba153_d41ae481755e")>, <Job: Job(#55, "t13d1715h2_5b57614c22b0_c114573b7948")>, <Job: Job(#57, "t13d1516h2_8daaf6152771_02713d6af862")>, <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>]>, source='job', write_only=True)
pivots_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
visualizers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
playbook_requested = SlugRelatedField(read_only=True, slug_field='name')
playbook_to_execute = SlugRelatedField(read_only=True, slug_field='name')
investigation = SerializerMethodField(default=None, read_only=True)
permissions = SerializerMethodField()
analyzers_data_model = SerializerMethodField(read_only=True)
analyzer_reports = AnalyzerReportSerializer(many=True, read_only=True, source='analyzerreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
end_time = DateTimeField(required=False)
parameters = JSONField(decoder=None, encoder=None, read_only=True, style={'base_template': 'textarea.html'})
type = SerializerMethodField(method_name='get_type', read_only=True)
id = IntegerField(label='ID', read_only=True)
report = JSONField(decoder=None, encoder=None, required=False, style={'base_template': 'textarea.html'})
errors = ListField(child=CharField(label='Errors', max_length=512), required=False)
start_time = DateTimeField(required=False)
connector_reports = ConnectorReportSerializer(many=True, read_only=True, source='connectorreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'… <trimmed 9030 bytes string> |
| self | SerializerMethodField(read_only=True) |
| value | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
/opt/deploy/intel_owl/api_app/serializers/job.py, line 572, in get_analyzers_data_model
]:
self._declared_fields[f"{field}_reports"] = serializer( many=True, read_only=True, source=f"{field}reports")
return super().get_fields()
def get_analyzers_data_model(self, instance: Job):
return instance.analyzerreports.get_data_models(instance).serialize()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …class RestJobSerializer(JobSerializer):
def get_permissions(self, obj: Job) -> Dict[str, bool]:
request = self.context.get("request", None) view = self.context.get("view", None)| Variable | Value |
|---|---|
| instance | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
| self | RestJobSerializer(<Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>, context={'request': <rest_framework.request.Request: GET '/api/jobs/59'>, 'format': None, 'view': <api_app.views.JobViewSet object>}):
id = IntegerField(label='ID', read_only=True)
user = UserSerializer():
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
tags = TagSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
label = CharField(max_length=50, min_length=4, validators=[<UniqueValidator(queryset=Tag.objects.all())>])
color = CharField(max_length=7, validators=[<django.core.validators.RegexValidator object>])
comments = CommentSerializer(many=True, read_only=True):
id = IntegerField(label='ID', read_only=True)
content = CharField(style={'base_template': 'textarea.html'})
created_at = DateTimeField(read_only=True)
user = UserSerializer(read_only=True):
username = CharField(help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, validators=[<django.contrib.auth.validators.UnicodeUsernameValidator object>, <UniqueValidator(queryset=User.objects.all())>])
job_id = PrimaryKeyRelatedField(queryset=<JobQuerySet [<Job: Job(#53, "facebook-lite-430-1-0-5-109.apk")>, <Job: Job(#56, "t13d301200_1d37bd780c83_d339722ba4af")>, <Job: Job(#54, "t13d301200_1d37bd780c83_550dd089df7a")>, <Job: Job(#58, "t13i181000_85036bcba153_d41ae481755e")>, <Job: Job(#55, "t13d1715h2_5b57614c22b0_c114573b7948")>, <Job: Job(#57, "t13d1516h2_8daaf6152771_02713d6af862")>, <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>]>, source='job', write_only=True)
pivots_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
analyzers_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
connectors_requested = SlugRelatedField(many=True, read_only=True, slug_field='name')
visualizers_to_execute = SlugRelatedField(many=True, read_only=True, slug_field='name')
playbook_requested = SlugRelatedField(read_only=True, slug_field='name')
playbook_to_execute = SlugRelatedField(read_only=True, slug_field='name')
investigation = SerializerMethodField(default=None, read_only=True)
permissions = SerializerMethodField()
analyzers_data_model = SerializerMethodField(read_only=True)
analyzer_reports = AnalyzerReportSerializer(many=True, read_only=True, source='analyzerreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
end_time = DateTimeField(required=False)
parameters = JSONField(decoder=None, encoder=None, read_only=True, style={'base_template': 'textarea.html'})
type = SerializerMethodField(method_name='get_type', read_only=True)
id = IntegerField(label='ID', read_only=True)
report = JSONField(decoder=None, encoder=None, required=False, style={'base_template': 'textarea.html'})
errors = ListField(child=CharField(label='Errors', max_length=512), required=False)
start_time = DateTimeField(required=False)
connector_reports = ConnectorReportSerializer(many=True, read_only=True, source='connectorreports'):
name = SlugRelatedField(read_only=True, slug_field='name', source='config')
process_time = ReadOnlyField()
status = ChoiceField(choices=[('FAILED', 'Failed'), ('PENDING', 'Pending'), ('RUNNING', 'Running'), ('SUCCESS', 'Success'), ('KILLED', 'Killed')])
… <trimmed 8973 bytes string> |
/usr/local/lib/python3.11/site-packages/django/db/models/manager.py, line 87, in manager_method
return []
@classmethod
def _get_queryset_methods(cls, queryset_class):
def create_method(name, method):
@wraps(method)
def manager_method(self, *args, **kwargs):
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …return manager_method
new_methods = {}for name, method in inspect.getmembers(
queryset_class, predicate=inspect.isfunction
| Variable | Value |
|---|---|
| args | (<Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")>,) |
| kwargs | {} |
| name | 'get_data_models' |
| self | <django.db.models.fields.related_descriptors.create_reverse_many_to_one_manager.<locals>.RelatedManager object at 0xffffa5db7e90> |
/opt/deploy/intel_owl/api_app/analyzers_manager/queryset.py, line 19, in get_data_models
@classmethod
def _get_bi_serializer_class(cls) -> Type["AnalyzerReportBISerializer"]:
from api_app.analyzers_manager.serializers import AnalyzerReportBISerializer
return AnalyzerReportBISerializer
def get_data_models(self, job) -> QuerySet:
DataModel = self.model.get_data_model_class(job) # noqa
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ …return DataModel.objects.filter(
pk__in=self.values_list("data_model_object_id", flat=True))
| Variable | Value |
|---|---|
| job | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
| self | <AnalyzerReportQuerySet [<AnalyzerReport: AnalyzerReport(job:#59, JA4_DB)>]> |
/opt/deploy/intel_owl/api_app/analyzers_manager/models.py, line 76, in get_data_model_class
if job.observable_classification == ObservableTypes.IP.value:
return IPDataModel
if job.observable_classification in [
ObservableTypes.DOMAIN.value,
ObservableTypes.URL.value,
]:
return DomainDataModel
raise NotImplementedError(
^ … f"Unable to find data model for {job.observable_classification}")
@property
def data_model_class(self) -> Type[BaseDataModel]:
return self.get_data_model_class(self.job)
| Variable | Value |
|---|---|
| cls | <class 'api_app.analyzers_manager.models.AnalyzerReport'> |
| job | <Job: Job(#59, "t13d1517h2_8daaf6152771_b0da82dd1658")> |
admin
No GET data
No POST data
No FILES data
| Variable | Value |
|---|---|
| session | '349337bc-6579-4d9d-8d42-9ac70f62d5e2.iu3piUjMGZB7JCBJltZwfS6IzYA' |
| JSESSIONID.baf311e6 | 'node05xnb2ezdn5o215dwztkmxqmyf0.node0' |
| preferred_language | 'en' |
| screenResolution | '1470x956' |
| i_like_gitea | 'b633508d37943f42' |
| lang | 'en-US' |
| _gitlab_session | '1d5c7a909fad7bb2b1e453e23bded82d' |
| sidebar_collapsed | 'false' |
| event_filter | 'all' |
| JSESSIONID.9401d9fa | 'node0vlqhbravz2cul6thfqys328a4.node0' |
| csrftoken | '********************' |
| sessionid | '********************' |
| Variable | Value |
|---|---|
| AWS_ACCESS_KEY_ID | '********************' |
| AWS_IAM_ACCESS | 'False' |
| AWS_RDS_IAM_ROLE | 'False' |
| AWS_REGION | 'eu-central-1' |
| AWS_SECRETS | '********************' |
| AWS_SECRET_ACCESS_KEY | '********************' |
| AWS_SES | 'False' |
| AWS_SQS | 'False' |
| AWS_STORAGE_BUCKET_NAME | '' |
| AWS_USER_NUMBER | '' |
| BROKER_URL | 'redis://redis:6379/1' |
| CONTENT_LENGTH | '' |
| CONTENT_TYPE | 'text/plain' |
| CSRF_COOKIE | 'oNEyJpGOTOXm9o5ge17JaeyDgoklU3WH' |
| DB_HOST | 'postgres' |
| DB_NAME | 'intel_owl_db' |
| DB_PASSWORD | '********************' |
| DB_PORT | '5432' |
| DB_SSL | 'False' |
| DB_USER | 'user' |
| DEBUG | 'True' |
| DEFAULT_EMAIL | '' |
| DEFAULT_FROM_EMAIL | '' |
| DEFAULT_SLACK_CHANNEL | '' |
| DISABLE_LOGGING_TEST | 'False' |
| DJANGO_SECRET | '********************' |
| DJANGO_SETTINGS_MODULE | 'intel_owl.settings' |
| DJANGO_TEST_SERVER | 'True' |
| DJANGO_WATCHMAN_TIMEOUT | '60' |
| ELASTICSEARCH_BI_ENABLED | 'False' |
| ELASTICSEARCH_BI_HOST | '' |
| ELASTICSEARCH_BI_INDEX | 'intelowl-bi' |
| ELASTICSEARCH_DSL_ENABLED | 'False' |
| ELASTICSEARCH_DSL_HOST | '' |
| ELASTICSEARCH_DSL_NO_OF_REPLICAS | '0' |
| ELASTICSEARCH_DSL_NO_OF_SHARDS | '1' |
| EMAIL_HOST | '' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | '' |
| EMAIL_PORT | '' |
| EMAIL_USE_SSL | 'False' |
| EMAIL_USE_TLS | 'False' |
| FLOWER_PWD | 'flower' |
| FLOWER_USER | 'flower' |
| GATEWAY_INTERFACE | 'CGI/1.1' |
| GOOGLE_CLIENT_ID | '' |
| GOOGLE_CLIENT_SECRET | '********************' |
| GPG_KEY | '********************' |
| HOME | '/opt/deploy/intel_owl' |
| HOSTNAME | '803a3bd41d07' |
| HTTPS_ENABLED | 'not_enabled' |
| HTTP_ACCEPT | 'application/json, text/plain, */*' |
| HTTP_ACCEPT_ENCODING | 'gzip, deflate, br, zstd' |
| HTTP_ACCEPT_LANGUAGE | 'en-US,en;q=0.9' |
| HTTP_CONNECTION | 'close' |
| HTTP_COOKIE | '********************' |
| HTTP_DNT | '1' |
| HTTP_HOST | 'localhost' |
| HTTP_REFERER | 'http://localhost/jobs/59/raw/analyzer' |
| HTTP_SEC_CH_UA | '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"' |
| HTTP_SEC_CH_UA_MOBILE | '?0' |
| HTTP_SEC_CH_UA_PLATFORM | '"macOS"' |
| HTTP_SEC_FETCH_DEST | 'empty' |
| HTTP_SEC_FETCH_MODE | 'cors' |
| HTTP_SEC_FETCH_SITE | 'same-origin' |
| HTTP_USER_AGENT | ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, '
'like Gecko) Chrome/130.0.0.0 Safari/537.36') |
| HTTP_X_CSRFTOKEN | '********************' |
| HTTP_X_FORWARDED_FOR | '192.168.65.1' |
| HTTP_X_FORWARDED_PROTO | 'https' |
| HTTP_X_URL_SCHEME | 'http' |
| INTELOWL_WEB_CLIENT_DOMAIN | 'localhost' |
| LANG | 'C.UTF-8' |
| LDAP_ENABLED | 'False' |
| LOCAL_STORAGE | 'True' |
| LOG_PATH | '/var/log/intel_owl' |
| MOCK_CONNECTIONS | 'False' |
| OLDPWD | '/opt/deploy/intel_owl' |
| OLD_JOBS_RETENTION_DAYS | '14' |
| PATH | '/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' |
| PATH_INFO | '/api/jobs/59' |
| PERL_MM_USE_DEFAULT | '1' |
| PUBLIC_DEPLOYMENT | 'False' |
| PWD | '/opt/deploy/intel_owl' |
| PYTHONPATH | '/opt/deploy/intel_owl' |
| PYTHONUNBUFFERED | '1' |
| PYTHON_GET_PIP_SHA256 | '7cfd4bdc4d475ea971f1c0710a5953bcc704d171f83c797b9529d9974502fcc6' |
| PYTHON_GET_PIP_URL | 'https://github.com/pypa/get-pip/raw/049c52c665e8c5fd1751f942316e0a5c777d304f/public/get-pip.py' |
| PYTHON_PIP_VERSION | '23.2.1' |
| PYTHON_SETUPTOOLS_VERSION | '65.5.1' |
| PYTHON_VERSION | '3.11.7' |
| QUERY_STRING | '' |
| RADIUS_AUTH_ENABLED | 'False' |
| REACT_APP_INTELOWL_VERSION | 'v6.1.0' |
| REMOTE_ADDR | '172.18.0.8' |
| REMOTE_HOST | '' |
| REQUEST_METHOD | 'GET' |
| RUN_MAIN | 'true' |
| SCRIPT_NAME | '' |
| SERVER_NAME | '803a3bd41d07' |
| SERVER_PORT | '8001' |
| SERVER_PROTOCOL | 'HTTP/1.0' |
| SERVER_SOFTWARE | 'WSGIServer/0.2' |
| SHLVL | '1' |
| SLACK_TOKEN | '********************' |
| STAGE | 'production' |
| TEST_DOMAIN | 'www.google.com' |
| TEST_IP | '8.8.8.8' |
| TEST_MD5 | '446c5fbb11b9ce058450555c1c27153c' |
| TEST_URL | 'https://www.google.com/search?test' |
| TZ | 'UTC' |
| WEBSOCKETS_URL | 'redis://redis:6379/0' |
| _ | '/usr/local/bin/python' |
| watch_logs_cmd | 'watch -n1 tail -n10 /var/log/intel_owl/django/api_app.log' |
| wsgi.errors | <colorama.ansitowin32.StreamWrapper object at 0xffffaddf3d50> |
| wsgi.file_wrapper | <class 'wsgiref.util.FileWrapper'> |
| wsgi.input | <django.core.handlers.wsgi.LimitedStream object at 0xffffa4cf75b0> |
| wsgi.multiprocess | False |
| wsgi.multithread | True |
| wsgi.run_once | False |
| wsgi.url_scheme | 'http' |
| wsgi.version | (1, 0) |
intel_owl.settings| Setting | Value |
|---|---|
| ABSOLUTE_URL_OVERRIDES | {} |
| ADMINS | [] |
| ALLOWED_HOSTS | ['*'] |
| APPEND_SLASH | True |
| ASGI_APPLICATION | 'intel_owl.asgi.application' |
| AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
| AUTHLIB_OAUTH_CLIENTS | {} |
| AUTH_PASSWORD_VALIDATORS | '********************' |
| AUTH_USER_MODEL | 'certego_saas_user.User' |
| AWS_ACCESS_KEY_ID | '********************' |
| AWS_IAM_ACCESS | False |
| AWS_RDS_IAM_ROLE | False |
| AWS_REGION | 'eu-central-1' |
| AWS_SECRETS | '********************' |
| AWS_SECRET_ACCESS_KEY | '********************' |
| AWS_SES | False |
| AWS_SQS | False |
| BASE_ANALYZER_FILE_PYTHON_PATH | PosixPath('api_app.analyzers_manager.file_analyzers') |
| BASE_ANALYZER_OBSERVABLE_PYTHON_PATH | PosixPath('api_app.analyzers_manager.observable_analyzers') |
| BASE_DIR | PosixPath('/opt/deploy') |
| BASE_STATIC_PATH | PosixPath('/opt/deploy/intel_owl/static') |
| BLINT_REPORTS_PATH | PosixPath('/opt/deploy/files_required/blint') |
| BROADCAST_QUEUE | 'broadcast' |
| BROKER_URL | 'redis://redis:6379/1' |
| CACHES | {'default': {'BACKEND': 'intel_owl.settings.cache.DatabaseCacheExtended',
'KEY_FUNCTION': '********************',
'LOCATION': 'intelowl_cache'}} |
| CACHE_MIDDLEWARE_ALIAS | 'default' |
| CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
| CACHE_MIDDLEWARE_SECONDS | 600 |
| CELERY_QUEUES | ['default', 'config'] |
| CERTEGO_SAAS | {'HOST_NAME': 'IntelOwl',
'HOST_URI': 'http://localhost',
'ORGANIZATION_MAX_MEMBERS': 100,
'USER_ACCESS_SERIALIZER': 'authentication.serializers.UserAccessSerializer'} |
| CHANNEL_LAYERS | {'default': {'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {'hosts': ['redis://redis:6379/0']}}} |
| CONFIG_QUEUE | 'config' |
| CONFIG_ROOT | PosixPath('/opt/deploy/intel_owl/configuration') |
| CSRF_COOKIE_AGE | 31449600 |
| CSRF_COOKIE_DOMAIN | None |
| CSRF_COOKIE_HTTPONLY | False |
| CSRF_COOKIE_MASKED | False |
| CSRF_COOKIE_NAME | 'csrftoken' |
| CSRF_COOKIE_PATH | '/' |
| CSRF_COOKIE_SAMESITE | 'Strict' |
| CSRF_COOKIE_SECURE | False |
| CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
| CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
| CSRF_TRUSTED_ORIGINS | ['http://localhost'] |
| CSRF_USE_SESSIONS | False |
| DATABASES | {'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_HEALTH_CHECKS': True,
'CONN_MAX_AGE': 3600,
'ENGINE': 'django.db.backends.postgresql',
'HOST': 'postgres',
'NAME': 'intel_owl_db',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '5432',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIGRATE': True,
'MIRROR': None,
'NAME': None},
'TIMEOUT': 180,
'TIME_ZONE': None,
'USER': 'user'}} |
| DATABASE_ROUTERS | [] |
| DATA_UPLOAD_MAX_MEMORY_SIZE | 50000000 |
| DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
| DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
| DATETIME_FORMAT | 'N j, Y, P' |
| DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
| DATE_FORMAT | 'N j, Y' |
| DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
| DEBUG | True |
| DEBUG_PROPAGATE_EXCEPTIONS | False |
| DECIMAL_SEPARATOR | '.' |
| DEFAULT_AUTO_FIELD | 'django.db.models.BigAutoField' |
| DEFAULT_CHARSET | 'utf-8' |
| DEFAULT_EMAIL | '' |
| DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
| DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
| DEFAULT_FILE_STORAGE | 'intel_owl.settings.FileSystemStorageWrapper' |
| DEFAULT_FROM_EMAIL | '' |
| DEFAULT_INDEX_TABLESPACE | '' |
| DEFAULT_QUEUE | 'default' |
| DEFAULT_SLACK_CHANNEL | '' |
| DEFAULT_TABLESPACE | '' |
| DISABLE_LOGGING_TEST | False |
| DISALLOWED_USER_AGENTS | [] |
| DJANGO_LOG_DIRECTORY | PosixPath('/var/log/intel_owl/django') |
| DRF_RECAPTCHA_SECRET_KEY | '********************' |
| ELASTICSEARCH_BI_ENABLED | False |
| ELASTICSEARCH_DSL | {'default': {'hosts': ''}} |
| ELASTICSEARCH_DSL_AUTOSYNC | False |
| ELASTICSEARCH_DSL_ENABLED | False |
| EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
| EMAIL_HOST | '' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | '' |
| EMAIL_PORT | '' |
| EMAIL_SSL_CERTFILE | None |
| EMAIL_SSL_KEYFILE | '********************' |
| EMAIL_SUBJECT_PREFIX | '[Django] ' |
| EMAIL_TIMEOUT | None |
| EMAIL_USE_LOCALTIME | False |
| EMAIL_USE_SSL | False |
| EMAIL_USE_TLS | False |
| FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
| FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
| FILE_UPLOAD_MAX_MEMORY_SIZE | 50000000 |
| FILE_UPLOAD_PERMISSIONS | 420 |
| FILE_UPLOAD_TEMP_DIR | None |
| FIRST_DAY_OF_WEEK | 0 |
| FIXTURE_DIRS | [] |
| FORCE_SCHEDULE_JOBS | True |
| FORCE_SCRIPT_NAME | None |
| FORMAT_MODULE_PATH | None |
| FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
| GIT_KEY_PATH | '********************' |
| GIT_SSH_SCRIPT_PATH | PosixPath('/opt/deploy/intel_owl/api_app/analyzers_manager/ssh_gitpython.sh') |
| HOST_NAME | 'IntelOwl' |
| HOST_URI | 'http://localhost' |
| HTTPS_ENABLED | False |
| IGNORABLE_404_URLS | [] |
| INFO_OR_DEBUG_LEVEL | 'DEBUG' |
| INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.postgres', 'prettyjson', 'django_celery_results', 'django_elasticsearch_dsl', 'rest_framework', 'rest_framework_filters', 'rest_framework.authtoken', 'drf_spectacular', 'durin', 'certego_saas', 'certego_saas.apps.user', 'certego_saas.apps.notifications', 'certego_saas.apps.organization', 'authentication', 'api_app', 'api_app.analyzers_manager', 'api_app.connectors_manager', 'api_app.visualizers_manager', 'api_app.playbooks_manager', 'api_app.pivots_manager', 'api_app.ingestors_manager', 'api_app.investigations_manager', 'api_app.data_model_manager', 'rest_email_auth', 'silk', 'django_celery_beat', 'channels', 'treebeard'] |
| INTERNAL_IPS | [] |
| LANGUAGES | [('af', 'Afrikaans'),
('ar', 'Arabic'),
('ar-dz', 'Algerian Arabic'),
('ast', 'Asturian'),
('az', 'Azerbaijani'),
('bg', 'Bulgarian'),
('be', 'Belarusian'),
('bn', 'Bengali'),
('br', 'Breton'),
('bs', 'Bosnian'),
('ca', 'Catalan'),
('ckb', 'Central Kurdish (Sorani)'),
('cs', 'Czech'),
('cy', 'Welsh'),
('da', 'Danish'),
('de', 'German'),
('dsb', 'Lower Sorbian'),
('el', 'Greek'),
('en', 'English'),
('en-au', 'Australian English'),
('en-gb', 'British English'),
('eo', 'Esperanto'),
('es', 'Spanish'),
('es-ar', 'Argentinian Spanish'),
('es-co', 'Colombian Spanish'),
('es-mx', 'Mexican Spanish'),
('es-ni', 'Nicaraguan Spanish'),
('es-ve', 'Venezuelan Spanish'),
('et', 'Estonian'),
('eu', 'Basque'),
('fa', 'Persian'),
('fi', 'Finnish'),
('fr', 'French'),
('fy', 'Frisian'),
('ga', 'Irish'),
('gd', 'Scottish Gaelic'),
('gl', 'Galician'),
('he', 'Hebrew'),
('hi', 'Hindi'),
('hr', 'Croatian'),
('hsb', 'Upper Sorbian'),
('hu', 'Hungarian'),
('hy', 'Armenian'),
('ia', 'Interlingua'),
('id', 'Indonesian'),
('ig', 'Igbo'),
('io', 'Ido'),
('is', 'Icelandic'),
('it', 'Italian'),
('ja', 'Japanese'),
('ka', 'Georgian'),
('kab', 'Kabyle'),
('kk', 'Kazakh'),
('km', 'Khmer'),
('kn', 'Kannada'),
('ko', 'Korean'),
('ky', 'Kyrgyz'),
('lb', 'Luxembourgish'),
('lt', 'Lithuanian'),
('lv', 'Latvian'),
('mk', 'Macedonian'),
('ml', 'Malayalam'),
('mn', 'Mongolian'),
('mr', 'Marathi'),
('ms', 'Malay'),
('my', 'Burmese'),
('nb', 'Norwegian Bokmål'),
('ne', 'Nepali'),
('nl', 'Dutch'),
('nn', 'Norwegian Nynorsk'),
('os', 'Ossetic'),
('pa', 'Punjabi'),
('pl', 'Polish'),
('pt', 'Portuguese'),
('pt-br', 'Brazilian Portuguese'),
('ro', 'Romanian'),
('ru', 'Russian'),
('sk', 'Slovak'),
('sl', 'Slovenian'),
('sq', 'Albanian'),
('sr', 'Serbian'),
('sr-latn', 'Serbian Latin'),
('sv', 'Swedish'),
('sw', 'Swahili'),
('ta', 'Tamil'),
('te', 'Telugu'),
('tg', 'Tajik'),
('th', 'Thai'),
('tk', 'Turkmen'),
('tr', 'Turkish'),
('tt', 'Tatar'),
('udm', 'Udmurt'),
('uk', 'Ukrainian'),
('ur', 'Urdu'),
('uz', 'Uzbek'),
('vi', 'Vietnamese'),
('zh-hans', 'Simplified Chinese'),
('zh-hant', 'Traditional Chinese')] |
| LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur'] |
| LANGUAGE_CODE | 'en-us' |
| LANGUAGE_COOKIE_AGE | None |
| LANGUAGE_COOKIE_DOMAIN | None |
| LANGUAGE_COOKIE_HTTPONLY | False |
| LANGUAGE_COOKIE_NAME | 'django_language' |
| LANGUAGE_COOKIE_PATH | '/' |
| LANGUAGE_COOKIE_SAMESITE | None |
| LANGUAGE_COOKIE_SECURE | False |
| LDAP_ENABLED | False |
| LOCALE_PATHS | [] |
| LOCAL_STORAGE | True |
| LOGGING | {'disable_existing_loggers': False,
'formatters': {'stdfmt': {'format': '%(asctime)s - %(name)s - %(funcName)s - '
'%(levelname)s - %(message)s'}},
'handlers': {'api_app': '********************',
'api_app_error': '********************',
'authentication': {'backupCount': 6,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/intel_owl/django/authentication.log',
'formatter': 'stdfmt',
'level': 'DEBUG',
'maxBytes': 20971520},
'authentication_errors': {'backupCount': 6,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/intel_owl/django/authentication_errors.log',
'formatter': 'stdfmt',
'level': 'ERROR',
'maxBytes': 20971520},
'celery': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/celery.log',
'formatter': 'stdfmt',
'level': 'DEBUG'},
'celery_error': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/celery_errors.log',
'formatter': 'stdfmt',
'level': 'ERROR'},
'certego_saas': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/certego_saas.log',
'formatter': 'stdfmt',
'level': 'DEBUG'},
'certego_saas_errors': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/certego_saas_errors.log',
'formatter': 'stdfmt',
'level': 'ERROR'},
'django_auth_ldap': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/django_auth_ldap.log',
'formatter': 'stdfmt',
'level': 'DEBUG'},
'django_unhandled_errors': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/django_errors.log',
'formatter': 'stdfmt',
'level': 'ERROR'},
'intel_owl': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/intel_owl.log',
'formatter': 'stdfmt',
'level': 'DEBUG'},
'intel_owl_error': {'class': 'logging.handlers.WatchedFileHandler',
'filename': '/var/log/intel_owl/django/intel_owl_errors.log',
'formatter': 'stdfmt',
'level': 'ERROR'},
'rest_email_auth': {'backupCount': 6,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/intel_owl/django/authentication.log',
'formatter': 'stdfmt',
'level': 'DEBUG',
'maxBytes': 20971520},
'rest_email_auth_errors': {'backupCount': 6,
'class': 'logging.handlers.RotatingFileHandler',
'filename': '/var/log/intel_owl/django/authentication_errors.log',
'formatter': 'stdfmt',
'level': 'ERROR',
'maxBytes': 20971520}},
'loggers': {'api_app': '********************',
'authentication': {'handlers': ['authentication',
'authentication_errors'],
'level': 'DEBUG',
'propagate': True},
'celery': {'handlers': ['celery', 'celery_error'],
'level': 'DEBUG',
'propagate': True},
'certego_saas': {'handlers': ['certego_saas',
'certego_saas_errors'],
'level': 'DEBUG',
'propagate': True},
'django': {'handlers': ['django_unhandled_errors'],
'level': 'ERROR',
'propagate': True},
'django_auth_ldap': {'handlers': ['django_auth_ldap'],
'level': 'DEBUG',
'propagate': True},
'intel_owl': {'handlers': ['intel_owl', 'intel_owl_error'],
'level': 'DEBUG',
'propagate': True},
'intel_owl.tasks': {'handlers': ['celery', 'celery_error'],
'level': 'DEBUG',
'propagate': True},
'rest_email_auth': {'handlers': ['rest_email_auth',
'rest_email_auth_errors'],
'level': 'DEBUG',
'propagate': True}},
'version': 1} |
| LOGGING_CONFIG | 'logging.config.dictConfig' |
| LOGIN_REDIRECT_URL | '/accounts/profile/' |
| LOGIN_URL | '/accounts/login/' |
| LOGOUT_REDIRECT_URL | None |
| LOG_DIR | PosixPath('/var/log/intel_owl') |
| LOG_MSG_FORMAT | '%(asctime)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s' |
| MANAGERS | [] |
| MEDIA_ROOT | PosixPath('/opt/deploy/files_required') |
| MEDIA_URL | '/' |
| MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
| MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'certego_saas.ext.middlewares.StatsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'certego_saas.ext.middlewares.LogMiddleware', 'silk.middleware.SilkyMiddleware'] |
| MIGRATION_MODULES | {} |
| MOCK_CONNECTIONS | False |
| MONTH_DAY_FORMAT | 'F j' |
| NFS | False |
| NUMBER_GROUPING | 0 |
| PASSWORD_HASHERS | '********************' |
| PASSWORD_RESET_TIMEOUT | '********************' |
| PG_DB | 'intel_owl_db' |
| PG_ENGINE | 'django.db.backends.postgresql' |
| PG_HOST | 'postgres' |
| PG_PASSWORD | '********************' |
| PG_PORT | '5432' |
| PG_SSL | False |
| PG_USER | 'user' |
| PREPEND_WWW | False |
| PROJECT_LOCATION | PosixPath('/opt/deploy/intel_owl') |
| PUBLIC_DEPLOYMENT | False |
| RADIUS_AUTH_ENABLED | False |
| REPO_DOWNLOADER_ENABLED | True |
| REST_DURIN | {'API_ACCESS_CLIENT_NAME': '********************',
'API_ACCESS_CLIENT_TOKEN_TTL': '********************',
'API_ACCESS_EXCLUDE_FROM_SESSIONS': '********************',
'API_ACCESS_RESPONSE_INCLUDE_TOKEN': '********************',
'AUTH_HEADER_PREFIX': 'Token',
'DEFAULT_TOKEN_TTL': '********************',
'REFRESH_TOKEN_ON_LOGIN': '********************',
'TOKEN_CACHE_TIMEOUT': '********************',
'TOKEN_CHARACTER_LENGTH': '********************',
'USER_SERIALIZER': 'certego_saas.apps.user.serializers.UserSerializer'} |
| REST_EMAIL_AUTH | {'EMAIL_SUBJECT_DUPLICATE': 'IntelOwl - Registration Attempt',
'EMAIL_SUBJECT_VERIFICATION': 'IntelOwl - Please Verify Your Email Address',
'EMAIL_VERIFICATION_PASSWORD_REQUIRED': '********************',
'EMAIL_VERIFICATION_URL': 'http://localhost/verify-email?key={key}',
'PASSWORD_RESET_URL': '********************',
'PATH_TO_DUPLICATE_EMAIL_TEMPLATE': 'authentication/emails/duplicate-email',
'PATH_TO_RESET_EMAIL_TEMPLATE': 'authentication/emails/reset-password',
'PATH_TO_VERIFY_EMAIL_TEMPLATE': 'authentication/emails/verify-email',
'REGISTRATION_SERIALIZER': 'authentication.serializers.RegistrationSerializer'} |
| REST_FRAMEWORK | {'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework.authentication.TokenAuthentication',
'rest_framework.authentication.SessionAuthentication'],
'DEFAULT_FILTER_BACKENDS': ['rest_framework_filters.backends.RestFrameworkFilterBackend',
'rest_framework.filters.OrderingFilter'],
'DEFAULT_PAGINATION_CLASS': 'certego_saas.ext.pagination.CustomPageNumberPagination',
'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated'],
'DEFAULT_RENDERER_CLASSES': ['rest_framework.renderers.JSONRenderer'],
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
'EXCEPTION_HANDLER': 'api_app.exceptions.logging_exception_handler',
'PAGE_SIZE': 10} |
| RESULT_BACKEND | 'django-db' |
| ROOT_URLCONF | 'intel_owl.urls' |
| SECRET_KEY | '********************' |
| SECRET_KEY_FALLBACKS | '********************' |
| SECURE_CONTENT_TYPE_NOSNIFF | True |
| SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
| SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
| SECURE_HSTS_PRELOAD | False |
| SECURE_HSTS_SECONDS | 0 |
| SECURE_PROXY_SSL_HEADER | None |
| SECURE_REDIRECT_EXEMPT | [] |
| SECURE_REFERRER_POLICY | 'same-origin' |
| SECURE_SSL_HOST | None |
| SECURE_SSL_REDIRECT | False |
| SERVER_EMAIL | 'root@localhost' |
| SESSION_CACHE_ALIAS | 'default' |
| SESSION_COOKIE_AGE | 1209600 |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'sessionid' |
| SESSION_COOKIE_PATH | '/' |
| SESSION_COOKIE_SAMESITE | 'Lax' |
| SESSION_COOKIE_SECURE | False |
| SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
| SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
| SESSION_FILE_PATH | None |
| SESSION_SAVE_EVERY_REQUEST | False |
| SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
| SETTINGS_MODULE | 'intel_owl.settings' |
| SHORT_DATETIME_FORMAT | 'm/d/Y P' |
| SHORT_DATE_FORMAT | 'm/d/Y' |
| SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
| SILENCED_SYSTEM_CHECKS | [] |
| SLACK_TOKEN | '********************' |
| SPECTACULAR_SETTINGS | {'TITLE': 'IntelOwl API specification', 'VERSION': '6.1.0'} |
| STAGE | 'production' |
| STAGE_CI | False |
| STAGE_LOCAL | False |
| STAGE_PRODUCTION | True |
| STAGE_STAGING | False |
| STATICFILES_DIRS | [('reactapp', '/var/www/reactapp')] |
| STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
| STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
| STATIC_ROOT | '/opt/deploy/intel_owl/static' |
| STATIC_URL | '/static/' |
| STORAGES | {'default': {'BACKEND': 'intel_owl.settings.FileSystemStorageWrapper'},
'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
| TEMPLATES | [{'APP_DIRS': True,
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/opt/deploy/intel_owl/static/reactapp'],
'OPTIONS': {'context_processors': ['certego_saas.templates.context_processors.host',
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages']}}] |
| TEST_NON_SERIALIZED_APPS | [] |
| TEST_RUNNER | 'intel_owl.test_runner.MyTestRunner' |
| THOUSAND_SEPARATOR | ',' |
| TIME_FORMAT | 'P' |
| TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
| TIME_ZONE | 'UTC' |
| USE_DEPRECATED_PYTZ | False |
| USE_I18N | True |
| USE_L10N | True |
| USE_THOUSAND_SEPARATOR | False |
| USE_TZ | True |
| USE_X_FORWARDED_HOST | False |
| USE_X_FORWARDED_PORT | False |
| VERSION | '6.1.0' |
| WEB_CLIENT_DOMAIN | 'localhost' |
| WEB_CLIENT_URL | 'http://localhost' |
| WSGI_APPLICATION | 'intel_owl.wsgi.application' |
| X_FRAME_OPTIONS | 'DENY' |
| YARA_RULES_PATH | PosixPath('/opt/deploy/files_required/yara') |
| YEAR_MONTH_FORMAT | 'F Y' |
You’re seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard page generated by the handler for this status code.