d1c7243f5b
feat: seed default plugins/pipelines, auto-enqueue jobs on asset ingest
...
- Migration seeds metadata_extractor, sidecar_sync, no_op plugins
- Pipelines: extract_metadata → metadata_extractor, sync_sidecar → sidecar_sync
- Worker reacts to AssetIngested → enqueues ExtractMetadata job
- Worker reacts to SidecarSyncRequested → enqueues SyncSidecar job
- Closes the ingest-to-processing loop end-to-end
2026-05-31 20:12:42 +02:00
b5cda3afeb
feat: add VisibilityFilteredAssetRepository decorator for automatic access control on asset queries
2026-05-31 19:06:49 +02:00
0b2237860e
refactor: introduce IngestTransaction port to reduce IngestAssetHandler from 7 to 4 ports
2026-05-31 18:44:51 +02:00
0e9911ebfc
feat: event infrastructure — payload, transport, NATS adapter
...
- EventPublisher now takes &DomainEvent (11 call sites + 3 impls updated)
- EventEnvelope + EventConsumer port in domain
- event-payload: serializable DomainEvent mirror with subject routing
- event-transport: generic Transport/MessageSource traits, publisher/consumer adapters
- adapters-nats: JetStream publish + durable pull consumer
2026-05-31 11:50:16 +02:00
dacfc3d453
feat: worker plugin system — domain ports, pipeline executor, built-in plugins
...
- PluginExecutor + PluginRegistry ports in domain
- ExecutePipelineCommand orchestrates job→pipeline→plugin steps
- ProcessNextJobCommand polls + executes next queued job
- InMemoryPluginRegistry, NoOp/MetadataExtractor/SidecarSync plugins
- Worker main rewritten with poll loop, factories module for DI
- Deleted template job/runner/jobs remnants
2026-05-31 11:35:05 +02:00
2d9dd2c2d0
refactor: clean up presentation layer — AppState grouping, multipart extractor, thin handlers
2026-05-31 06:14:19 +02:00
34b231a8f6
refactor: move business logic out of presentation — ReadAssetFile, checksum, auth checks, MetadataValue conversions
2026-05-31 06:10:07 +02:00
c2ebca0da0
style: cargo fmt --all
2026-05-31 05:31:42 +02:00
4b31a0f74b
app: add sidecar sync commands (export, detect, import, resolve, full export/import)
2026-05-31 05:29:03 +02:00
d1394ce7bb
app: add organization + sharing commands/queries
2026-05-31 05:17:51 +02:00
536bf3463a
app: add catalog commands/queries (RegisterAsset, UpdateMetadata, GetTimeline, GetAsset)
2026-05-31 05:13:47 +02:00
4549d746c3
app: add storage commands/queries + missing in-memory test repos
2026-05-31 05:11:02 +02:00
fa36bb8c0e
refactor: restructure application to CQRS, update api-types + presentation
...
- application: replace flat use_cases/ with identity/{commands,queries}/ and organization/commands/
- each use case now split into Command/Query struct + Handler struct
- api-types: add username to RegisterRequest/UserResponse, add CreateAlbumRequest/AlbumResponse
- presentation: update state, handlers, factory to use new handler types
- tests: restructured to match CQRS module layout, added get_profile tests
2026-05-31 05:00:34 +02:00
d62d8157a8
refactor: move template use cases into identity module, clean up application structure
2026-05-31 04:49:55 +02:00
51fa62fdef
app: add core use cases (RegisterUser, CreateAlbum) with TDD
2026-05-31 04:25:47 +02:00
294626db72
app: add in-memory test fakes for all critical ports
2026-05-31 04:25:40 +02:00
cebb4cdaf1
domain: add Identity & Access ports (UserRepo, RoleRepo, GroupRepo, EventPublisher)
2026-05-31 03:20:22 +02:00
3571c94bec
domain: add cross-cutting value objects (SystemId, DateTimeStamp, Checksum, StructuredData)
2026-05-31 03:16:28 +02:00
f9cb142c3b
init: scaffold from k-template with postgres + worker
2026-05-31 03:08:38 +02:00