[ 'key' => env('POSTMARK_API_KEY'), ], 'resend' => [ 'key' => env('RESEND_API_KEY'), ], 'ses' => [ 'key' => env('AWS_ACCESS_KEY_ID'), 'secret' => env('AWS_SECRET_ACCESS_KEY'), 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), ], 'slack' => [ 'notifications' => [ 'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'), 'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'), ], ], 'stripe' => [ 'webhook_secret' => env('STRIPE_WEBHOOK_SECRET'), // Secret key for the REST API. Blank means "not connected": the // catalogue sync says so and does nothing, rather than half-creating // products against an account that is not there. 'secret' => env('STRIPE_SECRET'), 'api_base' => env('STRIPE_API_BASE', 'https://api.stripe.com/v1'), ], /* * The mailbox customer replies land in. * * IMAP, not an API token: mailcow's API administers domains and mailboxes — * it does not read mail. Reading a mailbox is IMAP whoever runs the server, * and that is what this is. * * The password belongs in the vault (SecretVault 'inbound_mail.password'), * like every other credential that opens something. */ 'inbound_mail' => [ 'enabled' => env('INBOUND_MAIL_ENABLED', false), 'host' => env('INBOUND_MAIL_HOST'), // 993 is IMAPS. Plain 143 is deliberately not the default: this // connection carries a password and the customers' own words. 'port' => (int) env('INBOUND_MAIL_PORT', 993), 'username' => env('INBOUND_MAIL_USERNAME'), 'password' => env('INBOUND_MAIL_PASSWORD'), 'folder' => env('INBOUND_MAIL_FOLDER', 'INBOX'), // How much of one message we are willing to read. A mail with a 40 MB // attachment must not become 40 MB of memory in a queue worker; the // body we want is in the first few hundred kilobytes. 'max_bytes' => (int) env('INBOUND_MAIL_MAX_BYTES', 262144), ], 'monitoring' => [ 'url' => env('MONITORING_API_URL'), 'token' => env('MONITORING_API_TOKEN'), ], ];