fix: update auth logs filtering to use metadata keys.

This commit is contained in:
TzeYiing committed 2023-05-09 17:05:31 +09:00
1 parent 24ef3577cb
commit 28291336e3
2 files changed
+21 -14

No files matched your search

@@ -278,19 +278,19 @@ export const SQL_FILTER_TEMPLATES: any = {
},
auth_logs: {
..._SQL_FILTER_COMMON,
'severity.error': `REGEXP_CONTAINS(event_message, "level.{3}error|level.{3}fatal")`,
'severity.warning': `REGEXP_CONTAINS(event_message, "level.{3}warning")`,
'severity.info': `REGEXP_CONTAINS(event_message, "level.{3}info")`,
'status_code.server_error': `REGEXP_CONTAINS(event_message, "status.{3}5[0-9]{2}")`,
'status_code.client_error': `REGEXP_CONTAINS(event_message, "status.{3}4[0-9]{2}")`,
'status_code.redirection': `REGEXP_CONTAINS(event_message, "status.{3}3[0-9]{2}")`,
'status_code.success': `REGEXP_CONTAINS(event_message, "status.{3}2[0-9]{2}")`,
'endpoints.admin': `REGEXP_CONTAINS(event_message, "path.{3}/admin")`,
'endpoints.signup': `REGEXP_CONTAINS(event_message, "path.{3}/signup|path.{3}/invite|path.{3}/verify")`,
'endpoints.authentication': `REGEXP_CONTAINS(event_message, "path.{3}/token|path.{3}/authorize|path.{3}/callback|path.{3}/otp|path.{3}/magiclink")`,
'endpoints.recover': `REGEXP_CONTAINS(event_message, "path.{3}/recover")`,
'endpoints.user': `REGEXP_CONTAINS(event_message, "path.{3}/user")`,
'endpoints.logout': `REGEXP_CONTAINS(event_message, "path.{3}/logout")`,
'severity.error': `metadata.level = 'error' or metadata.level = 'fatal'`,
'severity.warning': `metadata.level = 'warning'`,
'severity.info': `metadata.level = 'info'`,
'status_code.server_error': `metadata.status between 500 and 599`,
'status_code.client_error': `metadata.status between 400 and 499`,
'status_code.redirection': `metadata.status between 300 and 399`,
'status_code.success': `metadata.status between 200 and 299`,
'endpoints.admin': `REGEXP_CONTAINS(metadata.path, "/admin")`,
'endpoints.signup': `REGEXP_CONTAINS(metadata.path, "/signup|/invite|/verify")`,
'endpoints.authentication': `REGEXP_CONTAINS(metadata.path, "/token|/authorize|/callback|/otp|/magiclink")`,
'endpoints.recover': `REGEXP_CONTAINS(metadata.path, "/recover")`,
'endpoints.user': `REGEXP_CONTAINS(metadata.path, "/user")`,
'endpoints.logout': `REGEXP_CONTAINS(metadata.path, "/logout")`,
},
realtime_logs: {
..._SQL_FILTER_COMMON,
@@ -65,7 +65,7 @@ const getDotKeys = (obj: { [k: string]: unknown }, parent?: string): string[] =>
*
* @returns a where statement with WHERE clause.
*/
const _genWhereStatement = (table: LogsTableName, filters: Filters) => {
export const _genWhereStatement = (table: LogsTableName, filters: Filters) => {
const keys = Object.keys(filters)
const filterTemplates = SQL_FILTER_TEMPLATES[table]
const _resolveTemplateToStatement = (dotKey: string): string | null => {
@@ -150,6 +150,13 @@ export const genDefaultQuery = (table: LogsTableName, filters: Filters) => {
limit 100
`
case 'auth_logs':
return `select id, ${table}.timestamp, event_message from ${table}
cross join unnest(metadata) as metadata
${where}
limit 100
`
case 'function_edge_logs':
return `select id, ${table}.timestamp, event_message, response.status_code, request.method, m.function_id, m.execution_time_ms, m.deployment_id, m.version from ${table}
cross join unnest(metadata) as m