fix: various fixes to sentry-reported errors and more
This commit is contained in:
@@ -7,7 +7,6 @@
|
||||
"domain",
|
||||
"database",
|
||||
"services",
|
||||
"gateway",
|
||||
"auth"
|
||||
],
|
||||
"if": {
|
||||
@@ -125,10 +124,6 @@
|
||||
"description": "Configuration for individual Fluxer services.",
|
||||
"$ref": "#/$defs/services"
|
||||
},
|
||||
"gateway": {
|
||||
"description": "Configuration for the real-time Gateway service connection.",
|
||||
"$ref": "#/$defs/gateway_connection"
|
||||
},
|
||||
"auth": {
|
||||
"description": "Authentication and security settings.",
|
||||
"$ref": "#/$defs/auth"
|
||||
@@ -406,24 +401,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"gateway_connection": {
|
||||
"type": "object",
|
||||
"description": "Configuration for backend services to call the Gateway via RPC.",
|
||||
"required": [
|
||||
"rpc_secret"
|
||||
],
|
||||
"properties": {
|
||||
"rpc_endpoint": {
|
||||
"type": "string",
|
||||
"description": "Gateway RPC endpoint URL (e.g. http://gateway:8080).",
|
||||
"default": "http://127.0.0.1:8088"
|
||||
},
|
||||
"rpc_secret": {
|
||||
"type": "string",
|
||||
"description": "Shared secret for authenticating RPC calls to the Gateway."
|
||||
}
|
||||
}
|
||||
},
|
||||
"rate_limit": {
|
||||
"type": "object",
|
||||
"description": "Rate limiting parameters.",
|
||||
@@ -587,7 +564,7 @@
|
||||
"min_member_count": {
|
||||
"type": "number",
|
||||
"description": "Minimum number of members a guild needs before it can apply for discovery listing.",
|
||||
"default": 50
|
||||
"default": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1095,7 +1072,7 @@
|
||||
},
|
||||
"webhook_secret": {
|
||||
"type": "string",
|
||||
"description": "SendGrid signed event webhook public key (PEM or base64-encoded DER)."
|
||||
"description": "Sweego webhook signing secret (base64-encoded)."
|
||||
},
|
||||
"from_email": {
|
||||
"type": "string",
|
||||
@@ -1706,7 +1683,6 @@
|
||||
"type": "object",
|
||||
"description": "Configuration for the Gateway service (WebSocket).",
|
||||
"required": [
|
||||
"api_host",
|
||||
"admin_reload_secret",
|
||||
"media_proxy_endpoint"
|
||||
],
|
||||
@@ -1716,20 +1692,6 @@
|
||||
"description": "Port to listen on.",
|
||||
"default": 8771
|
||||
},
|
||||
"rpc_tcp_port": {
|
||||
"type": "number",
|
||||
"description": "Port for API-to-Gateway internal RPC over TCP.",
|
||||
"default": 8772
|
||||
},
|
||||
"api_host": {
|
||||
"type": "string",
|
||||
"description": "Host/Port of the API service to communicate with."
|
||||
},
|
||||
"api_canary_host": {
|
||||
"type": "string",
|
||||
"description": "Host/Port of the Canary API service (optional).",
|
||||
"default": ""
|
||||
},
|
||||
"admin_reload_secret": {
|
||||
"type": "string",
|
||||
"description": "Secret used to trigger code hot-swapping/reloads."
|
||||
@@ -1885,6 +1847,27 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"nats_services": {
|
||||
"type": "object",
|
||||
"description": "Configuration for NATS messaging.",
|
||||
"properties": {
|
||||
"core_url": {
|
||||
"type": "string",
|
||||
"description": "NATS Core server URL for RPC.",
|
||||
"default": "nats://127.0.0.1:4222"
|
||||
},
|
||||
"jetstream_url": {
|
||||
"type": "string",
|
||||
"description": "NATS JetStream server URL for job queues.",
|
||||
"default": "nats://127.0.0.1:4223"
|
||||
},
|
||||
"auth_token": {
|
||||
"type": "string",
|
||||
"description": "Authentication token for NATS connections.",
|
||||
"default": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"queue_service": {
|
||||
"type": "object",
|
||||
"description": "Configuration for the Job Queue service.",
|
||||
@@ -1892,12 +1875,12 @@
|
||||
"port": {
|
||||
"type": "number",
|
||||
"description": "Port to listen on.",
|
||||
"default": 8080
|
||||
"default": 8088
|
||||
},
|
||||
"host": {
|
||||
"type": "string",
|
||||
"description": "Network interface to bind to.",
|
||||
"default": "0.0.0.0"
|
||||
"concurrency": {
|
||||
"type": "number",
|
||||
"description": "Number of concurrent worker threads.",
|
||||
"default": 1
|
||||
},
|
||||
"data_dir": {
|
||||
"type": "string",
|
||||
@@ -1922,42 +1905,12 @@
|
||||
"snapshot_zstd_level": {
|
||||
"type": "number",
|
||||
"description": "Zstd compression level for snapshots (1-22).",
|
||||
"minimum": 1,
|
||||
"maximum": 22,
|
||||
"default": 3
|
||||
},
|
||||
"visibility_timeout_backoff_ms": {
|
||||
"type": "number",
|
||||
"description": "Backoff duration in milliseconds for visibility timeouts.",
|
||||
"default": 1000
|
||||
},
|
||||
"max_receive_batch": {
|
||||
"type": "number",
|
||||
"description": "Maximum number of messages to retrieve in a single batch.",
|
||||
"default": 10
|
||||
},
|
||||
"command_buffer": {
|
||||
"type": "number",
|
||||
"description": "Size of the internal command buffer.",
|
||||
"default": 1000
|
||||
},
|
||||
"export_timeout": {
|
||||
"type": "number",
|
||||
"description": "Timeout in milliseconds for data export operations.",
|
||||
"default": 30000
|
||||
},
|
||||
"concurrency": {
|
||||
"type": "number",
|
||||
"description": "Number of concurrent worker threads.",
|
||||
"default": 2
|
||||
},
|
||||
"rate_limit": {
|
||||
"description": "Rate limiting configuration for the Queue service.",
|
||||
"$ref": "#/$defs/rate_limit"
|
||||
},
|
||||
"secret": {
|
||||
"type": "string",
|
||||
"description": "Authentication secret for the Queue service."
|
||||
"description": "Secret for queue API authentication.",
|
||||
"default": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2024,6 +1977,10 @@
|
||||
"$ref": "#/$defs/s3_service",
|
||||
"default": {}
|
||||
},
|
||||
"nats": {
|
||||
"$ref": "#/$defs/nats_services",
|
||||
"default": {}
|
||||
},
|
||||
"queue": {
|
||||
"$ref": "#/$defs/queue_service",
|
||||
"default": {}
|
||||
|
||||
@@ -63,14 +63,10 @@ function makeMinimalConfig(overrides: Record<string, unknown> = {}): Record<stri
|
||||
},
|
||||
gateway: {
|
||||
port: 8771,
|
||||
api_host: 'http://localhost:8772/api',
|
||||
admin_reload_secret: 'deadbeef0123456789abcdef0123456789abcdef0123456789abcdef01234567',
|
||||
media_proxy_endpoint: 'http://localhost:8772/media',
|
||||
},
|
||||
},
|
||||
gateway: {
|
||||
rpc_secret: 'rpc-test-secret',
|
||||
},
|
||||
auth: {
|
||||
sudo_mode_secret: 'sudo-test-secret',
|
||||
connection_initiation_secret: 'connection-initiation-test-secret',
|
||||
|
||||
@@ -180,22 +180,5 @@
|
||||
"default": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"gateway_connection": {
|
||||
"type": "object",
|
||||
"description": "Configuration for backend services to call the Gateway via RPC.",
|
||||
"additionalProperties": false,
|
||||
"required": ["rpc_secret"],
|
||||
"properties": {
|
||||
"rpc_endpoint": {
|
||||
"type": "string",
|
||||
"description": "Gateway RPC endpoint URL (e.g. http://gateway:8080).",
|
||||
"default": "http://127.0.0.1:8088"
|
||||
},
|
||||
"rpc_secret": {
|
||||
"type": "string",
|
||||
"description": "Shared secret for authenticating RPC calls to the Gateway."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"min_member_count": {
|
||||
"type": "number",
|
||||
"description": "Minimum number of members a guild needs before it can apply for discovery listing.",
|
||||
"default": 50
|
||||
"default": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
},
|
||||
"webhook_secret": {
|
||||
"type": "string",
|
||||
"description": "SendGrid signed event webhook public key (PEM or base64-encoded DER)."
|
||||
"description": "Sweego webhook signing secret (base64-encoded)."
|
||||
},
|
||||
"from_email": {
|
||||
"type": "string",
|
||||
|
||||
@@ -3,27 +3,13 @@
|
||||
"type": "object",
|
||||
"description": "Configuration for the Gateway service (WebSocket).",
|
||||
"additionalProperties": false,
|
||||
"required": ["api_host", "admin_reload_secret", "media_proxy_endpoint"],
|
||||
"required": ["admin_reload_secret", "media_proxy_endpoint"],
|
||||
"properties": {
|
||||
"port": {
|
||||
"type": "number",
|
||||
"description": "Port to listen on.",
|
||||
"default": 8771
|
||||
},
|
||||
"rpc_tcp_port": {
|
||||
"type": "number",
|
||||
"description": "Port for API-to-Gateway internal RPC over TCP.",
|
||||
"default": 8772
|
||||
},
|
||||
"api_host": {
|
||||
"type": "string",
|
||||
"description": "Host/Port of the API service to communicate with."
|
||||
},
|
||||
"api_canary_host": {
|
||||
"type": "string",
|
||||
"description": "Host/Port of the Canary API service (optional).",
|
||||
"default": ""
|
||||
},
|
||||
"admin_reload_secret": {
|
||||
"type": "string",
|
||||
"description": "Secret used to trigger code hot-swapping/reloads."
|
||||
|
||||
24
packages/config/src/schema/defs/services/nats.json
Normal file
24
packages/config/src/schema/defs/services/nats.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"nats_services": {
|
||||
"type": "object",
|
||||
"description": "Configuration for NATS messaging.",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"core_url": {
|
||||
"type": "string",
|
||||
"description": "NATS Core server URL for RPC.",
|
||||
"default": "nats://127.0.0.1:4222"
|
||||
},
|
||||
"jetstream_url": {
|
||||
"type": "string",
|
||||
"description": "NATS JetStream server URL for job queues.",
|
||||
"default": "nats://127.0.0.1:4223"
|
||||
},
|
||||
"auth_token": {
|
||||
"type": "string",
|
||||
"description": "Authentication token for NATS connections.",
|
||||
"default": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7,12 +7,12 @@
|
||||
"port": {
|
||||
"type": "number",
|
||||
"description": "Port to listen on.",
|
||||
"default": 8080
|
||||
"default": 8088
|
||||
},
|
||||
"host": {
|
||||
"type": "string",
|
||||
"description": "Network interface to bind to.",
|
||||
"default": "0.0.0.0"
|
||||
"concurrency": {
|
||||
"type": "number",
|
||||
"description": "Number of concurrent worker threads.",
|
||||
"default": 1
|
||||
},
|
||||
"data_dir": {
|
||||
"type": "string",
|
||||
@@ -37,42 +37,12 @@
|
||||
"snapshot_zstd_level": {
|
||||
"type": "number",
|
||||
"description": "Zstd compression level for snapshots (1-22).",
|
||||
"minimum": 1,
|
||||
"maximum": 22,
|
||||
"default": 3
|
||||
},
|
||||
"visibility_timeout_backoff_ms": {
|
||||
"type": "number",
|
||||
"description": "Backoff duration in milliseconds for visibility timeouts.",
|
||||
"default": 1000
|
||||
},
|
||||
"max_receive_batch": {
|
||||
"type": "number",
|
||||
"description": "Maximum number of messages to retrieve in a single batch.",
|
||||
"default": 10
|
||||
},
|
||||
"command_buffer": {
|
||||
"type": "number",
|
||||
"description": "Size of the internal command buffer.",
|
||||
"default": 1000
|
||||
},
|
||||
"export_timeout": {
|
||||
"type": "number",
|
||||
"description": "Timeout in milliseconds for data export operations.",
|
||||
"default": 30000
|
||||
},
|
||||
"concurrency": {
|
||||
"type": "number",
|
||||
"description": "Number of concurrent worker threads.",
|
||||
"default": 2
|
||||
},
|
||||
"rate_limit": {
|
||||
"description": "Rate limiting configuration for the Queue service.",
|
||||
"$ref": "#/$defs/rate_limit"
|
||||
},
|
||||
"secret": {
|
||||
"type": "string",
|
||||
"description": "Authentication secret for the Queue service."
|
||||
"description": "Secret for queue API authentication.",
|
||||
"default": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
"$ref": "#/$defs/s3_service",
|
||||
"default": {}
|
||||
},
|
||||
"nats": {
|
||||
"$ref": "#/$defs/nats_services",
|
||||
"default": {}
|
||||
},
|
||||
"queue": {
|
||||
"$ref": "#/$defs/queue_service",
|
||||
"default": {}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"title": "Fluxer Config",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["env", "domain", "database", "services", "gateway", "auth"],
|
||||
"required": ["env", "domain", "database", "services", "auth"],
|
||||
"if": {
|
||||
"required": ["instance"],
|
||||
"properties": {
|
||||
@@ -89,10 +89,6 @@
|
||||
"description": "Configuration for individual Fluxer services.",
|
||||
"$ref": "#/$defs/services"
|
||||
},
|
||||
"gateway": {
|
||||
"description": "Configuration for the real-time Gateway service connection.",
|
||||
"$ref": "#/$defs/gateway_connection"
|
||||
},
|
||||
"auth": {
|
||||
"description": "Authentication and security settings.",
|
||||
"$ref": "#/$defs/auth"
|
||||
|
||||
Reference in New Issue
Block a user