3131 */
3232class ApiConfig
3333{
34+ /** @var bool */
3435 private bool $ authEnabled ;
36+ /** @var string */
3537 private string $ authMethod ;
38+ /** @var list<string> */
3639 private array $ apiKeys ;
40+ /** @var string */
3741 private string $ apiKeyRole ;
42+ /** @var array<string,string> */
3843 private array $ basicUsers ;
44+ /** @var bool */
3945 private bool $ useDatabaseAuth ;
46+ /** @var string */
4047 private string $ jwtSecret ;
48+ /** @var int */
4149 private int $ jwtExpiration ;
50+ /** @var string */
4251 private string $ jwtAlgorithm ;
52+ /** @var array<string,array{tables:list<string>,actions:list<string>}> */
4353 private array $ roles ;
54+ /** @var array<string,string> */
4455 private array $ userRoles ;
56+ /** @var array{enabled:bool,requests_per_minute:int,requests_per_hour:int,requests_per_day:int} */
4557 private array $ rateLimitConfig ;
58+ /** @var array{enabled:bool,log_requests:bool,log_responses:bool,log_errors:bool} */
4659 private array $ loggingConfig ;
60+ /** @var array{enabled:bool} */
4761 private array $ monitoringConfig ;
4862
4963 /**
@@ -169,6 +183,9 @@ public function getAuthMethod(): string
169183 /**
170184 * Get valid API keys
171185 */
186+ /**
187+ * @return list<string>
188+ */
172189 public function getApiKeys (): array
173190 {
174191 return $ this ->apiKeys ;
@@ -185,6 +202,9 @@ public function getApiKeyRole(): string
185202 /**
186203 * Get basic auth users
187204 */
205+ /**
206+ * @return array<string,string>
207+ */
188208 public function getBasicUsers (): array
189209 {
190210 return $ this ->basicUsers ;
@@ -225,6 +245,9 @@ public function getJwtAlgorithm(): string
225245 /**
226246 * Get all roles configuration
227247 */
248+ /**
249+ * @return array<string,array{tables:list<string>,actions:list<string>}>
250+ */
228251 public function getRoles (): array
229252 {
230253 return $ this ->roles ;
@@ -233,6 +256,9 @@ public function getRoles(): array
233256 /**
234257 * Get user role mappings
235258 */
259+ /**
260+ * @return array<string,string>
261+ */
236262 public function getUserRoles (): array
237263 {
238264 return $ this ->userRoles ;
@@ -249,6 +275,9 @@ public function getUserRole(string $username): ?string
249275 /**
250276 * Get rate limit configuration
251277 */
278+ /**
279+ * @return array{enabled:bool,requests_per_minute:int,requests_per_hour:int,requests_per_day:int}
280+ */
252281 public function getRateLimitConfig (): array
253282 {
254283 return $ this ->rateLimitConfig ;
@@ -257,6 +286,9 @@ public function getRateLimitConfig(): array
257286 /**
258287 * Get logging configuration
259288 */
289+ /**
290+ * @return array{enabled:bool,log_requests:bool,log_responses:bool,log_errors:bool}
291+ */
260292 public function getLoggingConfig (): array
261293 {
262294 return $ this ->loggingConfig ;
@@ -265,6 +297,9 @@ public function getLoggingConfig(): array
265297 /**
266298 * Get monitoring configuration
267299 */
300+ /**
301+ * @return array{enabled:bool}
302+ */
268303 public function getMonitoringConfig (): array
269304 {
270305 return $ this ->monitoringConfig ;
@@ -281,6 +316,9 @@ public function isMonitoringEnabled(): bool
281316 /**
282317 * Convert to array (for backward compatibility)
283318 */
319+ /**
320+ * @return array<string,mixed>
321+ */
284322 public function toArray (): array
285323 {
286324 return [
0 commit comments