gitextract_musv60dn/ ├── .credo.exs ├── .dockerignore ├── .formatter.exs ├── .github/ │ ├── actionlint.yaml │ └── workflows/ │ ├── beacon_tests.yml │ ├── docker-build.yml │ ├── integration_tests.yml │ ├── lint.yml │ ├── manual_prod_build.yml │ ├── mirror.yml │ ├── prod_build.yml │ ├── prod_linter.yml │ ├── tests.yml │ └── update-supabase-js.yml ├── .gitignore ├── .releaserc ├── .sobelow-conf ├── .tool-versions ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── assets/ │ ├── css/ │ │ ├── app.css │ │ └── phoenix.css │ ├── js/ │ │ └── app.js │ ├── package.json │ ├── tailwind.config.js │ └── vendor/ │ └── topbar.js ├── beacon/ │ ├── .formatter.exs │ ├── .gitignore │ ├── README.md │ ├── config/ │ │ └── config.exs │ ├── lib/ │ │ ├── beacon/ │ │ │ ├── adapter/ │ │ │ │ └── erl_dist.ex │ │ │ ├── adapter.ex │ │ │ ├── partition.ex │ │ │ ├── scope.ex │ │ │ └── supervisor.ex │ │ └── beacon.ex │ ├── mix.exs │ └── test/ │ ├── beacon/ │ │ └── partition_test.exs │ ├── beacon_test.exs │ ├── support/ │ │ └── peer.ex │ └── test_helper.exs ├── bench/ │ ├── gen_counter.exs │ └── secrets.exs ├── config/ │ ├── config.exs │ ├── dev.exs │ ├── prod.exs │ ├── runtime.exs │ └── test.exs ├── coveralls.json ├── deploy/ │ └── fly/ │ ├── prod.toml │ ├── qa.toml │ └── staging.toml ├── dev/ │ └── postgres/ │ └── 00-supabase-schema.sql ├── docker-compose.dbs.yml ├── docker-compose.tests.yml ├── docker-compose.yml ├── lib/ │ ├── extensions/ │ │ ├── extensions.ex │ │ └── postgres_cdc_rls/ │ │ ├── cdc_rls.ex │ │ ├── db_settings.ex │ │ ├── message_dispatcher.ex │ │ ├── replication_poller.ex │ │ ├── replications.ex │ │ ├── subscription_manager.ex │ │ ├── subscriptions.ex │ │ ├── subscriptions_checker.ex │ │ ├── supervisor.ex │ │ └── worker_supervisor.ex │ ├── realtime/ │ │ ├── adapters/ │ │ │ ├── changes.ex │ │ │ └── postgres/ │ │ │ ├── decoder.ex │ │ │ ├── oid_database.ex │ │ │ ├── protocol/ │ │ │ │ ├── keep_alive.ex │ │ │ │ └── write.ex │ │ │ └── protocol.ex │ │ ├── api/ │ │ │ ├── extensions.ex │ │ │ ├── message.ex │ │ │ └── tenant.ex │ │ ├── api.ex │ │ ├── application.ex │ │ ├── beacon_pub_sub_adapter.ex │ │ ├── crypto.ex │ │ ├── database.ex │ │ ├── gen_counter/ │ │ │ └── gen_counter.ex │ │ ├── gen_rpc/ │ │ │ └── pub_sub.ex │ │ ├── gen_rpc.ex │ │ ├── helpers.ex │ │ ├── log_filter.ex │ │ ├── logs.ex │ │ ├── messages.ex │ │ ├── metrics_cleaner.ex │ │ ├── metrics_pusher.ex │ │ ├── monitoring/ │ │ │ ├── distributed_metrics.ex │ │ │ ├── erl_sys_mon.ex │ │ │ ├── gen_rpc_metrics.ex │ │ │ ├── latency.ex │ │ │ ├── os_metrics.ex │ │ │ ├── peep/ │ │ │ │ └── partitioned.ex │ │ │ ├── prom_ex/ │ │ │ │ └── plugins/ │ │ │ │ ├── channels.ex │ │ │ │ ├── distributed.ex │ │ │ │ ├── gen_rpc.ex │ │ │ │ ├── osmon.ex │ │ │ │ ├── phoenix.ex │ │ │ │ ├── tenant.ex │ │ │ │ ├── tenant_global.ex │ │ │ │ └── tenants.ex │ │ │ ├── prom_ex.ex │ │ │ ├── prometheus.ex │ │ │ └── tenant_prom_ex.ex │ │ ├── nodes.ex │ │ ├── operations.ex │ │ ├── postgres_cdc.ex │ │ ├── rate_counter/ │ │ │ ├── dynamic_supervisor.ex │ │ │ └── rate_counter.ex │ │ ├── release.ex │ │ ├── repo.ex │ │ ├── repo_replica.ex │ │ ├── rpc.ex │ │ ├── signal_handler.ex │ │ ├── syn/ │ │ │ └── postgres_cdc.ex │ │ ├── syn_handler.ex │ │ ├── telemetry/ │ │ │ ├── logger.ex │ │ │ └── telemetry.ex │ │ ├── tenants/ │ │ │ ├── authorization/ │ │ │ │ ├── policies/ │ │ │ │ │ ├── broadcast_policies.ex │ │ │ │ │ └── presence_policies.ex │ │ │ │ └── policies.ex │ │ │ ├── authorization.ex │ │ │ ├── batch_broadcast.ex │ │ │ ├── cache.ex │ │ │ ├── connect/ │ │ │ │ ├── check_connection.ex │ │ │ │ ├── get_tenant.ex │ │ │ │ ├── piper.ex │ │ │ │ ├── reconcile_migrations.ex │ │ │ │ └── register_process.ex │ │ │ ├── connect.ex │ │ │ ├── janitor/ │ │ │ │ └── maintenance_task.ex │ │ │ ├── janitor.ex │ │ │ ├── migrations.ex │ │ │ ├── rebalancer.ex │ │ │ ├── replication_connection/ │ │ │ │ └── watchdog.ex │ │ │ ├── replication_connection.ex │ │ │ ├── repo/ │ │ │ │ └── migrations/ │ │ │ │ ├── 20211116024918_create_realtime_subscription_table.ex │ │ │ │ ├── 20211116045059_create_realtime_check_filters_trigger.ex │ │ │ │ ├── 20211116050929_create_realtime_quote_wal2json_function.ex │ │ │ │ ├── 20211116051442_create_realtime_check_equality_op_function.ex │ │ │ │ ├── 20211116212300_create_realtime_build_prepared_statement_sql_function.ex │ │ │ │ ├── 20211116213355_create_realtime_cast_function.ex │ │ │ │ ├── 20211116213934_create_realtime_is_visible_through_filters_function.ex │ │ │ │ ├── 20211116214523_create_realtime_apply_rls_function.ex │ │ │ │ ├── 20211122062447_grant_realtime_usage_to_authenticated_role.ex │ │ │ │ ├── 20211124070109_enable_realtime_apply_rls_function_postgrest_9_compatibility.ex │ │ │ │ ├── 20211202204204_update_realtime_subscription_check_filters_function_security.ex │ │ │ │ ├── 20211202204605_update_realtime_build_prepared_statement_sql_function_for_compatibility_with_all_types.ex │ │ │ │ ├── 20211210212804_enable_generic_subscription_claims.ex │ │ │ │ ├── 20211228014915_add_wal_payload_on_errors_in_apply_rls_function.ex │ │ │ │ ├── 20220107221237_update_change_timestamp_to_iso_8601_zulu_format.ex │ │ │ │ ├── 20220228202821_update_subscription_check_filters_function_dynamic_table_name.ex │ │ │ │ ├── 20220312004840_update_apply_rls_function_to_apply_iso_8601.ex │ │ │ │ ├── 20220603231003_add_quoted_regtypes_support.ex │ │ │ │ ├── 20220603232444_add_output_for_data_less_than_equal_64_bytes_when_payload_too_large.ex │ │ │ │ ├── 20220615214548_add_quoted_regtypes_backward_compatibility_support.ex │ │ │ │ ├── 20220712093339_recreate_realtime_build_prepared_statement_sql_function.ex │ │ │ │ ├── 20220908172859_null_passes_filters_recreate_is_visible_through_filters.ex │ │ │ │ ├── 20220916233421_update_apply_rls_function_to_pass_through_delete_events_on_filter.ex │ │ │ │ ├── 20230119133233_millisecond_precision_for_walrus.ex │ │ │ │ ├── 20230128025114_add_in_op_to_filters.ex │ │ │ │ ├── 20230128025212_enable_filtering_on_delete_record.ex │ │ │ │ ├── 20230227211149_update_subscription_check_filters_for_in_filter_non_text_types.ex │ │ │ │ ├── 20230228184745_convert_commit_timestamp_to_utc.ex │ │ │ │ ├── 20230308225145_output_full_record_when_unchanged_toast.ex │ │ │ │ ├── 20230328144023_create_list_changes_function.ex │ │ │ │ ├── 20231018144023_create_channels.ex │ │ │ │ ├── 20231204144023_set_required_grants.ex │ │ │ │ ├── 20231204144024_create_rls_helper_functions.ex │ │ │ │ ├── 20231204144025_enable_channels_rls.ex │ │ │ │ ├── 20240108234812_add_channels_column_for_write_check.ex │ │ │ │ ├── 20240109165339_add_update_grant_to_channels.ex │ │ │ │ ├── 20240227174441_add_broadcast_permissions_table.ex │ │ │ │ ├── 20240311171622_add_insert_and_delete_grant_to_channels.ex │ │ │ │ ├── 20240321100241_add_presences_permissions_table.ex │ │ │ │ ├── 20240401105812_create_realtime_admin_and_move_ownership.ex │ │ │ │ ├── 20240418121054_remove_check_columns.ex │ │ │ │ ├── 20240523004032_redefine_authorization_tables.ex │ │ │ │ ├── 20240618124746_fix_walrus_role_handling.ex │ │ │ │ ├── 20240801235015_unlogged_messages_table.ex │ │ │ │ ├── 20240805133720_logged_messages_table.ex │ │ │ │ ├── 20240827160934_filter_delete_postgres_changes.ex │ │ │ │ ├── 20240919163303_add_payload_to_messages.ex │ │ │ │ ├── 20240919163305_change_messages_id_type.ex │ │ │ │ ├── 20241019105805_uuid_auto_generation.ex │ │ │ │ ├── 20241030150047_messages_partitioning.ex │ │ │ │ ├── 20241108114728_messages_using_uuid.ex │ │ │ │ ├── 20241121104152_fix_send_function_.ex │ │ │ │ ├── 20241130184212_recreate_entity_index_using_btree.ex │ │ │ │ ├── 20241220035512_fix_send_function_partition_creation.ex │ │ │ │ ├── 20241220123912_realtime_send_handle_exceptions_remove_partition_creation.ex │ │ │ │ ├── 20241224161212_realtime_send_sets_config.ex │ │ │ │ ├── 20250107150512_realtime_subscription_unlogged.ex │ │ │ │ ├── 20250110162412_realtime_subscription_logged.ex │ │ │ │ ├── 20250123174212_remove_unused_publications.ex │ │ │ │ ├── 20250128220012_realtime_send_sets_topic_config.ex │ │ │ │ ├── 20250506224012_subscription_index_bridging_disabled.ex │ │ │ │ ├── 20250523164012_run_subscription_index_bridging_disabled.ex │ │ │ │ ├── 20250714121412_broadcast_send_error_logging.ex │ │ │ │ ├── 20250905041441_create_messages_replay_index.ex │ │ │ │ ├── 20251103001201_broadcast_send_include_payload_id.ex │ │ │ │ ├── 20251120212548_add_action_to_subscriptions.ex │ │ │ │ ├── 20251120215549_filter_action_postgres_changes.ex │ │ │ │ └── 20260218120000_fix_bytea_double_encoding_in_cast.ex │ │ │ └── repo.ex │ │ ├── tenants.ex │ │ └── users_counter.ex │ ├── realtime.ex │ ├── realtime_web/ │ │ ├── api_spec.ex │ │ ├── channels/ │ │ │ ├── auth/ │ │ │ │ ├── channels_authorization.ex │ │ │ │ └── jwt_verification.ex │ │ │ ├── payloads/ │ │ │ │ ├── broadcast/ │ │ │ │ │ └── replay.ex │ │ │ │ ├── broadcast.ex │ │ │ │ ├── config.ex │ │ │ │ ├── flexible_boolean.ex │ │ │ │ ├── join.ex │ │ │ │ ├── postgres_change.ex │ │ │ │ └── presence.ex │ │ │ ├── presence.ex │ │ │ ├── realtime_channel/ │ │ │ │ ├── assign.ex │ │ │ │ ├── broadcast_handler.ex │ │ │ │ ├── logging.ex │ │ │ │ ├── message_dispatcher.ex │ │ │ │ ├── presence_handler.ex │ │ │ │ └── tracker.ex │ │ │ ├── realtime_channel.ex │ │ │ ├── socket_disconnect.ex │ │ │ ├── tenant_rate_limiters.ex │ │ │ └── user_socket.ex │ │ ├── controllers/ │ │ │ ├── broadcast_controller.ex │ │ │ ├── fallback_controller.ex │ │ │ ├── legacy_metrics_controller.ex │ │ │ ├── metrics_controller.ex │ │ │ ├── page_controller.ex │ │ │ ├── ping_controller.ex │ │ │ └── tenant_controller.ex │ │ ├── dashboard/ │ │ │ ├── process_dump.ex │ │ │ └── tenant_info.ex │ │ ├── endpoint.ex │ │ ├── gettext.ex │ │ ├── live/ │ │ │ ├── components.ex │ │ │ ├── inspector_live/ │ │ │ │ ├── conn_component.ex │ │ │ │ ├── conn_component.html.heex │ │ │ │ ├── index.ex │ │ │ │ └── index.html.heex │ │ │ ├── page_live/ │ │ │ │ ├── index.ex │ │ │ │ └── index.html.heex │ │ │ ├── ping_live.ex │ │ │ ├── status_live/ │ │ │ │ ├── index.ex │ │ │ │ └── index.html.heex │ │ │ ├── tenants_live/ │ │ │ │ ├── index.ex │ │ │ │ └── index.html.heex │ │ │ └── time_live.ex │ │ ├── open_api_schemas.ex │ │ ├── plugs/ │ │ │ ├── assign_tenant.ex │ │ │ ├── auth_tenant.ex │ │ │ ├── baggage_request_id.ex │ │ │ ├── metrics_mode.ex │ │ │ └── rate_limiter.ex │ │ ├── router.ex │ │ ├── socket/ │ │ │ ├── user_broadcast.ex │ │ │ └── v2_serializer.ex │ │ ├── telemetry.ex │ │ ├── templates/ │ │ │ └── layout/ │ │ │ ├── app.html.heex │ │ │ ├── live.html.heex │ │ │ └── root.html.heex │ │ ├── tenant_broadcaster.ex │ │ └── views/ │ │ ├── changeset_view.ex │ │ ├── error_helpers.ex │ │ ├── error_view.ex │ │ ├── layout_view.ex │ │ └── tenant_view.ex │ └── realtime_web.ex ├── mix.exs ├── phx_join.schema.json ├── priv/ │ ├── gettext/ │ │ ├── en/ │ │ │ └── LC_MESSAGES/ │ │ │ └── errors.po │ │ └── errors.pot │ ├── repo/ │ │ ├── dev_seeds.exs │ │ ├── migrations/ │ │ │ ├── .formatter.exs │ │ │ ├── 20210706140551_create_tenant.exs │ │ │ ├── 20220329161857_add_extensions_table.exs │ │ │ ├── 20220410212326_add_tenant_max_eps.exs │ │ │ ├── 20220506102948_rename_poll_interval_to_poll_interval_ms.exs │ │ │ ├── 20220527210857_add_external_id_uniq_index.exs │ │ │ ├── 20220815211129_new_max_events_per_second_default.exs │ │ │ ├── 20220815215024_set_current_max_events_per_second.exs │ │ │ ├── 20220818141501_change_limits_defaults.exs │ │ │ ├── 20221018173709_add_cdc_default.exs │ │ │ ├── 20221102172703_rename_pg_type.exs │ │ │ ├── 20221223010058_drop_tenants_uniq_external_id_index.exs │ │ │ ├── 20230110180046_add_limits_fields_to_tenants.exs │ │ │ ├── 20230810220907_alter_tenants_table_columns_to_text.exs │ │ │ ├── 20230810220924_alter_extensions_table_columns_to_text.exs │ │ │ ├── 20231024094642_add_tenant_suspend_flag.exs │ │ │ ├── 20240306114423_add_tenant_jwt_jwks.exs │ │ │ ├── 20240418082835_add_authorization_flag.exs │ │ │ ├── 20240625211759_remove_enable_authorization_flag.exs │ │ │ ├── 20240704172020_add_notify_private_alpha.exs │ │ │ ├── 20240902173232_add_extension_external_id_index.exs │ │ │ ├── 20241106103258_add_private_only_flag_column_to_tenant.exs │ │ │ ├── 20250424203323_add_migrations_ran_to_tenant.exs │ │ │ ├── 20250613072131_add_tenant_broadcast_adapter.exs │ │ │ ├── 20250711044927_change_default_broadcast_adapter_to_gen_rpc.exs │ │ │ ├── 20250811121559_add_max_presence_events_per_second.exs │ │ │ ├── 20250926223044_set_default_presence_value.exs │ │ │ ├── 20251204170944_nullable_jwt_secrets.exs │ │ │ ├── 20251218000543_ensure_jwt_secret_is_text.exs │ │ │ ├── 20260209232800_add_max_client_presence_events_per_second.exs │ │ │ └── 20260304000000_add_presence_enabled_to_tenants.exs │ │ ├── seeds.exs │ │ └── seeds_before_migration.exs │ └── static/ │ ├── robots.txt │ └── worker.js ├── rel/ │ ├── env.bat.eex │ ├── env.sh.eex │ ├── overlays/ │ │ ├── bin/ │ │ │ ├── migrate │ │ │ ├── migrate.bat │ │ │ ├── server │ │ │ └── server.bat │ │ └── config.example.yml │ └── vm.args.eex ├── run.sh └── test/ ├── api_jwt_secret_test.exs ├── e2e/ │ ├── .gitignore │ ├── .template.env │ ├── .tool-versions │ ├── README.md │ ├── flake.nix │ ├── legacy/ │ │ ├── .tool-versions │ │ ├── README.md │ │ └── tests.ts │ ├── package.json │ ├── realtime-check.ts │ └── supabase/ │ ├── .branches/ │ │ └── _current_branch │ └── .temp/ │ └── cli-latest ├── extensions/ │ ├── extensions_test.exs │ └── postgres_cdc_rls/ │ ├── db_settings_test.exs │ ├── message_dispatcher_test.exs │ ├── replications_test.exs │ └── worker_supervisor_test.exs ├── integration/ │ ├── distributed_realtime_channel_test.exs │ ├── measure_traffic_test.exs │ ├── region_aware_migrations_test.exs │ ├── region_aware_routing_test.exs │ ├── rt_channel/ │ │ ├── authorization_test.exs │ │ ├── billable_events_test.exs │ │ ├── broadcast_test.exs │ │ ├── connection_lifecycle_test.exs │ │ ├── postgres_changes_test.exs │ │ ├── presence_test.exs │ │ ├── token_handling_test.exs │ │ └── wal_bloat_test.exs │ ├── tests.ts │ └── tracker_test.exs ├── realtime/ │ ├── adapters/ │ │ └── postgres/ │ │ └── protocol_test.exs │ ├── api/ │ │ └── extensions_test.exs │ ├── api_test.exs │ ├── database_distributed_test.exs │ ├── database_test.exs │ ├── extensions/ │ │ └── cdc_rls/ │ │ ├── cdc_rls_test.exs │ │ ├── replication_poller_test.exs │ │ ├── replications_test.exs │ │ ├── subscription_manager_test.exs │ │ ├── subscriptions_checker_distributed_test.exs │ │ ├── subscriptions_checker_test.exs │ │ └── subscriptions_test.exs │ ├── gen_counter/ │ │ └── gen_counter_test.exs │ ├── gen_rpc_pub_sub/ │ │ └── worker_test.exs │ ├── gen_rpc_pub_sub_test.exs │ ├── gen_rpc_test.exs │ ├── helpers_test.exs │ ├── log_filter_test.exs │ ├── logs_test.exs │ ├── messages_test.exs │ ├── metrics_cleaner_test.exs │ ├── metrics_pusher_test.exs │ ├── monitoring/ │ │ ├── distributed_metrics_test.exs │ │ ├── erl_sys_mon_test.exs │ │ ├── gen_rpc_metrics_test.exs │ │ ├── latency_test.exs │ │ ├── peep/ │ │ │ └── partitioned_test.exs │ │ ├── prom_ex/ │ │ │ └── plugins/ │ │ │ ├── distributed_test.exs │ │ │ ├── gen_rpc_test.exs │ │ │ ├── phoenix_test.exs │ │ │ ├── tenant_test.exs │ │ │ └── tenants_test.exs │ │ ├── prom_ex_test.exs │ │ └── prometheus_test.exs │ ├── nodes_test.exs │ ├── oid_test.exs │ ├── postgres_decoder_test.exs │ ├── rate_counter/ │ │ └── rate_counter_test.exs │ ├── repo_replica_test.exs │ ├── rpc_test.exs │ ├── signal_handler_test.exs │ ├── syn_handler_test.exs │ ├── telemetry/ │ │ └── logger_test.exs │ ├── tenants/ │ │ ├── authorization_remote_test.exs │ │ ├── authorization_test.exs │ │ ├── batch_broadcast_test.exs │ │ ├── cache_test.exs │ │ ├── connect/ │ │ │ ├── get_tenant_test.exs │ │ │ ├── piper_test.exs │ │ │ ├── reconcile_migrations_test.exs │ │ │ └── register_process_test.exs │ │ ├── connect_test.exs │ │ ├── janitor/ │ │ │ └── maintenance_task_test.exs │ │ ├── janitor_test.exs │ │ ├── migrations_test.exs │ │ ├── rebalancer_test.exs │ │ ├── replication_connection/ │ │ │ └── watchdog_test.exs │ │ ├── replication_connection_test.exs │ │ └── repo_test.exs │ ├── tenants_test.exs │ └── users_counter_test.exs ├── realtime_web/ │ ├── channels/ │ │ ├── auth/ │ │ │ ├── channels_authorization_test.exs │ │ │ └── jwt_verification_test.exs │ │ ├── payloads/ │ │ │ ├── flexible_boolean_test.exs │ │ │ └── join_test.exs │ │ ├── realtime_channel/ │ │ │ ├── broadcast_handler_test.exs │ │ │ ├── logging_test.exs │ │ │ ├── message_dispatcher_test.exs │ │ │ ├── presence_handler_test.exs │ │ │ └── tracker_test.exs │ │ ├── realtime_channel_test.exs │ │ ├── socket_disconnect_test.exs │ │ ├── tenant_rate_limiters_test.exs │ │ └── user_socket_test.exs │ ├── controllers/ │ │ ├── broadcast_controller_test.exs │ │ ├── fallback_controller_test.exs │ │ ├── legacy_metrics_controller_test.exs │ │ ├── live_dasboard_test.exs │ │ ├── metrics_controller_test.exs │ │ ├── openapi_controller_test.exs │ │ ├── page_controller_test.exs │ │ └── tenant_controller_test.exs │ ├── dashboard/ │ │ └── tenant_info_test.exs │ ├── integration/ │ │ └── tracing_test.exs │ ├── live/ │ │ ├── inspector_live/ │ │ │ └── index_test.exs │ │ ├── page_live/ │ │ │ └── index_test.exs │ │ ├── status_live/ │ │ │ └── index_test.exs │ │ └── tenants_live/ │ │ └── index_test.exs │ ├── plugs/ │ │ ├── assign_tenant_test.exs │ │ ├── auth_tenant_test.exs │ │ ├── baggage_request_id_test.exs │ │ ├── metrics_mode_test.exs │ │ └── rate_limiter_test.exs │ ├── socket/ │ │ └── v2_serializer_test.exs │ ├── tenant_broadcaster_test.exs │ └── views/ │ ├── error_view_test.exs │ ├── layout_view_test.exs │ └── page_view_test.exs ├── support/ │ ├── channel_case.ex │ ├── cleanup.ex │ ├── clustered.ex │ ├── conn_case.ex │ ├── containers/ │ │ └── container.ex │ ├── containers.ex │ ├── data_case.ex │ ├── generators.ex │ ├── integrations.ex │ ├── joken_current_time_mock.ex │ ├── metrics_helper.ex │ ├── prometheus_fixtures.ex │ ├── rate_counter_helper.ex │ ├── replication_test_handler.ex │ ├── tenant_connection.ex │ ├── tracing.ex │ └── websocket_client.ex └── test_helper.exs