Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
211 lines (183 loc) · 6.17 KB
/
Copy path.env.example
File metadata and controls
211 lines (183 loc) · 6.17 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
# IPFS Configuration
IPFS_HOST=localhost
IPFS_PORT=5001
IPFS_PROTOCOL=http
IPFS_API_PATH=/api/v0
IPFS_GATEWAY_URL=https://ipfs.io/ipfs/
# IPFS Upload Configuration
IPFS_MAX_FILE_SIZE=104857600
IPFS_CHUNK_SIZE=1048576
IPFS_AUTO_PIN=true
IPFS_PIN_TIMEOUT=30000
# IPFS Caching
IPFS_ENABLE_CACHE=true
IPFS_CACHE_TIMEOUT=3600000
# IPFS Retry Configuration
IPFS_MAX_RETRIES=3
IPFS_RETRY_DELAY=1000
# IPFS Authentication (optional)
IPFS_AUTH_ENABLED=false
IPFS_AUTH_USERNAME=
IPFS_AUTH_PASSWORD=
IPFS_AUTH_TOKEN=
# IPFS Metadata Configuration
IPFS_INCLUDE_TIMESTAMP=true
IPFS_INCLUDE_UPLOADER=true
IPFS_INCLUDE_CONTENT_TYPE=true
IPFS_INCLUDE_FILE_SIZE=true
# JWT Configuration (for IPFS authentication)
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
# Server Configuration
PORT=3001
NODE_ENV=development
# Database Configuration
MONGODB_URI=mongodb://localhost:27017/aethermint-education
# Or for PostgreSQL
DATABASE_URL=postgresql://username:password@localhost:5432/aethermint-education
# Migration Configuration
AUTO_RUN_MIGRATIONS=true
# Redis Configuration (for Transaction Queue)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=
REDIS_DB=0
# Distributed API Rate Limiting (windows are milliseconds)
RATE_LIMIT_ENABLED=true
RATE_LIMIT_FAIL_OPEN=true
RATE_LIMIT_KEY_PREFIX=aethermint:rate-limit:
RATE_LIMIT_GLOBAL_WINDOW_MS=60000
RATE_LIMIT_GLOBAL_MAX=600
RATE_LIMIT_GLOBAL_BURST_WINDOW_MS=10000
RATE_LIMIT_GLOBAL_BURST_MAX=120
RATE_LIMIT_PUBLIC_WINDOW_MS=300000
RATE_LIMIT_PUBLIC_MAX=300
RATE_LIMIT_PUBLIC_BURST_WINDOW_MS=10000
RATE_LIMIT_PUBLIC_BURST_MAX=40
RATE_LIMIT_AUTHENTICATED_WINDOW_MS=300000
RATE_LIMIT_AUTHENTICATED_MAX=600
RATE_LIMIT_AUTHENTICATED_BURST_WINDOW_MS=10000
RATE_LIMIT_AUTHENTICATED_BURST_MAX=80
RATE_LIMIT_ADMIN_WINDOW_MS=300000
RATE_LIMIT_ADMIN_MAX=120
RATE_LIMIT_ADMIN_BURST_WINDOW_MS=10000
RATE_LIMIT_ADMIN_BURST_MAX=20
RATE_LIMIT_AUTH_WINDOW_MS=3600000
RATE_LIMIT_AUTH_MAX=10
RATE_LIMIT_AUTH_BURST_WINDOW_MS=60000
RATE_LIMIT_AUTH_BURST_MAX=5
RATE_LIMIT_TRANSACTIONS_WINDOW_MS=60000
RATE_LIMIT_TRANSACTIONS_MAX=20
RATE_LIMIT_TRANSACTIONS_BURST_WINDOW_MS=10000
RATE_LIMIT_TRANSACTIONS_BURST_MAX=8
RATE_LIMIT_IPFS_WINDOW_MS=3600000
RATE_LIMIT_IPFS_MAX=30
RATE_LIMIT_IPFS_BURST_WINDOW_MS=60000
RATE_LIMIT_IPFS_BURST_MAX=10
# Swarm Learning Configuration
SWARM_MIN_AGENTS=3
SWARM_MAX_AGENTS=1000
SWARM_COMMUNICATION_RADIUS=5
SWARM_LEARNING_RATE=0.01
SWARM_EXPLORATION_RATE=0.1
SWARM_CONVERGENCE_THRESHOLD=0.001
SWARM_MAX_ITERATIONS=1000
SWARM_TIMEOUT_MS=300000
# Swarm Network Configuration
SWARM_INITIAL_CONNECTIONS=3
SWARM_MAX_CONNECTIONS=10
SWARM_MIN_CONNECTIONS=2
SWARM_REORGANIZATION_INTERVAL=30000
SWARM_TOPOLOGY_TYPE=small_world
# Swarm Analytics Configuration
SWARM_METRICS_RETENTION_PERIOD=86400000
SWARM_AGGREGATION_INTERVAL=60000
SWARM_LOW_PERFORMANCE_THRESHOLD=0.5
SWARM_HIGH_LATENCY_THRESHOLD=5000
SWARM_LOW_CONVERGENCE_THRESHOLD=0.3
SWARM_NETWORK_FRAGMENTATION_THRESHOLD=0.7
# Swarm Communication Configuration
SWARM_ENCRYPTION_ENABLED=true
SWARM_AUTHENTICATION_ENABLED=true
SWARM_MAX_MESSAGE_SIZE=1048576
SWARM_MESSAGE_TIMEOUT=30000
SWARM_RETRY_ATTEMPTS=3
SWARM_RETRY_DELAY=1000
# Swarm Behavior Detection Configuration
SWARM_DETECTION_WINDOW=60000
SWARM_MIN_PATTERN_OCCURRENCES=3
SWARM_CONFIDENCE_THRESHOLD=0.7
SWARM_ANALYSIS_INTERVAL=5000
# Swarm Collective Intelligence Configuration
SWARM_AGGREGATION_METHOD=weighted_average
SWARM_CONSENSUS_THRESHOLD=0.67
SWARM_DIVERSITY_BONUS=0.1
SWARM_MEMORY_DECAY=0.95
# Content Security Policy (CSP) Configuration
# Report-only mode: logs violations but does not block resources (recommended for initial rollout)
# Set to "false" to enforce CSP and block violations
CSP_REPORT_ONLY=true
# CSP violation report endpoint (default: /api/csp-violation)
CSP_REPORT_URI=/api/csp-violation
# Advanced Restrictions (geo/time access control)
# Master switch — mounts advancedRestrictions middleware when true
ADVANCED_RESTRICTIONS_ENABLED=false
# Geo blocking via CDN/proxy country headers (CF-IPCountry, X-Country-Code)
GEO_RESTRICTIONS_ENABLED=false
GEO_BLOCKED_COUNTRIES=
# Maintenance window (hours in UTC, 0–23)
TIME_RESTRICTIONS_ENABLED=false
TIME_RESTRICTIONS_START_HOUR=0
TIME_RESTRICTIONS_END_HOUR=6
# Logging Configuration
LOG_LEVEL=debug
# Stellar Configuration
STELLAR_NETWORK=testnet
STELLAR_HORIZON_URL=https://horizon-testnet.stellar.org
STELLAR_RPC_URL=https://soroban-testnet.stellar.org
STELLAR_FEE=100
STELLAR_TIMEOUT=30000
STELLAR_MAX_RETRIES=3
# Deployed Soroban contract address (from `stellar contract deploy`)
CONTRACT_ADDRESS=
# Secret key of the account used to submit transactions (never commit a real key)
STELLAR_SECRET_KEY=
# Secret key of the account course payments are sent to (unified payments, Issue #391)
STELLAR_DISTRIBUTION_ACCOUNT=
# Stripe Configuration (unified payments — fiat rail, Issue #391)
STRIPE_SECRET_KEY=
STRIPE_PUBLISHABLE_KEY=
STRIPE_WEBHOOK_SECRET=
# Logging Configuration
LOG_LEVEL=debug
# Transaction Queue Configuration
TRANSACTION_QUEUE_BATCH_SIZE=10
TRANSACTION_QUEUE_PROCESSING_DELAY=2000
TRANSACTION_QUEUE_MAX_CONCURRENT=5
TRANSACTION_CONFIRMATION_TIMEOUT=300000
# Time-Locked Credential Configuration
EMERGENCY_ADMIN_ADDRESS=your-emergency-admin-address-here
TIMELOCK_NOTIFICATION_WINDOW=86400000
# Translation API Configuration
TRANSLATION_API_KEY=your-deepl-api-key-here
TRANSLATION_API_ENDPOINT=https://api.deepl.com/v2/translate
GLOSSARY_EDUCATION_ID=your-education-glossary-id
GLOSSARY_TECH_ID=your-tech-glossary-id
GLOSSARY_SUBTITLE_ID=your-subtitle-glossary-id
TRANSLATION_CACHE_TTL=2592000
TRANSLATION_QUALITY_THRESHOLD=0.85
# =============================================================================
# AGI Tutor RAG Pipeline Configuration (Issue #406)
# =============================================================================
# Vector store mode: "qdrant" (default) or "memory" (tests / no-Docker dev)
RAG_VECTOR_STORE=qdrant
QDRANT_URL=http://localhost:6333
QDRANT_COLLECTION=aethermint_course_content
RAG_EMBEDDING_DIM=768
RAG_TOP_K=5
RAG_CONFIDENCE_THRESHOLD=0.55
# Content indexing worker poll interval (ms)
RAG_INDEX_INTERVAL_MS=300000
# Optional LLM for answer generation. When unset, a deterministic
# extractive generator grounded in the retrieved passages is used.
OPENAI_API_KEY=
RAG_LLM_MODEL=gpt-4o-mini