a4cc75d697
fix(queue): add explicit tries and timeout to SendClientSecurityAlertMail (F-2026-0007)
2026-08-26 10:10:52 +02:00
be13421b7a
fix(security): make nonce validation and consumption atomic via CacheRepository add (F-2026-0008)
2026-08-26 10:01:43 +02:00
daa8d1e0fa
refactor(cache): implement graceful degradation for BrandCache
2026-08-25 08:26:58 +02:00
0766e9dc8f
refactor(repository): make entity deletion idempotent
2026-08-25 08:26:55 +02:00
e31767cfd0
refactor(brand): make ArcadiaId strictly string value extending EntityId
2026-08-24 21:45:04 +02:00
6d63e68908
feat(infra): add HasUuidV7CreatedAt trait to derive created_at from UUIDv7
2026-08-21 16:11:56 +02:00
37bd6cdbdd
feat(shared): implement PSR-20 Clock contract, Utc facade, and RFC3339 normalization
2026-08-21 15:45:32 +02:00
1df3a27c98
feat(config): introduce typed configuration objects, dedicated value objects and enforce global class referencing
2026-08-21 15:01:36 +02:00
a82a1558bd
feat(security): add arcadia:security:audit-logs CLI command with CSV export and typed audit details
2026-08-21 14:30:20 +02:00
61073f4fcd
feat(security): add database audit logging and asynchronous markdown email alerts for api client actions
2026-08-21 12:07:13 +02:00
709568f1ed
feat(brand): handle on-demand brand renaming with BrandRenamed event and historical preservation
2026-08-21 11:36:37 +02:00
cc368c7102
feat(brand): add dedicated BrandCache service, event invalidation, and persist brand name locally
2026-08-21 11:27:32 +02:00
dc83df4105
feat(security): add audit log listeners and tests for client secret and status events
2026-08-21 11:09:25 +02:00
abe60df95f
feat(event): implement BrandCreated event and listeners
...
- Added BrandCreated event to encapsulate brand creation details.
- Created LogBrandCreated listener to log brand creation events.
- Updated BrandResolver to dispatch BrandCreated event upon new brand creation.
- Introduced EventServiceProvider to register event listeners.
- Added unit tests for BrandCreated event and LogBrandCreated listener.
2026-08-21 09:45:06 +02:00
8f933db9fa
feat(inco): migrate to IncoBrand VO, BrandResolver domain service and BrandCode filtering
2026-08-20 18:16:31 +02:00
20ec692160
feat(infra): add Brand Eloquent models, migrations, casts, adapters and seeders
2026-08-20 17:35:42 +02:00
6be00bb21e
refactor(domain): make read-only entity constructors private and introduce hydrate static methods
2026-08-20 15:05:33 +02:00
4d68a97889
feat(security): derive client createdAt from UUIDv7 and add HasTimestampIdentifier interface
2026-08-20 12:53:07 +02:00
c8a46bb9b3
fix(shared): harmonize delete exception contracts on Repository and ClientRepository (LSP)
2026-08-20 09:48:10 +02:00
98356465d5
fix(infra): align since filter in InMemoryEmployeeDirectory with Eloquent adapter (LSP)
2026-08-20 09:45:11 +02:00
e7904682b6
feat(infra): add ApiClient Eloquent model, repository adapter, security services, migrations, seeders and tests
2026-08-18 12:03:29 +02:00
5c10d51fba
feat(infra): add in-memory directory and repository doubles with unit tests and refactor usecase tests to pure black-box
2026-08-18 11:54:47 +02:00
13091c4ec6
build: require php ^8.5 and remove league/uri dependency
2026-08-17 09:32:49 +02:00
ac552a4530
refactor: adopt native PHP 8.5 \Uri\Rfc3986\Uri for request URIs and pagination links
2026-08-17 09:30:21 +02:00
05ececd879
feat(RequestHelper): add pagination and URI conversion methods
...
Implement pagination logic and methods to convert request URLs to League URI instances.
2026-08-13 14:52:51 +02:00