Conversation
- ADR-0000: Template for future decisions - ADR-0001: Access::can() role resolution (fallback to SecurityPrincipal) - ADR-0002: Middleware dependency auto-resolution (BFS + topological sort)
…cted Root cause: TableFactory ignores ColOption::NAME and always uses propertyToKey() result. Fix: use explicit name when set, fallback to propertyToKey() for backward compatibility. Issue: WebFiori/database#159
- job-queue.md: dispatching, processing, retry, encryption, storage backends - event-dispatcher.md: events, listeners, built-in events, best practices - dependency-injection.md: bind, singleton, instance, auto-resolution - Update index.md: fix version string, add new topics to Advanced section
…Logging guides - security.md: SecurityContext, SecurityPrincipal, PreAuthorize, RequiresAuth, RBAC, ABAC policies - health-checks.md: HealthCheckInterface, registration, HTTP endpoint - caching.md: CacheFacade, cache-aside pattern, storage backends - built-in-middleware.md: rate limiting, CORS, CSRF, maintenance mode, HTTP caching, authorize - logging.md: FileLogger, levels, daily rotation, structured context - Update index.md with all new topics
5-step incremental refactor plan: 1. Move PUT/PATCH parsing into Request (#118) 2. Extract ErrorResponse helper (#119) 3. Extract OpenAPIGenerator (#120) 4. Create RequestProcessor (#121) 5. Deprecate WebServicesManager (#122) All steps are backward compatible with @deprecated on old APIs.
Two modes: - Mode 1: ServiceRouter::discover() — auto-register routes at boot - Mode 2: RouteOption::NAMESPACE — dynamic resolution at runtime Implementation steps: 1. ServiceRouter::discover() (#382) 2. RouteOption::NAMESPACE (#383) 3. DI container integration (#384) 4. services:list CLI command (#385) 5. Production caching (#386)
- ADR-0008: Auto-detect associative arrays during encoding - ADR-0009: Include null/false getter values + #[JsonIgnore] attribute - ADR-0010: Normalize getter-derived names + #[JsonProperty] attribute - ADR-0011: Typed deserialization with nested object hydration References: WebFiori/json#56, WebFiori/json#57, WebFiori/json#58, WebFiori/json#59
…isions - ADR-0012: Remove error suppression during getter calls - ADR-0013: Deprecate global constants in favor of Json::setDefaults() - ADR-0014: Serialize INF/NaN as strings (never crash philosophy) - ADR-0015: Only support get* prefix for auto-mapping References: WebFiori/json#60, WebFiori/json#61
ADR-0022: Email instance is single-use (not reusable after send) ADR-0023: Transport abstraction with backward-compatible introduction
- Add CacheSessionStorage (Redis/file-cache) documentation - Fix outdated gc() signature in custom storage example - Add HealthCheck::getChecks() and afterAll() API docs - Add migrations:step command to CLI reference
Dependencies declared via getDependencies() are now auto-resolved from the registry. Only the leaf middleware needs to be assigned.
- Note that dependencies take precedence over priority - Fix inaccurate tie-breaking claim (was alphabetical, now assignment order)
Discovery now also registers: - WebService subclasses without #[RestController] (uses getName()) - WebServicesManager subclasses (registered as manager routes)
- Add ServiceRouter::discover(), dynamic(), and services:list docs - Add recursive scanning and kebab-case path derivation - Update routing.md API Route section with modern approach - Add ServiceRouter and RequestProcessor to main classes table - Keep traditional WebServicesManager docs alongside (not deprecated)
- env-vars.md: add ROUTE_CACHE_ENABLED, CACHE_KEY, CACHE_ENCRYPTION_* vars - command-line-interface.md: add migrations:step/skip, routes:cache/clear, services:list - caching.md: add route caching section - introduction.md: update features for v3 (security, DI, health, ServiceRouter, job queue) - folder-structure.md: add Health/ and Policies/ directories - index.md: add route caching to caching link
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.