Files
simple-object-server/src/config.hpp
2025-05-25 15:11:13 +12:00

31 lines
944 B
C++

#ifndef CONFIG_HPP
#define CONFIG_HPP
#include <string>
#include <vector>
#include <filesystem>
namespace simple_object_storage {
struct ServerConfig {
std::vector<std::string> write_tokens;
std::filesystem::path object_store_path = "/data/storage";
std::string host = "0.0.0.0";
uint16_t port = 80;
// CORS configuration
std::vector<std::string> allowed_origins = {"*"}; // Default to allow all origins
std::vector<std::string> allowed_methods = {"GET", "PUT", "POST", "DELETE", "OPTIONS"};
std::vector<std::string> allowed_headers = {"Authorization", "Content-Type"};
bool allow_credentials = false;
// Rate limiting configuration
int auth_rate_limit = 5; // Maximum number of auth attempts
int auth_window_seconds = 300; // Time window in seconds (5 minutes)
};
bool load_config(const std::string& config_path, ServerConfig& config);
} // namespace simple_object_storage
#endif