mirror of
https://github.com/fawney19/Aether.git
synced 2026-10-07 01:47:47 +08:00
Add dashboard and overview analytics, health monitoring, provider expense tracking, and announcement updates across the gateway and frontend. Keep schema migrations free of historical backfills while preserving automatic backfill execution. Bound migration deadlines, run schema preparation before Compose replacement, and anonymize deleted dashboard users. Include the current documentation cleanup and regression coverage.
188 lines
4.0 KiB
TOML
188 lines
4.0 KiB
TOML
# Future-only dashboard aggregates. Trigger functions and activation data live in
|
|
# migration 20260919000000_add_future_dashboard_summary.sql; no history is backfilled.
|
|
|
|
[table.dashboard_activity_hour]
|
|
domain = "stats"
|
|
primary_key = ["bucket_start", "shard"]
|
|
|
|
[[table.dashboard_activity_hour.columns]]
|
|
name = "bucket_start"
|
|
type = "timestamp"
|
|
|
|
[[table.dashboard_activity_hour.columns]]
|
|
name = "shard"
|
|
type = "int32"
|
|
driver.postgres.type = "smallint"
|
|
|
|
[[table.dashboard_activity_hour.columns]]
|
|
name = "request_count"
|
|
type = "int64"
|
|
|
|
[table.dashboard_stats_state]
|
|
domain = "stats"
|
|
primary_key = ["singleton"]
|
|
|
|
[[table.dashboard_stats_state.columns]]
|
|
name = "singleton"
|
|
type = "bool"
|
|
default = true
|
|
|
|
[[table.dashboard_stats_state.columns]]
|
|
name = "stats_since"
|
|
type = "timestamp"
|
|
|
|
[[table.dashboard_stats_state.columns]]
|
|
name = "contributions_cleanup_cursor"
|
|
type = "text"
|
|
length = 100
|
|
nullable = true
|
|
|
|
[table.dashboard_activity_minute]
|
|
domain = "stats"
|
|
primary_key = ["bucket_start", "shard"]
|
|
|
|
[[table.dashboard_activity_minute.columns]]
|
|
name = "bucket_start"
|
|
type = "timestamp"
|
|
|
|
[[table.dashboard_activity_minute.columns]]
|
|
name = "shard"
|
|
type = "int32"
|
|
driver.postgres.type = "smallint"
|
|
|
|
[[table.dashboard_activity_minute.columns]]
|
|
name = "request_count"
|
|
type = "int64"
|
|
|
|
[table.dashboard_request_contributions]
|
|
domain = "stats"
|
|
primary_key = ["request_id"]
|
|
|
|
[[table.dashboard_request_contributions.columns]]
|
|
name = "request_id"
|
|
type = "text"
|
|
length = 100
|
|
|
|
[[table.dashboard_request_contributions.columns]]
|
|
name = "created_at"
|
|
type = "timestamp"
|
|
|
|
[[table.dashboard_request_contributions.columns]]
|
|
name = "actor_user_id"
|
|
type = "text"
|
|
nullable = true
|
|
length = 255
|
|
|
|
[[table.dashboard_request_contributions.columns]]
|
|
name = "metrics"
|
|
type = "json"
|
|
|
|
[table.dashboard_stats_total]
|
|
domain = "stats"
|
|
primary_key = ["shard"]
|
|
|
|
[[table.dashboard_stats_total.columns]]
|
|
name = "shard"
|
|
type = "int32"
|
|
driver.postgres.type = "smallint"
|
|
|
|
[[table.dashboard_stats_total.columns]]
|
|
name = "metrics"
|
|
type = "json"
|
|
default = { raw = "'{}'::jsonb" }
|
|
|
|
[table.dashboard_stats_minute]
|
|
domain = "stats"
|
|
primary_key = ["bucket_start","shard"]
|
|
|
|
[[table.dashboard_stats_minute.columns]]
|
|
name = "bucket_start"
|
|
type = "timestamp"
|
|
|
|
[[table.dashboard_stats_minute.columns]]
|
|
name = "shard"
|
|
type = "int32"
|
|
driver.postgres.type = "smallint"
|
|
|
|
[[table.dashboard_stats_minute.columns]]
|
|
name = "metrics"
|
|
type = "json"
|
|
default = { raw = "'{}'::jsonb" }
|
|
|
|
[table.dashboard_actor_minute]
|
|
domain = "stats"
|
|
primary_key = ["bucket_start","shard","actor_user_id"]
|
|
|
|
[[table.dashboard_actor_minute.columns]]
|
|
name = "bucket_start"
|
|
type = "timestamp"
|
|
|
|
[[table.dashboard_actor_minute.columns]]
|
|
name = "shard"
|
|
type = "int32"
|
|
driver.postgres.type = "smallint"
|
|
|
|
[[table.dashboard_actor_minute.columns]]
|
|
name = "actor_user_id"
|
|
type = "text"
|
|
length = 255
|
|
|
|
[[table.dashboard_actor_minute.columns]]
|
|
name = "request_count"
|
|
type = "int64"
|
|
|
|
[table.dashboard_stats_pending]
|
|
domain = "stats"
|
|
primary_key = ["transaction_id","request_id"]
|
|
|
|
[[table.dashboard_stats_pending.columns]]
|
|
name = "transaction_id"
|
|
type = "int64"
|
|
|
|
[[table.dashboard_stats_pending.columns]]
|
|
name = "request_id"
|
|
type = "text"
|
|
length = 100
|
|
|
|
[[table.dashboard_stats_pending.columns]]
|
|
name = "deleted_fact"
|
|
type = "json"
|
|
nullable = true
|
|
|
|
[table.dashboard_user_events_minute]
|
|
domain = "stats"
|
|
primary_key = ["bucket_start","shard"]
|
|
|
|
[[table.dashboard_user_events_minute.columns]]
|
|
name = "bucket_start"
|
|
type = "timestamp"
|
|
|
|
[[table.dashboard_user_events_minute.columns]]
|
|
name = "shard"
|
|
type = "int32"
|
|
driver.postgres.type = "smallint"
|
|
|
|
[[table.dashboard_user_events_minute.columns]]
|
|
name = "created_count"
|
|
type = "int64"
|
|
default = 0
|
|
|
|
[[table.dashboard_user_events_minute.columns]]
|
|
name = "deleted_count"
|
|
type = "int64"
|
|
default = 0
|
|
|
|
# Transaction-local events only; no committed rows are exported or restored.
|
|
[table.dashboard_user_anonymization_pending]
|
|
domain = "stats"
|
|
primary_key = ["transaction_id", "user_id"]
|
|
|
|
[[table.dashboard_user_anonymization_pending.columns]]
|
|
name = "transaction_id"
|
|
type = "int64"
|
|
|
|
[[table.dashboard_user_anonymization_pending.columns]]
|
|
name = "user_id"
|
|
type = "text"
|
|
length = 255
|