-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.yaml
More file actions
81 lines (71 loc) · 2.83 KB
/
config.yaml
File metadata and controls
81 lines (71 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# instant-lite-api configuration
# All values have sensible defaults. Only override what you need.
# All values have sensible defaults. Only override what you need.
server:
port: "8080"
base_url: "https://api.instanode.dev/" # Production API URL
read_timeout: "10s"
write_timeout: "30s"
idle_timeout: "60s"
database:
platform_url: "" # REQUIRED: set via DATABASE_URL env var
customer_url: "" # REQUIRED: set via CUSTOMER_DATABASE_URL env var
max_open_conns: 20
max_idle_conns: 5
redis:
url: "redis://localhost:6379"
github:
client_id: ""
client_secret: ""
redirect_uri: "https://api.instanode.dev/auth/github/callback"
razorpay:
key_id: ""
key_secret: ""
webhook_secret: ""
jwt:
secret: ""
limits:
rate_requests_per_second: 10 # HTTP rate limit (token bucket refill rate)
rate_burst: 20 # HTTP rate limit (max burst)
max_provisions_per_day: 5 # Per-IP/subnet daily provision cap
anon_ttl: "24h" # Time-to-live for anonymous resources
max_request_body_bytes: 1048576 # 1 MB — global request body limit
webhook_max_body_bytes: 1048576 # 1 MB — per-webhook-payload limit
webhook_max_stored: 100 # Max stored webhook payloads per token
ipv4_cidr_prefix: 24 # /24 subnet grouping for IPv4 fingerprinting
ipv6_cidr_prefix: 48 # /48 subnet grouping for IPv6 fingerprinting
reaper:
interval: "5m" # How often the cleanup job runs
batch_size: 50 # Max expired resources to clean per cycle
timeout: "60s" # Context timeout per reaper cycle
postgres:
conn_limit: 2 # CONNECTION LIMIT per provisioned database/user
storage_mb: 10 # Storage quota hint (used for temp_file_limit)
statement_timeout: "30s" # Max query execution time per provisioned user
# Observability (OpenTelemetry — vendor-agnostic)
# Supports any OTLP-compatible backend. Examples:
#
# New Relic:
# otlp_endpoint: "otlp.nr-data.net"
# otlp_headers:
# api-key: "YOUR_NEW_RELIC_LICENSE_KEY"
#
# Datadog (via Datadog Agent OTLP receiver):
# otlp_endpoint: "localhost:4318"
# otlp_insecure: true
#
# Grafana Cloud:
# otlp_endpoint: "otlp-gateway-prod-us-east-0.grafana.net"
# otlp_headers:
# authorization: "Basic YOUR_BASE64_ENCODED_CREDENTIALS"
#
observability:
enabled: false # Set to true to enable tracing
service_name: "instant-lite-api"
environment: "development"
exporter: "otlp" # "otlp" or "stdout" (stdout for local debugging)
otlp_endpoint: "otlp.nr-data.net" # New Relic default
otlp_headers: # Auth headers for your backend
api-key: ""
otlp_insecure: false # Set true for local collectors (no TLS)
sample_rate: 1.0 # 1.0 = trace everything, 0.1 = 10% sampling