0e6aa52f2e
ci: install and enable pcov in tests_laravel job for code coverage
2026-08-21 16:56:21 +02:00
a395037058
ci: replace deprecated qa image with composer:2.10 and quote deploy credentials
2026-08-21 16:52:29 +02:00
4421d34a43
feat(health): implement strictly-typed health check subsystem with DB, cache, and SMTP checks
2026-08-21 16:47:14 +02:00
8e7d3e1dca
docs: update OpenAPI spec and Bruno collection for RFC 3339 UTC and health check
2026-08-21 16:47:10 +02:00
bb11d7aa78
fix(console): provide explicit escape parameter to fputcsv to prevent deprecation
2026-08-21 16:17:55 +02:00
891b21ba61
test(security): add unit tests for audit entities, presenter, and ClientConsoleResolver
2026-08-21 16:16:26 +02:00
4a3d0c46a8
docs: add 05-temps-et-base-de-donnees guide and update architecture documentation
2026-08-21 16:13:39 +02:00
5c49b2cc4f
feat(infra): attach HasUuidV7CreatedAt trait to Brand, ApiClient, and ClientAuditLog models
2026-08-21 16:12:01 +02:00
6d63e68908
feat(infra): add HasUuidV7CreatedAt trait to derive created_at from UUIDv7
2026-08-21 16:11:56 +02:00
05af05e171
refactor(database): migrate all timestamp columns to dateTime across migrations
2026-08-21 16:11:54 +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
0063727790
refactor(tests): fix IncoSheets directory casing
2026-08-21 14:31:14 +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
0d2b0124ee
docs(architecture): add global architecture documentation for Arcadia API
...
docs(architecture): add request lifecycle documentation for Arcadia API
docs(architecture): add execution, transactions, and domain events documentation for Arcadia API
docs(architecture): add guide for creating a new use case in Arcadia API
docs(exceptions): summarize exception handling and HTTP status codes in Arcadia API
docs(tests): outline testing strategy and conventions for Arcadia API
style(openapi): correct description formatting in OpenAPI documentation
chore: remove outdated exceptions documentation
test: remove obsolete tests documentation
2026-08-21 10:41:07 +02:00
20ae9a2307
feat(event): implement TransactionalDomainEventDispatcher with post-commit release
2026-08-21 10:28:36 +02:00
95f10be9d4
style(tests): fix namespace casing in IncoSheetTestBuilder and IncoSheetMother
2026-08-21 10:23:54 +02:00
5e4e2f5faf
fix(security): lock HMAC dev bypass strictly to false in production
2026-08-21 10:14:55 +02:00
62289d2222
refactor(domain): introduce Domain Builders for IncoComposition and IncoSheet
2026-08-21 10:13:43 +02:00
fcbd2aa9c0
refactor(inmemory): simplify filtering and sorting logic
...
Refactor the findAll method by extracting filtering and sorting logic into dedicated private methods for better readability and maintainability.
2026-08-21 09:55:09 +02:00
fcf184dd1d
refactor(presenter): remove unused BrandItem import
...
Cleaned up the BrandsIndexView and BuilderStepPresenter by removing unused imports.
2026-08-21 09:45:33 +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
9c2c109d51
feat(usecase): add Transactional interface and update use cases
...
- Implemented Transactional interface for use cases requiring database transactions.
- Updated CreateClient, RegenerateClientSecret, and SetClientStatus to implement Transactional.
- Modified LaravelExecutor to handle transactional use cases appropriately.
- Enhanced tests for LaravelExecutor to cover transactional behavior.
2026-08-21 09:38:29 +02:00
aca627ff78
test(presentation): add missing unit tests for API and Console presenters
2026-08-20 18:22:20 +02:00
b26baaaf86
test(infra): add integration tests for EloquentBrandRepository, EloquentIncoSheetDirectory and EloquentIncoShortSheetDirectory
2026-08-20 18:16:42 +02:00
8f933db9fa
feat(inco): migrate to IncoBrand VO, BrandResolver domain service and BrandCode filtering
2026-08-20 18:16:31 +02:00
2617d41ef3
chore(tests): run Pest tests in parallel
...
Updated test commands to run Pest tests in parallel for improved performance.
2026-08-20 17:47:40 +02:00
1f8f03e6d8
feat(brand): add Brand use cases, API v1 endpoints, console command, OpenAPI spec and Bruno collection
2026-08-20 17:35:47 +02:00
20ec692160
feat(infra): add Brand Eloquent models, migrations, casts, adapters and seeders
2026-08-20 17:35:42 +02:00
a42a79861d
feat(domain): add Brand entity, value objects, ports, and generator & resolver domain services
2026-08-20 17:35:38 +02:00
8cfd5fbe0f
refactor(console): scope client artisan commands under arcadia prefix
2026-08-20 17:35:31 +02:00
6f35e031fa
refactor(presentation): remove authorize method from FormRequests in favor of middleware filters
2026-08-20 17:35:26 +02:00
6be00bb21e
refactor(domain): make read-only entity constructors private and introduce hydrate static methods
2026-08-20 15:05:33 +02:00
66fc714ca0
refactor(security): update exception handling to use value objects
...
Refactor exception handling in ClientNameAlreadyExistsException and ClientNotFoundException
to utilize value objects directly, improving type safety and clarity.
2026-08-20 14:30:09 +02:00
4d68a97889
feat(security): derive client createdAt from UUIDv7 and add HasTimestampIdentifier interface
2026-08-20 12:53:07 +02:00
9c28cf2903
refactor(database): add timestamps to ApiClient and Employee models
...
Updated ApiClient and Employee models to include created_at and updated_at fields for better tracking of records.
2026-08-20 12:08:15 +02:00
f3b84c725d
refactor(migration): enhance comments for api_clients table fields
...
Improved clarity of comments for identifier, secret, and is_active fields.
2026-08-20 11:46:46 +02:00
f9364a8960
docs(Arcadia): add JSON examples for INCO legacy API
...
Added example JSON files for INCO API endpoints to provide clear references for data structure and expected values.
2026-08-20 11:46:37 +02:00
15e58526a8
refactor(security): clarify exception namespace in ClientRepository
...
Updated the exception namespace for better clarity and consistency.
2026-08-20 11:33:59 +02:00
15a0ff55a3
refactor(security): segregate ClientDirectory and ClientRepository ports (ISP)
2026-08-20 10:02:17 +02:00
c8a46bb9b3
fix(shared): harmonize delete exception contracts on Repository and ClientRepository (LSP)
2026-08-20 09:48:10 +02:00
2bbfc7fa08
fix(shared): prevent cross-type equality in EntityId::equals (LSP)
2026-08-20 09:45:54 +02:00
98356465d5
fix(infra): align since filter in InMemoryEmployeeDirectory with Eloquent adapter (LSP)
2026-08-20 09:45:11 +02:00
ed7ce3ec32
refactor(console): remove redundant view docblock above UsecaseBuilder
2026-08-18 18:47:18 +02:00
341b57c3bf
feat(console): migrate interactive console commands to Laravel Prompts
2026-08-18 18:46:31 +02:00
7f57f16425
refactor(console): extract private methods for input extraction in command handle methods
2026-08-18 18:26:46 +02:00