e-m-b-a / embark

EMBArk - The firmware security scanning environment
https://www.securefirmware.de
MIT License
313 stars 46 forks source link

Feature/log viewer #158

Closed 0x6368 closed 11 months ago

0x6368 commented 11 months ago

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...) Feature

What is the current behavior? (You can also link to an open issue here) Opening the logs, downloads the whole log file (even if it it multiple megabytes in size)

What is the new behavior (if this is a feature change)? If possible add a screenshot. Opening the logs opens a log viewer, that only loads the last lines of the logs. You can scroll through the logs by using the arrow keys or pgup/pgdown keys image

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?) A little bit? The option to download logs has moved to the log viewer instead of the report overview. The report overview will only link to the new log viewer

Other information:

0x6368 commented 11 months ago

I'll fix the linter issues in the coming days

0x6368 commented 11 months ago

I tried installing watchdog, but somehow it cannot lock the pipfile:

ubuntu@ubuntu-virtual-machine:~/embark$ pipenv install watchdog
Loading .env environment variables...
Installing watchdog...
Resolving watchdog...
Added watchdog to Pipfile's [packages] ...
✔ Installation Succeeded
Pipfile.lock (8a1083) out of date, updating to (78152a)...
Locking [packages] dependencies...
Building requirements...
Resolving dependencies...
✘ Locking Failed!
⠼ Locking...False
ERROR:pip.subprocessor:[present-rich] Getting requirements to build wheel exited with 1
[ResolutionFailure]:   File "/usr/local/lib/python3.10/dist-packages/pipenv/resolver.py", line 645, in _main
[ResolutionFailure]:       resolve_packages(
[ResolutionFailure]:   File "/usr/local/lib/python3.10/dist-packages/pipenv/resolver.py", line 612, in resolve_packages
[ResolutionFailure]:       results, resolver = resolve(
[ResolutionFailure]:   File "/usr/local/lib/python3.10/dist-packages/pipenv/resolver.py", line 592, in resolve
[ResolutionFailure]:       return resolve_deps(
[ResolutionFailure]:   File "/usr/local/lib/python3.10/dist-packages/pipenv/utils/resolver.py", line 897, in resolve_deps
[ResolutionFailure]:       results, hashes, internal_resolver = actually_resolve_deps(
[ResolutionFailure]:   File "/usr/local/lib/python3.10/dist-packages/pipenv/utils/resolver.py", line 670, in actually_resolve_deps
[ResolutionFailure]:       resolver.resolve()
[ResolutionFailure]:   File "/usr/local/lib/python3.10/dist-packages/pipenv/utils/resolver.py", line 447, in resolve
[ResolutionFailure]:       raise ResolutionFailure(message=str(e))
[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies.
  You can use $ pipenv run pip install <requirement_name> to bypass this mechanism, then run $ pipenv graph to inspect the versions actually installed in the virtualenv.
  Hint: try $ pipenv lock --pre if it is a pre-release dependency.
ERROR: Getting requirements to build wheel exited with 1
BenediktMKuehne commented 11 months ago

Oh that's always fun when that happens.😬

One of the packages has a dependency conflict with your new one. Quite possibly the wsgi. You could try forcing a newer version for the dependency

0x6368 commented 11 months ago

Looks like this was an issue with mysqlclient. This helped my install watchdog: https://forum.codewithmosh.com/t/pipenv-install-mysql-client/20899/4

In my case, I had to change the environment variables a little:

export MYSQLCLIENT_LDFLAGS='-L/usr/mysql/lib -lmysqlclient -lssl -lcrypto -lresolv'
export MYSQLCLIENT_CFLAGS='-I/usr/include/mysql/'
BenediktMKuehne commented 11 months ago

will be testing the changes now

BenediktMKuehne commented 11 months ago

Result is looking great 👍 (sorry it took so long, I forgot to send/finalize the review)

BenediktMKuehne commented 11 months ago

Nice work!