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
This commit is contained in:
2026-05-31 20:12:42 +02:00
parent b5cda3afeb
commit d1c7243f5b
19 changed files with 127 additions and 71 deletions

View File

@@ -1,8 +1,8 @@
use std::sync::Arc;
use adapters_postgres::{
PgPool, PostgresAssetMetadataRepository, PostgresAssetRepository,
PostgresDuplicateRepository, PostgresIngestTransaction,
PgPool, PostgresAssetMetadataRepository, PostgresAssetRepository, PostgresDuplicateRepository,
PostgresIngestTransaction,
};
use adapters_storage::LocalFileStorage;
use application::catalog::{

View File

@@ -1,11 +1,8 @@
use std::sync::Arc;
use adapters_postgres::{
PgPool, PostgresShareRepository, PostgresVisibilityFilterRepository,
};
use adapters_postgres::{PgPool, PostgresShareRepository, PostgresVisibilityFilterRepository};
use application::sharing::{
AccessSharedResourceHandler, GenerateShareLinkHandler, RevokeShareHandler,
ShareResourceHandler,
AccessSharedResourceHandler, GenerateShareLinkHandler, RevokeShareHandler, ShareResourceHandler,
};
use domain::ports::EventPublisher;
use presentation::state::SharingHandlers;

View File

@@ -19,8 +19,10 @@ pub fn build(pool: &PgPool) -> (StorageRepos, StorageHandlers) {
let ledger_repo = Arc::new(PostgresUsageLedgerRepository::new(pool.clone()));
let register_volume = Arc::new(RegisterVolumeHandler::new(volume_repo.clone()));
let register_library_path =
Arc::new(RegisterLibraryPathHandler::new(volume_repo, path_repo.clone()));
let register_library_path = Arc::new(RegisterLibraryPathHandler::new(
volume_repo,
path_repo.clone(),
));
let check_quota = Arc::new(CheckQuotaHandler::new(quota_repo, ledger_repo));
let handlers = StorageHandlers {