* refactor(chalice): upgraded dependencies
* refactor(chalice): upgraded dependencies
feat(chalice): support heatmaps
* fix(chalice): fixed Math-operators validation
refactor(chalice): search for sessions that have events for heatmaps
* refactor(chalice): search for sessions that have at least 1 location event for heatmaps
* refactor(chalice): upgraded dependencies
* refactor(chalice): upgraded dependencies
feat(chalice): support heatmaps
* fix(chalice): fixed Math-operators validation
refactor(chalice): search for sessions that have events for heatmaps
* refactor(chalice): search for sessions that have at least 1 location event for heatmaps
* refactor(chalice): upgraded dependencies
refactor(crons): upgraded dependencies
refactor(alerts): upgraded dependencies
* feat(chalice): get top 10 values for autocomplete CH
* refactor(chalice): cleaned code
refactor(chalice): upgraded dependencies
refactor(alerts): upgraded dependencies
refactor(crons): upgraded dependencies
* feat(chalice): autocomplete return top 10 with stats
* fix(chalice): fixed autocomplete top 10 meta-filters
* refactor(chalice): refactored heath-check package
refactor(chalice): enhanced scope caching
dev(chalice): reduced Spot JWT TTL for testing purposes
* [Backend] Canvas support (#1705)
* feat(http): added new parameters to start response and new endpoint for canvas screenshorts
* fix(http): added new topic to dockerfile
* feat(http): try different multipart parser
* feat(image-storage): reused the same workflow for canvas topic handler
* feat(video-storage): new canvas parser and ffmpeg script
* feat(video-storage): use correct replay name for canvas
* feat(backend): added new message (CanvasNode)
* feat(backend): add canvas record events to db
* Async chalice.core.tenants:tenants_exists, and propagate
* rework after review
* chore(api): asyncify `/projects` and propagate.
Impact on the following routes:
/projects
/v1/projects
/passowrd/reset
/metadata/session_search
* fix(api): there is no cnx.mogrify method.
In psycopg v3, the mogrify method is only available on cursor objects.
In other words, just use cnx.execute(query, kwargs), except when
opening an "explicit cursor session".
ref: https://www.psycopg.org/psycopg3/docs/api/cursors.html#psycopg.ClientCursor.mogrify
---------
Co-authored-by: Alexander <zavorotynskiy@pm.me>
* Async chalice.core.tenants:tenants_exists, and propagate
* rework after review
* typofix
* fix(chalice): small fixes
* fix(api): use a global variable to store singletong...
... that will not work if several POSIX threads are serving
from the same POSIX processus.
* fix(api): pass database argument as dictionary.
ref: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING
* chore(api): ease debugging with simple return statement.
* NOTES++
---------
Co-authored-by: Taha Yassine Kraiem <tahayk2@gmail.com>