Перейти к содержимому

Значения полей библиотек: чтение и обновление

Кастомные поля библиотек документов используют тот же контракт, что и поля списков: те же типы, те же форматы JSON, ключи UUID в ответах и UUID/internal_name при записи.

Библиотека не становится списком: системные колонки (name, item_type, file_size, …) живут в таблице файлов, кастомные — в library_files.field_values.

  • GET /libraries/{id}fields[]
  • GET /libraries/{id}/fields — то же
  • CRUD полей: portal admin + edit. См. API библиотек.

Ответы GET /files, GET /files/{fileRef}, upload и create folder включают field_values с ключами UUID.

ОперацияОбязательные поля
Upload / create folderНе блокируют загрузку: файл сначала, свойства потом
PATCH /files/{fileRef} с fieldValuesMerge + проверка required после merge
PATCH только name / parentIdfield_values не трогает, required не проверяет

Версии файлов (library_file_versions) — только бинарник. Restore версии не откатывает поля. Корзина сохраняет field_values и схему library_fields.

var file = await ctx.Libraries.GetLibraryFileAsync(libraryId, fileRef, ct);
var status = file.GetString("status");
file["status"] = "Готово";
await file.UpdateAsync(ct);

Event Receiver: var file = await context.GetLibraryFileAsync(api, ct);
Timer Job: api.Libraries.GetLibraryFileAsync(libraryId, fileRef, ct).

Фильтр: LibraryFileQueryBuilder.ForLibrary(id).WhereField("status", b => b.Eq("Готово")).