Files
yatm/entity/settings.proto
T
Samuel Cui 4fef653b71 Prepare YATM v1.0.0-alpha.2
Unify file queries and Scan execution, retain indexed Identical results,
improve Job and Preview workflows, and verify release packaging.
2026-10-05 19:08:49 +08:00

92 lines
2.8 KiB
Protocol Buffer

syntax = "proto3";
package yatm.v1;
option go_package = "github.com/samuelncui/yatm/entity;entity";
// Every Settings group uses the same read and replacement path. Values remain typed so adding a
// group extends this contract without exposing storage keys or unvalidated JSON.
service SettingsService {
rpc Get(GetSettingsRequest) returns (GetSettingsResponse) {}
rpc Update(UpdateSettingsRequest) returns (UpdateSettingsResponse) {}
}
enum SettingsGroup {
SETTINGS_GROUP_UNSPECIFIED = 0;
SETTINGS_GROUP_LIBRARY = 1;
SETTINGS_GROUP_PREVIEW = 2;
SETTINGS_GROUP_JOB = 3;
}
// Library preferences: what the Library shows and how it confirms removal.
message LibrarySettings {
bool include_unbacked_files = 1;
bool confirm_remove = 2;
}
// Executor preferences: how an attempt drives the pipeline its runner owns.
message JobSettings {
JobExecutionSettings execution = 1;
}
// Job pipeline batching, buffering and delivery cadence. Every limit is an ACP option: the read
// batch is the manifest page, and the read buffer, the result queue, the result batch and the
// flush interval are the engine's, so the result writer of an attempt only persists the batches
// ACP hands over.
message JobExecutionSettings {
int32 read_batch = 1;
int32 read_buffer_max = 2;
int32 write_buffer_max = 3;
int32 write_batch_size = 4;
int32 flush_interval_ms = 5;
}
// Generation preferences; storage paths remain deployment resources.
message PreviewSettings {
repeated PreviewGeneratorSettings generators = 1;
bool enabled = 2;
string command = 3;
int32 concurrency = 4;
int32 timeout_seconds = 5;
int64 max_input_pixels = 6;
}
// The generator routes and output choices frozen when a Job is created. Runtime limits and
// enablement remain live Settings and are intentionally absent.
message PreviewJobSettings {
repeated PreviewGeneratorSettings generators = 1;
}
message PreviewExtension {
string name = 1;
bool enabled = 2;
}
message PreviewGeneratorSettings {
bool enabled = 1;
repeated PreviewExtension extensions = 2;
oneof options {
ImagePreviewSettings image = 3;
VideoPreviewSettings video = 4;
}
}
message ImagePreviewSettings {
int32 max_width = 1;
int32 max_height = 2;
string format = 3;
int32 quality = 4;
}
message VideoPreviewSettings {
int32 poster_width = 1;
int32 poster_height = 2;
int32 timeline_width = 3;
int32 timeline_height = 4;
int32 timeline_interval_seconds = 5;
int32 timeline_max_frames = 6;
string format = 7;
int32 quality = 8;
}
message SettingsValue {
oneof value {
LibrarySettings library = 1;
PreviewSettings preview = 2;
JobSettings job = 3;
}
}
message GetSettingsRequest { SettingsGroup group = 1; }
message GetSettingsResponse { SettingsValue value = 1; }
message UpdateSettingsRequest { SettingsValue value = 1; }
message UpdateSettingsResponse { SettingsValue value = 1; }