save token

This commit is contained in:
Hanashi committed 2026-08-04 21:25:14 -04:00
1 parent 5d8bd1f6a6
commit a835935f97
15 files changed
+38

No files matched your search

@@ -14,6 +14,7 @@ use enums::common::visibility::Visibility;
use errors::AnyhowResult;
use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
@@ -71,6 +72,9 @@ pub struct InsertArgs<'a> {
// If batch generated, this is the batch token.
pub maybe_batch_token: Option<&'a BatchGenerationToken>,
// If produced by an inference job, the job that generated this file.
pub maybe_source_job_token: Option<&'a InferenceJobToken>,
// Storage details
pub public_bucket_directory_hash: &'a str,
pub maybe_public_bucket_prefix: Option<&'a str>,
@@ -165,6 +169,7 @@ pub async fn insert_media_file_generic(
maybe_scene_source_media_file_token: args.maybe_scene_source_media_file_token,
maybe_prompt_token: args.maybe_prompt_token,
maybe_batch_token: args.maybe_batch_token,
maybe_source_job_token: args.maybe_source_job_token,
public_bucket_directory_hash: args.public_bucket_directory_hash,
maybe_public_bucket_prefix: args.maybe_public_bucket_prefix,
maybe_public_bucket_extension: args.maybe_public_bucket_extension,
@@ -14,6 +14,7 @@ use enums::common::platform_type::PlatformType;
use enums::common::visibility::Visibility;
use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::model_weights::ModelWeightToken;
use tokens::tokens::prompts::PromptToken;
@@ -74,6 +75,9 @@ where
// If batch generated, this is the batch token.
pub maybe_batch_token: Option<&'a BatchGenerationToken>,
// If produced by an inference job, the job that generated this file.
pub maybe_source_job_token: Option<&'a InferenceJobToken>,
// Storage details
pub public_bucket_directory_hash: &'a str,
pub maybe_public_bucket_prefix: Option<&'a str>,
@@ -159,6 +163,7 @@ where
maybe_origin_filename = ?,
maybe_batch_token = ?,
maybe_source_job_token = ?,
maybe_mime_type = ?,
file_size_bytes = ?,
@@ -218,6 +223,7 @@ where
args.maybe_origin_filename,
args.maybe_batch_token.map(|t| t.as_str()),
args.maybe_source_job_token.map(|t| t.as_str()),
args.maybe_mime_type,
args.file_size_bytes,
@@ -99,6 +99,7 @@ pub async fn insert_media_file_generic_from_job(
is_user_upload: false, // NB: Jobs typically won't be user uploads. Maybe this becomes a param in the future(?)
maybe_audio_encoding: args.maybe_audio_encoding,
maybe_batch_token: args.maybe_batch_token,
maybe_source_job_token: Some(&args.job.inference_job_token),
maybe_creator_anonymous_visitor_token: args.job.maybe_creator_anonymous_visitor_token_typed.as_ref(),
maybe_creator_category_synthetic_id_category: args.maybe_creator_category_synthetic_id_category,
maybe_creator_file_synthetic_id_category: args.maybe_creator_file_synthetic_id_category,
@@ -13,6 +13,7 @@ use enums::common::generation_provider::GenerationProvider;
use enums::common::platform_type::PlatformType;
use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken;
use tokens::tokens::batch_generations::BatchGenerationToken;
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::prompts::PromptToken;
use tokens::tokens::users::UserToken;
@@ -75,6 +76,9 @@ pub struct MediaFileInsertBuilder {
// // If batch generated, this is the batch token.
maybe_batch_generation_token: Option<BatchGenerationToken>,
// If produced by an inference job, the job that generated this file.
maybe_source_job_token: Option<InferenceJobToken>,
// Cover image (e.g. thumbnail for 3D splats)
maybe_cover_image_media_file_token: Option<MediaFileToken>,
@@ -117,6 +121,7 @@ impl MediaFileInsertBuilder {
maybe_origin_filename: None,
maybe_engine_category: None,
maybe_batch_generation_token: None,
maybe_source_job_token: None,
maybe_cover_image_media_file_token: None,
public_bucket_directory_hash: None,
maybe_prompt_token: None,
@@ -263,6 +268,11 @@ impl MediaFileInsertBuilder {
self
}
pub fn maybe_source_job_token(mut self, maybe_job_token: Option<&InferenceJobToken>) -> Self {
self.maybe_source_job_token = maybe_job_token.cloned();
self
}
pub fn maybe_cover_image_media_file_token(mut self, maybe_token: Option<&MediaFileToken>) -> Self {
self.maybe_cover_image_media_file_token = maybe_token.cloned();
self
@@ -348,6 +358,7 @@ impl MediaFileInsertBuilder {
maybe_scene_source_media_file_token: None, // TODO
maybe_prompt_token: self.maybe_prompt_token.as_ref(),
maybe_batch_token: self.maybe_batch_generation_token.as_ref(),
maybe_source_job_token: self.maybe_source_job_token.as_ref(),
public_bucket_directory_hash: bucket_path.get_object_hash(),
maybe_public_bucket_prefix: bucket_path.get_optional_prefix(),
maybe_public_bucket_extension: bucket_path.get_optional_extension(),
@@ -108,6 +108,7 @@ pub async fn insert_media_file_from_studio_scene_render(
maybe_text_transcript: None,
maybe_origin_filename: None,
maybe_batch_token: None,
maybe_source_job_token: None, // NB: Studio renders are client-side, not job outputs.
maybe_prompt_token: None,
maybe_mod_user_token: None,
maybe_engine_category: None,
@@ -12,6 +12,7 @@ use enums::common::platform_type::PlatformType;
use enums::common::visibility::Visibility;
use tokens::tokens::anonymous_visitor_tracking::AnonymousVisitorTrackingToken;
use tokens::tokens::media_files::MediaFileToken;
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
use tokens::tokens::prompts::PromptToken;
use tokens::tokens::users::UserToken;
@@ -39,6 +40,9 @@ where
pub maybe_prompt_token: Option<&'a PromptToken>,
pub maybe_platform_type: Option<PlatformType>,
/// The generation job the cover belongs to.
pub maybe_source_job_token: Option<&'a InferenceJobToken>,
pub mysql_executor: E,
pub phantom: PhantomData<&'c E>,
}
@@ -95,6 +99,7 @@ where
is_user_upload: false,
maybe_audio_encoding: None,
maybe_batch_token: None,
maybe_source_job_token: args.maybe_source_job_token,
maybe_cover_image_media_file_token: None,
maybe_creator_category_synthetic_id: None,
maybe_creator_file_synthetic_id: None,
@@ -228,6 +228,7 @@ async fn download_and_store_one_image(
.maybe_frame_width(result.maybe_width)
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_class(MediaFileClass::Image)
.media_file_origin_category(MediaFileOriginCategory::Inference)
@@ -134,6 +134,7 @@ pub async fn process_successful_video_job(
.maybe_frame_width(maybe_frame_width)
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_class(MediaFileClass::Video)
.media_file_origin_category(MediaFileOriginCategory::Inference)
@@ -375,6 +375,7 @@ async fn download_and_upload_video(
.maybe_frame_width(maybe_frame_width)
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_class(MediaFileClass::Video)
.media_file_origin_category(MediaFileOriginCategory::Inference)
@@ -128,6 +128,7 @@ pub(crate) async fn attach_cover_image(
public_bucket_path: &public_upload_path,
maybe_origin_product_category,
maybe_prompt_token: job.maybe_prompt_token.as_ref(),
maybe_source_job_token: Some(&job.job_token),
maybe_platform_type: job.maybe_platform_type,
mysql_executor: &server_state.mysql_pool,
phantom: Default::default(),
@@ -113,6 +113,7 @@ pub async fn process_audio_payload(
.maybe_duration_millis(maybe_duration_millis)
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_class(MediaFileClass::Audio)
.media_file_origin_category(MediaFileOriginCategory::Inference)
@@ -162,6 +162,7 @@ async fn upload_single_image_bytes(
.maybe_creator_user(job.maybe_creator_user_token.as_ref())
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_class(MediaFileClass::Image)
.media_file_origin_category(MediaFileOriginCategory::Inference)
@@ -247,6 +247,7 @@ async fn upload_image_bytes(
.maybe_creator_user(job.maybe_creator_user_token.as_ref())
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_class(MediaFileClass::Image)
.media_file_origin_category(MediaFileOriginCategory::Inference)
@@ -211,6 +211,7 @@ pub(crate) async fn upload_mesh_file(
.maybe_creator_user(job.maybe_creator_user_token.as_ref())
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_origin_category(MediaFileOriginCategory::Inference)
.media_file_type(media_file_type)
@@ -137,6 +137,7 @@ pub async fn process_video_payload(
.maybe_frame_width(maybe_frame_width)
.maybe_generation_provider(Some(GenerationProvider::Artcraft))
.maybe_prompt_token(job.maybe_prompt_token.as_ref())
.maybe_source_job_token(Some(&job.job_token))
.maybe_platform_type(job.maybe_platform_type)
.media_file_class(MediaFileClass::Video)
.media_file_origin_category(MediaFileOriginCategory::Inference)