Skip to content

Dev#11

Merged
usernane merged 41 commits into
mainfrom
dev
Jun 14, 2026
Merged

Dev#11
usernane merged 41 commits into
mainfrom
dev

Conversation

@usernane

Copy link
Copy Markdown
Member

No description provided.

Ibrahim BinAlshikh and others added 30 commits May 31, 2026 22:25
- 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
Ibrahim BinAlshikh and others added 11 commits June 11, 2026 00:46
- 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
@usernane usernane merged commit 0f6ed34 into main Jun 14, 2026
1 check passed
@usernane usernane deleted the dev branch June 14, 2026 16:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant