|
|
35d5baf7be
|
feat: thumbnail generator plugin with configurable size/format
- ThumbnailGeneratorPort in domain (bytes + config → resized bytes)
- adapters-thumbnail: ImageThumbnailGenerator using image crate
- ThumbnailGeneratorPlugin reads width/height/format/profile from step config
- PostgresDerivativeRepository + 012_derivatives migration
- Seeded in extract_metadata pipeline as step 2 (300x300 webp)
- Standalone generate_derivative pipeline for on-demand use
|
2026-05-31 20:44:55 +02:00 |
|
|
|
45669ec848
|
feat: real EXIF extraction via adapters-exif crate
- MetadataExtractorPort in domain (bytes → StructuredData)
- adapters-exif: NomExifExtractor using nom-exif, handles EXIF + TrackInfo
- Worker's MetadataExtractorPlugin delegates to port, no longer knows nom-exif
- Filters noisy binary tags (U8Array, Undefined, Unknown)
|
2026-05-31 20:28:50 +02:00 |
|
|
|
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 |
|
|
|
0b2237860e
|
refactor: introduce IngestTransaction port to reduce IngestAssetHandler from 7 to 4 ports
|
2026-05-31 18:44:51 +02:00 |
|
|
|
aa09aec66b
|
feat: event store — persist domain events to Postgres event_log table via composite publisher
|
2026-05-31 18:36:10 +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 |
|
|
|
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 |
|
|
|
de93373b43
|
refactor: restructure domain crate by bounded context
|
2026-05-31 04:44:48 +02:00 |
|
|
|
2b62d1ec81
|
fix: resolve clippy warnings in share_link, invite_code, asset_stack
|
2026-05-31 04:27:03 +02:00 |
|
|
|
b67e595280
|
domain: add Processing entities and ports (Job, JobBatch, Plugin, Pipeline)
|
2026-05-31 03:35:41 +02:00 |
|
|
|
ee79be0351
|
domain: add Sidecar Sync entities and ports (SidecarRecord, SidecarConfig, SidecarWriterPort)
|
2026-05-31 03:34:04 +02:00 |
|
|
|
ba53e0fa70
|
domain: add Sharing entities and ports (ShareScope, ShareTarget, ShareLink, InviteCode, VisibilityFilter)
|
2026-05-31 03:33:00 +02:00 |
|
|
|
1d3060fa12
|
domain: add Organization entities and ports (Album, Tag, Collection, FilterCriteria)
|
2026-05-31 03:31:33 +02:00 |
|
|
|
ccb61b72d7
|
domain: add Media Catalog ports and MetadataResolver service
|
2026-05-31 03:27:48 +02:00 |
|
|
|
147206d8a5
|
domain: add Media Catalog entities (Asset, Metadata, Stack, Derivative, Duplicate)
|
2026-05-31 03:27:41 +02:00 |
|
|
|
ed6eb0c28a
|
domain: add Storage ports (BYOS, Quota, LibraryPath) and QuotaChecker service
|
2026-05-31 03:23:38 +02:00 |
|
|
|
3c5c4ed9b1
|
domain: add Storage & Sources entities (StorageVolume, LibraryPath, IngestSession, Quota)
|
2026-05-31 03:23:34 +02:00 |
|
|
|
04811ff436
|
domain: add PermissionChecker service with additive role evaluation
|
2026-05-31 03:20:28 +02:00 |
|
|
|
cebb4cdaf1
|
domain: add Identity & Access ports (UserRepo, RoleRepo, GroupRepo, EventPublisher)
|
2026-05-31 03:20:22 +02:00 |
|
|
|
656da7e945
|
domain: add Identity & Access entities (User, Role, Permission, Group)
|
2026-05-31 03:20:18 +02:00 |
|
|
|
aa432e6594
|
domain: add domain errors, events, and services module scaffold
|
2026-05-31 03:16:40 +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 |
|