* feat(API): PRWLR-4368 remove TenantMiddleware in favour of transaction based setup
* feat(API): PRWLR-4368 override initial request method to perform atomic transactions on RLS viewsets
* chore(Celery): add basic Celery worker with broker only
* chore(Celery): saving progress. Not able to schedule tasks
* fix(Celery): add celery app for use by django
* fix(Celery): register tasks
* fix(Docker): add celery workers to docker-compose
* chore(Celery): add django-celery-results backend
to store results using Django ORM
* fix(Celery): get app config the correct way
* fix(Docker): start connecting docker Celery workers to Valkey
not yet operational
* fix(Celery): get celery & django to work in docker-compose
* docs(Celery): document how to run Celery in development environment
includes changes to support the configuration and deployment
of Celery worker and its dependencies, Valkey and Postgres.
* fix(GHA): add valkey to CI services
* fix(GHA): add valkey to CI services
* fix(GHA): add valkey-cli ping to CI services
* fix(GHA): use right port for valkey
* fix(Views): remove debug task code
* test(Celery): start adding celery task tests
not yet working!
* fix(pyproject): rollback django upgrade
* fix(docker): updated docker runtime and env vars
based on feedback from #20
* fix(Dockerfile): include dependencies for psutil
psutil was introduced by pytest-celery
* fix(Backend): PRWLR-4013 fix celery settings structure
* fix(Celery): update celery app to work with new settings structure
* fix(Views): remove debug task code
* fix(Config): remove debug code
* fix(Celery): update celery app name when running worker
---------
Co-authored-by: Víctor Fernández Poyatos <victor@prowler.com>
* feat(Backend): PRWLR-3989 add RLS to postgresql db and base models
* feat(API): PRWLR-3989 add TenantMiddleware
* chore(API, Backend): PRWLR-3989 create new db user without RLS bypass on migrations
* chore(Backend): PRWLR-3989 fix RLS bypasser for POST requests
* fix(Backend): PRWLR-3989 fix user permissions when migrating new models
* chore(Backend): PRWLR-3989 add testing view for RLS manual tests
* feat(API): PRWLR-3989 add tenant_id to API logging
* chore(API, Backend): PRWLR-3989 add TODOs
* test(API): PRWLR-3989 add new middleware unit tests
* chore(API): PRWLR-3989 refactor RLS code
* fix(tests): PRWLR-3989 fix testing db connector
* chore: PRWLR-3989 add references to JIRA tickets
* fix: PRWLR-3989 remove bypass logic and fix serializers
* fix: PRWLR-3989 improve drop SQL query for RLS models
* feat(Backend): PRWLR-3989 add specific permissions on each model
* fix(Backend): PRWLR-3989 fix database routing and grant select perms
* fix(test): PRWLR-3989 fix routing issues with unit tests
* chore: PRWLR-3989 remove references to JIRA tickets
* chore(Backend): PRWLR-3989 adjust privileges for user on table tenant
* chore: PRWLR-3989 add comments on migrations
* chore(CI): import pre-commit-config.yaml from prowler-cloud/prowler
* chore(CI): import pre-commit-config.yaml from prowler-cloud/prowler
* chore(CI): add safety package to pre-commit
* chore(CI): use poetry run to access venv for local checks
* docs(repo): add community focused docs
* chore(GitHub): add ISSUE_TEMPLATEs
same as prowler-cloud/prowler repo
* chore(CI): add pull-request.yml workflow
runs on PRs and pushes to main
* chore(CI): add additional workflows
same as those on prowler-cloud/prowler
* fix(CI): use correct path
* fix(API): fix flake8 F401 failures
* fix(API, Backend): format with black
* fix( Backend): format with black
* fix(CI): use correct path
* fix(CI): move pyproject.toml
* fix(CI): simplify tools with ruff
* fix(CI): use ruff instead of flake8, black
* fix(CI): change ruff commands for GHA
* fix(CI): use correct ruff command name
* fix(Backend): ruff format
* fix(CI): ignore safety jinja2 vuln id 70612
and add mypy for future usage
* fix(CI): set file path for hadolint
* fix(CI): add dockle
* fix(CI): update dockle version
* fix(CI): fix hadolint errors
* fix(CI): add simple tests for CI
* fix(Docker): multi-stage docker build
* docs(README): update docs for poetry location