Індекс env-змінних
AWS SSM Parameter Store — основний store
Section titled “AWS SSM Parameter Store — основний store”Префікси:
| Префікс | Сервіс | Кількість ключів |
|---|---|---|
/abitly/dev/backend/ | Abitly API dev | ~60 |
/abitly/prod/backend/ | Abitly API prod | ~40 |
/abitly/dev/frontend/ | Abitly Web dev | ~10 |
/abitly/prod/frontend/ | Abitly Web prod | TODO: |
/abitly/prod/strapi/ | Strapi | ~20 |
/studsearch/prod/ | Studsearch backend | ~17 |
/abitly-{prod,dev}/tg-bot/ | Telegram bot (тільки BOT_TOKEN, DB_PASSWORD) | 2 |
Типи: String (відкритий конфіг), SecureString (шифрується KMS).
Доступ:
aws ssm describe-parameters --profile abitly --region eu-central-1 \ --parameter-filters 'Key=Name,Option=BeginsWith,Values=/abitly/prod/backend/' \ --query 'Parameters[].Name' --output text
aws ssm get-parameter --name '/abitly/prod/backend/DB_HOST' \ --profile abitly --region eu-central-1 --query 'Parameter.Value' --output text# Для SecureString додай --with-decryptionКонкретні ключі — за категоріями (Abitly API)
Section titled “Конкретні ключі — за категоріями (Abitly API)”БД (підключення до shared Postgres)
Section titled “БД (підключення до shared Postgres)”DATABASE_URL, DB_HOST, DB_PORT, DB_USERNAME, DB_PASSWORD, DB_NAME, DB_SCHEMA, DB_SSL
Cache / queue (Valkey)
Section titled “Cache / queue (Valkey)”REDIS_URL, REDIS_HOST, REDIS_PORT, CACHE_TTL
ACCESS_JWT_SECRET, ACCESS_JWT_TTL, REFRESH_JWT_SECRET, REFRESH_JWT_TTL, JWT_TEMP_SECRET, JWT_TEMP_TTL
Google OAuth
Section titled “Google OAuth”GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, GOOGLE_REDIRECT_URI
Email (SMTP)
Section titled “Email (SMTP)”SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM, SMTP_SECURE
Strapi-integration
Section titled “Strapi-integration”STRAPI_API_TOKEN, STRAPI_BASE_URL, STRAPI_WEBHOOK_SECRET
Telegram
Section titled “Telegram”TELEGRAM_BOT_TOKEN, TELEGRAM_LOGGER_BOT_TOKEN, TELEGRAM_LOG_CHAT_ID
MONOBANK_TOKEN, SUBSCRIPTION_WEBHOOK_URL, PREMIUM_WEBHOOK_URL, TOKEN_PURCHASE_WEBHOOK_URL, SUBSCRIPTION_REDIRECT_URL, PREMIUM_REDIRECT_URL, TOKEN_PURCHASE_REDIRECT_URL
SEARCH_ENGINE, TYPESENSE_HOST, TYPESENSE_PORT, TYPESENSE_PROTOCOL, TYPESENSE_API_KEY
Tutor (зовнішній сервіс)
Section titled “Tutor (зовнішній сервіс)”TUTOR_BASE_URL, TUTOR_SERVICE_SECRET, TUTOR_REQUEST_TIMEOUT_MS
Rate limit (prod)
Section titled “Rate limit (prod)”RATE_LIMIT_DEFAULT_TTL, RATE_LIMIT_DEFAULT_LIMIT, RATE_LIMIT_INCREASED_LIMIT, RATE_LIMIT_OFFERS_LIMIT
Внутрішнє/інфра
Section titled “Внутрішнє/інфра”ENCRYPTION_KEY, ADMIN_API_KEY, MCP_API_KEY, SWAGGER_ACCESS_PASSWORD, PROMETHEUS_PASSWORD, STAGE, NODE_ENV, PORT, DOMAIN, API_PUBLIC_URL, ALLOWED_METHODS, ERROR_LOGGER_TYPE, E2E_TEST_AUTH_ENABLED, SEND_OFFERS_UPDATE_NOTIFICATION_TOKEN
Strapi prod (/abitly/prod/strapi/)
Section titled “Strapi prod (/abitly/prod/strapi/)”DATABASE_CLIENT, DATABASE_HOST, DATABASE_PORT, DATABASE_NAME, DATABASE_SCHEMA, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_SSL, DATABASE_SSL_REJECT_UNAUTHORIZED, DATABASE_CA, HOST, PUBLIC_URL, NODE_ENV, APP_KEYS, JWT_SECRET, ADMIN_JWT_SECRET, S3_BUCKET, S3_REGION, UPLOAD_PROVIDER, ORIGIN_KEY, ORIGIN_CERT, ORIGIN_PULL_CA, WEBHOOK_SECRET
Studsearch backend (/studsearch/prod/)
Section titled “Studsearch backend (/studsearch/prod/)”db/host, db/port, db/name, db/schema, db/username, db/password, db/ssl, db/synchronize, db/master_password, cache/duration, abitly_url, deploy_url, local_url, front_urls, session/ttl, telegram/bot_token, telegram/bot_username
Frontend (/abitly/{env}/frontend/)
Section titled “Frontend (/abitly/{env}/frontend/)”NEXT_PUBLIC_API_URL, NEXT_PUBLIC_STRAPI_API_URL, NEXT_PUBLIC_STUDSEARCH_API_URL, NEXT_PUBLIC_ANALYTICS_COLLECTOR_URL, NEXT_PUBLIC_TELEGRAM_BOT_URL, NEXT_PUBLIC_URL, NEXT_PUBLIC_DISABLE_PROMOTIONS, DEV_HTTP_USER, DEV_HTTP_PASS, DISABLE_ESLINT_PLUGIN, ESLINT_NO_DEV_ERRORS
Telegram bot — ECS task-definition + SSM (/abitly-{prod,dev}/tg-bot/)
Section titled “Telegram bot — ECS task-definition + SSM (/abitly-{prod,dev}/tg-bot/)”Telegram bot переїхав з Railway на AWS ECS Fargate, тож його env більше не в Railway.
SSM SecureString (лише 2 секрети на середовище), /abitly-prod/tg-bot/ та /abitly-dev/tg-bot/:
BOT_TOKEN, DB_PASSWORD
Решта env — звичайні (plain) змінні прямо в ECS task-definition (не SSM), за категоріями:
Telegram
Section titled “Telegram”ADMIN_IDS, ACCOUNT_LINK_URL, SEND_MAX_CONCURRENCY, SEND_RATE_PER_SECOND, DEFAULT_TELEGRAM_MESSAGE_MAX_RETRY, DEFAULT_TELEGRAM_MESSAGE_RETRY_DELAY_MS
Postgres
Section titled “Postgres”DB_HOST, DB_PORT, DB_USERNAME, DB_NAME, DB_SCHEMA, DB_SSL, DB_CA_FILE
REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, REDIS_DB
Logging
Section titled “Logging”LOG_LEVEL, LOG_SCHEMA, LOG_MESSAGES_ENABLED
Runtime
Section titled “Runtime”PORT, TZ
CRM/Support bot — Lambda env + SSM (/abitly/prod/crm-bot/)
Section titled “CRM/Support bot — Lambda env + SSM (/abitly/prod/crm-bot/)”CRM/Support bot — env прямо на Lambda abitly-crm-bot (us-east-1):
BOT_TOKEN, WEBHOOK_SECRET, GROUP_CHAT_ID, TABLE_NAME, META_ACCESS_TOKEN, META_APP_SECRET, META_VERIFY_TOKEN, META_GRAPH_HOST, META_API_VERSION
SSM SecureString (резерв/перевипуск Meta-токенів), /abitly/prod/crm-bot/:
META_PAGE_TOKEN, META_APP_SECRET, META_LONG_USER_TOKEN
Railway variables
Section titled “Railway variables”На Railway лишився тільки Telegram Mini App (project «Abitly-Telegram», service «Telegram Webapp») — його змінні в project variables Railway, не в AWS SSM. Огляд:
# через railway MCP (немає прямого list-variables — взяти з логів deploy або service settings UI)TODO: зібрати повний перелік Mini App vars з Railway dashboard.
AWS Secrets Manager
Section titled “AWS Secrets Manager”Використовується мінімально (тільки 2 секрети, обидва для yangon-* стеку поза скоупом). Усі секрети Abitly/Studsearch — у SSM SecureString.