Implement new search_metrics function in custom_metrics.py to allow
filtering and sorting of metrics. Add corresponding endpoint in the
metrics router and supporting schema classes in schemas.py. The new
implementation provides pagination, filtering, and sorting capabilities
for metrics.
* 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
* 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
* feat(chalice): autocomplete return top 10 with stats
* fix(chalice): fixed autocomplete top 10 meta-filters
* refactor(chalice): removed sessions insights
refactor(DB): removed sessions insights
* refactor(chalice): upgraded dependencies
refactor(crons): upgraded dependencies
refactor(alerts): upgraded dependencies
feat(chalice): moved CH to FOSS
feat(chalice): use clickhouse-connect
feat(chalice): use CH connexion pool
feat(scripts): defined ch-data-port
* 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
* 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
* feat(chalice): autocomplete return top 10 with stats
* fix(chalice): fixed autocomplete top 10 meta-filters
* fix(chalice): fixed multiple issues
* 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
* 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
* feat(chalice): autocomplete return top 10 with stats
* fix(chalice): fixed autocomplete top 10 meta-filters
* refactor(DB): changed the list of integration providers
* refactor(chalice): enable exp funnels by default
* refactor(chalice): removed issues list of pathAnalysis card
* refactor(chalice): removed unused code
* 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
* 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
* feat(chalice): autocomplete return top 10 with stats
* fix(chalice): fixed autocomplete top 10 meta-filters
* refactor(chalice): refactored sessions search exp
refactor(chalice): support funnels exp
* 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
* 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
* feat(chalice): autocomplete return top 10 with stats
* fix(chalice): fixed autocomplete top 10 meta-filters
* refactor(chalice): removed unused code&endpoints
* refactor(chalice): upgraded dependencies
refactor(alerts): upgraded dependencies
refactor(crons): upgraded dependencies
* refactor(chalice): support userState filter for assist
* refactor(chalice): removed unused code
* 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
* 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
* feat(chalice): cache autocomplete-top-10 responses
feat(DB): support Spot login
* fix(chalice): fixed Spot new refresh token
* 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 and cleaned Spot code
refactor(chalice): refactored and cleaned login code
* 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
* fix(chalice): fixed multi-cookies set
regression(chalice): removed sessionId to str wrapper
* 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): upgraded dependencies
refactor(chalice): merged spot-login logic with regular-login
* 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
* feat(chalice): spot login/logout/refresh
* feat(chalice): spot only allow authorized endpoints
feat(chalice): spot get Slack channels
* fix(chalice): fixed sport refresh path
* 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
* feat(chalice): spot login/logout/refresh
* feat(chalice): spot only allow authorized endpoints
feat(chalice): spot get Slack channels
* 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
* feat(chalice): spot login/logout/refresh
feat(DB): support spot login/refresh
* [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>