Загружен шрифт по умолчанию с поддержкой набора символов latin-ext (#6869).
Обновлено регулярное выражение для CAST в запросе просмотра, чтобы правильно распознавать многострочные выражения (#6860; спасибо @azat-ismagilov).
Обновлены зависимости Go и npm.
json_each
/json_array_length
для правильной проверки значений массива (#6835).Запись по умолчанию тела ответа для *Request
хуков, обернутых в транзакцию, после завершения связанной транзакции для передачи ошибки транзакции (#6462).
Обновлено app.DB()
для автоматического перенаправления сырых SQL-запросов записи в пулы базы данных без конкурентного доступа (#6689).
Для редких случаев, когда это необходимо, пользователи все еще могут явно указать конкретный пул с помощью app.ConcurrentDB()
/app.NonconcurrentDB()
.
⚠️ Изменено максимальное значение по умолчанию для поля json
на 1 МБ.
Пользователи все еще могут изменить это значение в опциях поля коллекции, но стоит помнить, что хранение больших строк/бинарных данных в базе данных известно как источник производительности и следует избегать, когда это возможно.- ⚠️ Устаревшая и замененная функция filesystem.System.GetFile(fileKey)
на filesystem.System.GetReader(fileKey)
для избежания путаницы с filesystem.File
.
Старая функция продолжит работать до версии v0.29.0, но будет выдано предупреждение в консоли для замены на GetReader
.
Добавлена новая функция filesystem.System.GetReuploadableFile(fileKey, preserveName)
для возврата существующего бинарного файла как значения *filesystem.File
(#6792).
Эта функция может быть полезна, если вы хотите клонировать существующий файл записи и назначить его новой записи (например, в действии дублирования записи).
Другие небольшие улучшения (обновлен минимальный Go-версионный номер для GitHub-релизов до 1.23.9, обновлены npm и Go-зависимости и т.д.)
Добавлен пулы рабочих процессов при каскадном удалении файлов записи для минимизации ошибок типа "thread exhaustion" (#6780).
Обновлен модификатор полей :excerpt
, чтобы правильно учитывать многобайтовые символы (#6778).
Используется rowid
как столбец для подсчета для коллекций, не являющихся представлениями, чтобы минимизировать необходимость наличия поля id в охватывающем индексе (#6739).
Обновлен пример данных предварительного просмотра API для geoPoint
.- Добавлен конструктор JSVM new GeoPointField({ ... })
.
Добавлена частичная генерация миниатюр в формате WebP (миниатюры будут храниться как PNG; #6744).
Обновлены npm-зависимости для разработки.
⚠️ Перемещены проверки правил создания и управления API из финализатора OnRecordCreateRequest
, то есть теперь все правила CRUD API проверяются ДО вызова соответствующих им *Request
-хуков.
Это было сделано для минимизации путаницы, связанной с порядком вызова операций запроса, делая его более предсказуемым и последовательным с другими действиями запроса на списки/представления/обновления/удаление записей.
Это может быть небольшим разрывом, если вы полагаетесь на старое поведение и у вас есть Go tests.ApiScenario
, который проверяет сбой правила API создания и ожидает, что OnRecordCreateRequest
будет вызван. В этом случае, например, вам может потребоваться обновить ваш сценарий тестирования следующим образом:
tests.ApiScenario{
Name: "Пример теста, который проверяет сбой правила API создания",
Method: http.MethodPost,
URL: "/api/collections/example/records",
...
// старое:
ExpectedEvents: map[string]int{
"*": 0,
"OnRecordCreateRequest": 1,
},
// новое:
ExpectedEvents: map[string]int{"*": 0},
}
Если вам трудно адаптировать код, не стесняйтесь открыть дискуссию Q&A с примером неудачного/проблемного кода.- Добавлен новое поле geoPoint
для хранения географических координат {"lon":x,"lat":y}
.
Кроме того, была реализована новая функция geoDistance(lonA, latA, lonB, latB)
, которая может использоваться для применения правила API или ограничения фильтра на основе расстояния (в км) между двумя географическими точками.
Обновлен пользовательский интерфейс поля select
, чтобы лучше поддерживать большие списки и RTL-языки (#4674).
Обновлен автоматический определитель MIME-типов для вложений электронной почты, используя gabriel-vasile/mimetype
для согласованности и поддержки более широких сигнатур обнаружения.
Принудительно установлен тип содержимого text/javascript
при обслуживании файлов .js
/.mjs
коллекций с помощью конечной точки /api/files/...
(#6597).
Добавлен второй необязательный аргумент конструктора DateTime
JSVM для указания по умолчанию часового пояса как идентификатора TZ при парсинге строки даты как альтернативы фиксированному смещению для лучшего учета нюансов перехода на летнее время (#6688):
// то же самое, что и с смещением CET: new DateTime("2025-10-26 03:00:00 +01:00")
new DateTime("2025-10-26 03:00:00", "Europe/Amsterdam") // 2025-10-26 02:00:00.000Z
``` // то же самое, что и с смещением CEST: new DateTime("2025-10-26 01:00:00 +02:0 Yöntem")
new DateTime("2025-10-26 01:00:00", "Europe/Amsterdam") // 2025-10-25 23:00:00.000Z
Умеренно устарел поле result.raw
в $http.send
в пользу result.body
, которое содержит тело ответа как последовательность чистых байтов, чтобы избежать расхождений между Go и JSVM при приведении двоичных данных к строке.
Обновлен modernc.org/sqlite
до версии 1.37.0.
Другие небольшие улучшения (удалены поля суперпользователя из примеров тел запросов на создание/обновление записей аутентификации, разрешено программное обновление пароля записи аутентификации из хуков создания/обновления, исправлены ошибки ответа при импорте коллекций, и т.д.).
Разрешено использование email_verified
в OIDC как целого числа или строки булева типа, так как некоторые поставщики OIDC, такие как AWS Cognito, имеют нестандартный ответ userinfo (#6657).
Обновлен modernc.org/sqlite
до версии 1.36.3.
Исправлено синхронное обновление RecordErrorEvent.Error
и CollectionErrorEvent.Error
с ModelErrorEvent.Error
(#6639).
Исправлено копирование деталей логов в буфер обмена.
Обновлен modernc.org/sqlite
до версии 1.36.2.
golang-jwt/jwt
из-за внесения небольшого исправления безопасности.io.EOF
при чтении файлов, так как в настоящее время io.ReadAll
не проверяет обернутые ошибки (#6600).⚠️ Заменено aws-sdk-go-v2
и gocloud.dev/blob
на собственную более легкую реализацию (#6562).
В результате удаления зависимости размер бинарника сократился на ~10МБ, а время сборки уменьшилось на ~30%.
Хотя изменения ожидают обратной совместимости, рекомендуется сначала протестировать новую версию локально с вашим поставщиком S3 (если вы используете S3 для хранения файлов и резервного копирования).
⚠️ При создании пользователя PocketBase в первый раз через OAuth2 аутентификацию приоритизировано использование непустого createData.email
, предоставленного пользователем (это будет неуверифицированный адрес) для создания пользователя.- Загружается контекст информации запроса во время аутентификации пароля/OAuth2/OTP (#6402).
Это может быть полезно, если вы хотите целенаправленно использовать метод аутентификации как часть правил MFA и API аутентификации.
Например, чтобы отключить MFA для OAuth2 аутентификации, можно выразить это как правило MFA: @request.context != "OAuth2"
.- Добавлен метод store.Store.SetFunc(key, func(old T) new T)
для установки/обновления значения хранилища с помощью результата обратного вызова в безопасном многопоточном режиме.
Добавлен метод subscription.Message.WriteSSE(w, id)
для записи сообщения в формате SSE в предоставленный интерфейс писателя (используется в основном для помощи в юнит-тестировании).
Добавлен JSVM-помощник $os.stat(file)
(#6407).
Добавлено предупреждение журнала для обработчиков JSVM, помеченных как async
, и разрешение возвращаемого Promise
как альтернативы при возможности (#6476).
Разрешено вызывать cronAdd
, cronRemove
изнутри других обработчиков JSVM (#6481).
Увеличены значения по умолчанию для таймаутов чтения и записи запросов до 5 минут (ранее Yöntem 3 минуты_) для учета более медленных интернет-соединений и загрузки/скачивания больших файлов.
Если вы хотите изменить их, вы можете модифицировать поля ReadTimeout/WriteTimeout
хука OnServe
, как показано в #6550.
Нормализованы разрешительные решения обратных связей @request.auth.*
и @request.body.*
для возврата null
, когда поле связи указывает на другой коллекции (#6590).- Другие небольшие улучшения (исправление вывода параметров запроса в лог разработки, восстановление кэширования типов свойств объекта/массива DynamicModel
, обновление Go и npm зависимостей и т. д.)## v0.25.9
Исправлено кэширование типов свойств объекта/массива DynamicModel
(#6563).
id_token
для проверки утверждений времени создания (для учета смещения часов).
Это можно дополнительно настроить с помощью переменной окружения PB_ID_TOKEN_LEEWAY
(значение должно быть в секундах, например "PB_ID_TOKEN_LEEWAY=60" для OnClickListener одной минуты).@request.body.jsonObjOrArr.*
(#6493).Восстановлено отсутствующее поле meta.isNew
ответа OAuth2 успешного запроса (#6490).
Обновлены npm зависимости.
Установлен текущий рабочий каталог как путь скрипта по умолчанию при выполнении строк JS встроенных в код, чтобы разрешить require(m)
для прохода через родительские каталоги node_modules
.
Обновлены зависимости modernc.org/sqlite
и modernc.org/libc
.
aws-sdk-go-v2
до версии до внесения изменений по умолчанию для проверки целостности данных, так как были сообщения о дополнительных поставщиках S3, таких как Backblaze (IDrive, R2), которые больше не работают или частично работают с последними изменениями в SDK AWS. Хотя мы пытаемся применять when_required
по умолчанию, этого недостаточно, чтобы полностью отключить новые проверки целостности AWS SDK, и некоторые поставщики потребуют дополнительных вручную выполненных изменений, чтобы сделать их совместимыми с последним AWS SDK (например, удаление заголовков x-aws-checksum-*
, отмена вычисления контрольных сумм или восстановление старых контрольных сумм MD5 для некоторых необходимых операций и т.д.), что в результате приводит к хаотичной конфигурации, которую я не уверен, что было бы хорошей идеей вводить. Это, к сожалению, не является специфической проблемой PocketBase или Go, и официальные AWS SDK для других языков находятся в той же ситуации (даже последняя версия aws-cli). Для тех из вас, кто расширяет PocketBase с помощью Go: если ваш поставщик S3 не поддерживает проверки целостности данных AWS и вы обновляете с помощью go get -u
, убедитесь, что зависимости aws-sdk-go-v2
в вашем go.mod
совпадают с теми, что в репозитории:```
// go.mod
github.com/aws/aws-sdk-go-v2 v1.36.1
github.com/aws/aws-sdk-go-v2/config v1.28.10
github.com/aws/aws-sdk-go-v2/credentials v1.17.51
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.48
github.com/aws/aws-sdk-go-v2/service/s3 v1.72.2
// после этого выполните
go clean -modcache && go mod tidy
```
_Закрепление версий временно, пока поставщики S3, не являющиеся AWS, не исправят свою реализацию или пока я не найду время для удаления/замены зависимости `aws-sdk-go-v2` (я рассмотрю приоритизацию этого для выпусков v0.26 или v0.27)._
aws-sdk-go-v2
(#6440).RecordProxy
-ов и добавлены базовые автоматизированные тесты разрешения записей в реальном времени (#6433).Исправлен пример ответа на запрос предварительного просмотра пакетного API.
Обновлен минимальный Go-версионный номер GitHub-активности до 1.23.6, так как он включает небольшое улучшение безопасности для сборки ppc64le.## v0.25.0
⚠️ Обновлены Google OAuth2-конечные точки аутентификации, токенов и информации о пользователе до последних версий. Для пользователей, которые не выполняют никаких специфических действий с данными Google OAuth2 или OAuth2-URL аутентификации, это должно быть неразрушающим изменением. Исключения, которые я нашел, включают:
/v3/userinfo
:
meta.rawUser.id => meta.rawUser.sub
meta.rawUser.verified_email => meta.rawUser.email_verified
/v2/auth
:
Если вы указываете специфический параметр запроса approval_prompt=force
для OAuth2-URL аутентификации, вам придется заменить его на prompt=consent
.Добавлена поддержка регистронезависимой аутентификации по паролям на основе связанных UNIQUE индексных полей (#6337).
Внедрено требование when_required
для новых проверок контрольных сумм запросов и ответов AWS SDK, чтобы позволить другим поставщикам услуг, не являющимися AWS, адаптироваться к изменениям в новом AWS SDK (см. #6313 и aws/aws-sdk-go-v2#2960).
Вы можете установить переменные окружения AWS_REQUEST_CHECKSUM_CALCULATION
и AWS_RESPONSE_CHECKSUM_VALIDATION
на значение when_supported
, если ваш поставщик S3 поддерживает новые стандартные меры защиты целостности данных.- Устарела методика Record.GetUploadedFiles
в пользу Record.GetUnsavedFiles
, чтобы минимизировать неоднозначности относительно того, что делает метод (#6269).
Заменен архивированный зависимый пакет github.com/AlecAivazis/survey
на более простой osutils.YesNoPrompt(message, fallback)
.
Обновлен до golang-jwt/jwt/v5
.
Добавлены методы-помощники inflector.Camelize(str)
и inflector.Singularize(str)
.
Использование непереходного экземпляра приложения во время проверок доступа к удалению реальных записей для обеспечения разрешения каскадно удаленных записей, на которых основаны правила API родительских записей.
Другие незначительные улучшения (заменены все сканирования базы данных по bool
на int
для лучшей совместимости с другими драйверами, обновлены примеры ответов ошибок API Preview, обновлены зависимости UI и т.д.)
Исправлено извлечение полей для запроса представления с вложенными комментариями (#6309).
Увеличено минимальное версионное значение Go для GitHub action до 1.23.5, так как оно включает некоторые незначительные улучшения безопасности.
Исправлено некорректное отображение ошибки валидатора уникальности для полей, начинающихся с имени другого поля (#6281; спасибо @svobol13).
Перезагрузка данных созданных/отредактированных записей в пользовательском интерфейсе RecordsPicker.- Обновлены зависимости Go.
relation
(#6229).Добавлены недостающие макросы времени в автозаполнение интерфейса.
Исправлены типы JSVM для структур и функций с несколькими параметрами-шаблонами.
(подробности о том, почему была введена эта изменение и как это может повлиять на ваше приложение, можно найти по адресу https://github.com/pocketbase/pocketbase/discussions/6073).
Для большинства пользователей это изменение не должно вызвать проблем, но если у вас есть правила API Create, использующие самовызовы или счетчики просмотров, вам может потребоваться внести изменения вручную.
В результате этого изменения операторы "множественного соответствия" также нормализуются в случае, если целевая коллекция не имеет записей
(_иными словами, `@collection.example.someField != "test"` будет истинным, если коллекция `example` не имеет записей, так как это удовлетворяет условию, что все доступные записи коллекции `example` не должны иметь поле `someField` равным "test"_).
В результате всех этих небольших изменений производительность API создания записей также улучшилась примерно в 4 раза в сценариях с высокой конкуренцией (500 конкурентных клиентов вводят общее количество 50к записей - [старый (58.409064001с)](https://github.com/pocketbase/benchmarks/blob/54140be5fb0102f90034e1370c7f168fbcf0ddf0/results/hetzner_cax41_cgo.md#creating-50000-posts100k-reqs50000-conc500-rulerequestauthid----requestdatapublicisset--true) против [новый (13.580098262с)](https://github.com/pocketbase/benchmarks/blob/7df0466ac9bd62fe0a1056270d20ef82012f0234/results/hetzner_cax41_cgo.md#creating-50000-posts100k-reqs50000-conc500-rulerequestbodypublicisset--true)).- ⚠️ Изменено определение типа `store.Store[T any]` на `store.Store[K comparable, T any]` для поддержки пользовательских типов ключей хранилища.
Для большинства пользователей это изменение не должно вызвать проблем, но если вы используете экземпляры `store.New[any](nil)`, вам придется указать тип ключа хранилища, то есть `store.New[string, any](nil)`.
Добавлены макросы фильтрации времени @вчера
и @завтра
.
Добавлен модификатор фильтра :lower
(например, title:lower = "lorem"
).
Добавлено поле mailer.Message.InlineAttachments
для прикрепления встроенных файлов к электронной почте (также известных как ссылки cid
).
Добавлена кэшированная поддержка для динамических типов, созданных с помощью JSVM.arrayOf(m)
, DynamicModel
и т.д.
Добавлена возможность выбора коллекции аутентификации для всплывающего окна "Отправить тестовое электронное письмо" (см. #6166).
Добавлена функция record.SetRandomPassword()
для упрощения генерации случайного пароля, обычно используемого в потоках создания записей OAuth2 или OTP.
Сгенерированный случайный пароль длиной около 30 символов присваивается напрямую в виде хэша bcrypt и игнорирует валидаторы поля password
для простого текста, такие как минимальная/максимальная длина или шаблон регулярного выражения.
Добавлена возможность перечисления и активации зарегистрированных задач cron уровня приложения через веб-интерфейс и API.- Добавлены дополнительные валидаторы для опций полей коллекции int64
(например, FileField.MaxSize
), ограничивающие их максимальным безопасным числом JSON (2^53-1).
Добавлена возможность отмены или перезаписи стандартного инсталлятора суперпользователя PocketBase с помощью ServeEvent.InstallerFunc
.
Добавлена функция app.FindCachedCollectionReferences(collection, excludeIds)
для ускорения последовательного удаления записей почти вдвое для проектов с большим количеством коллекций.
Добавлена вспомогательная функция tests.NewTestAppWithConfig(config)
, если вам требуется более тонкое управление конфигурациями тестов, такими как IsDev
, количество разрешенных подключений и т.д.
Удаление всех токенов записей при изменении адреса электронной почты записи аутентификации программно или суперпользователем (см. #5964).
Прерывание ожидания отправки уведомления по электронной почте в случае, если отправка занимает более 15 секунд.
Нормализация проверок фильтров скрытых полей и возможность целенаправленного обращения к скрытым полям в правиле API списка.
Исправление проблемы обновления поля "Уникальные поля идентификации" при изменении уникальных индексов (см. #6184).
modernc.org/sqlite
и modernc.org/libc
(см. #6136).- Пропуск стандартного middleware ограничения размера тела запроса для конечной точки загрузки резервной копии (см. #6152).golang.org/x/net
до версии 0.33.0 для исправления CVE-2024-45338.PocketBase использует уязвимые функции в основном для автоматической генерации текста из HTML-почты, но большинство приложений не должны быть затронуты, если вы не вставляете вручную неограниченные пользовательские значения в шаблоны почты.
Обновлен кэш токена файла суперпользователя при клике на предварительный просмотр или ссылку для загрузки (#6137).
Обновлен modernc.org/sqlite
до версии 1.34.3 для исправления ошибки "disk io" на системах arm64.
Если вы расширяете PocketBase с помощью Go и обновляете с помощью go get -u
, убедитесь, что вручную установили косвенную зависимость modernc.org/libc
в версию 1.55.3, то есть ту же самую версию, что и драйвер.
strconv.Itoa
на strconv.FormatInt
для избежания переполнения при преобразовании int64 в int на 32-битных платформах (#6132).Исправлен синхронный обмен событий Model->Record и Model->Collection для вложенных и/или внутренних транзакций (#6122).- Другие небольшие улучшения (обновлены зависимости Go и npm, добавлено дополнительное экранирование для параметров по умолчанию в шаблонах почты, исправлены опечатки в комментариях кода и т.д.).## v0.23.7
Исправлено преобразование исключения JSVM в ошибку Go при выбрасывании ошибок из не-запросных хуков (#6102).
Исправлена документация и сгенерированный тип для $filesystem.fileFromURL
(#6058).
Исправлена опечатка в заголовке X-Forwarded-For
в предложенных заголовках UI "Общие доверенные прокси" (#6063).
Обновлено сообщение об ошибке валидатора для поля text
для большей ясности (#6066).
Другие небольшие исправления (обновлены Go зависимости, пропущена ненужная проверка валидатора при использовании шаблона первичного ключа по умолчанию, обновлены типы JSVM и т.д.).
Исправлен поиск логов UI, не правильно учитывающий переключатель "Include requests by superusers" при использовании нескольких выражений поиска.
Исправлена ошибка валидации максимального значения поля text
(#6053).
Другие небольшие исправления (ошибки в комментариях, обновление типов JSVM).
Обновлены зависимости Go и версия действия GitHub для минимальной версии Go до 1.23.4.
Исправлено обновление полей autodate
при многократном вызове Save
для одного и того же экземпляра Record
(#6000).
Добавлено более информативное сообщение об ошибке идентификатора OTP и сообщение журнала (#5982).- Перемещено значение по умолчанию CSP UI из мета-тега в заголовок ответа (#5995).
Обновлены зависимости Go и npm.
Исправлено отсутствие применения middleware Gzip при обслуживании статических файлов.
Исправлено неправильное клонирование полей autodate
методами Record.Fresh()
и Record.Clone()
(#5973).
Исправлено сканирование пользовательских структур при использовании RecordQuery()
(#5958).
Исправлено форматирование вывода запроса журнала при использовании опции --dev
.
Добавлена поддержка передачи более одного идентификатора в методе Hook.Unbind
для согласованности с маршрутизатором.
Добавлен список изменений прав коллекций в диалоговом окне подтверждения (чтобы избежать раздражения во время разработки, подтверждение прав в настоящее время включено только при использовании https).
Добавлен вспомогательный метод записи ответа RequestEvent.Blob(status, contentType, bytes)
(#5940).
Добавлены более информативные сообщения об ошибках.
Обновление до PocketBase v0.23.0 не требуется, если вы не планируете дальнейшее развитие вашего существующего приложения и/или удовлетворены набором функций PocketBase v0.22.x. На данный момент нет выявленных критических проблем с PocketBase v0.22.x. В случае критических ошибок и уязвимостей безопасности, исправления будут возвращены для версий PocketBase v0.22.x до конца первого квартала 2025 года (если не дольше).
Если вы не планируете обновление, убедитесь, что версия SDK закреплена на последнюю совместимую с PocketBase v0.22.x:
- JS SDK:
<0.22.0
- Dart SDK:
<0.19.0
[!ВНИМАНИЕ] Этот релиз вводит множество изменений, нарушающих совместимость Go/JSVM и Web API!
Существующие
pb_data
будут автоматически обновлены при запуске нового исполняемого файла, но пользовательские Go или JSVM (pb_hooks
,pb_migrations
) и код SDK JS/Dart потребуют ручной миграции. Пожалуйста, обратитесь к следующим руководствам по обновлению:
Если вы уже переключились на некоторые из ранних версий
<v0.23.0-rc14
и сгенерировали полный снимок коллекций для миграции (т. е.. /pocketbase migrate collections
), то вам может потребоваться сгенерировать файл миграции заново, чтобы убедиться, что он включает последние изменения. PocketBase v0.23.0 представляет собой крупную переработку внутренней структуры с общей целью сделать PocketBase более удобным Go-фреймворком для использования.Внесено много изменений, но вот некоторые из наиболее значимых:
Новая и более детальная документация. Старая документация доступна по адресу pocketbase.io/old.
Заменил echo
на новый роутер, построенный на основе улучшений net/http
в Go 1.22.
Объединил пакеты daos
в core.App
для упрощения операций с базой данных (структуры пакета models
также были перенесены в core
).
Возможность указания пользовательской функции DBConnect
как части конфигурации приложения для использования различных драйверов database/sql
SQLite (Turso/libsql, SQLCipher и т. д.) и пользовательских сборок.
Обратите внимание, что мы больше не загружаем драйвер mattn/go-sqlite3
по умолчанию при сборке с CGO_ENABLED=1
, чтобы избежать ошибок линковщика multiple definition
при использовании различных драйверов CGO SQLite или сборок. Пример того, как включить его обратно, если вам это нужно, можно найти в новой документации.
Новые хуки, позволяющие лучше контролировать цепочку выполнения и обработку ошибок (включая обертывание всей цепочки хуков в одном транзакции базы данных).
Различные улучшения модели Record
(поддержка модификаторов get/set, упрощенное загрузка файлов путем обработки файлов как обычных значений полей, например record.Set("document", file)
, и т. д.).- Уникальные структуры полей с безопасными по умолчанию значениями для упрощения создания/обновления коллекций программно.
id
, email
, password
и т. д. )._superusers
записями аутентификации.Поставщик OAuth2 Notion (#4999; спасибо @s-li1).
Поставщик OAuth2 monday.com (#5346; спасибо @Jaytpa01).
Новый поставщик Instagram, совместимый с новыми API входа в Instagram (#5588; спасибо @pnmcosta).
Ключ поставщика instagram2
для предотвращения конфликтов с существующими связанными пользователями.
Опция для получения информации пользователя OAuth2 OIDC из полезной нагрузки id_token
в случаях, когда у поставщика нет специального конечного пункта для информации о пользователе.
Разные небольшие улучшения интерфейса (рекурсивный Presentable
вид, немного другой порядок опций коллекции, масштабирование/перемещение для графика логов и т. д.)
И многое другое. . .
Новый конечный пункт POST /api/batch
.
Новый конечный пункт GET /api/collections/meta/scaffolds
.
Новый конечный пункт DELETE /api/collections/{collection}/truncate
.
Новый конечный пункт POST /api/collections/{collection}/request-otp
.
Новый конечный пункт POST /api/collections/{collection}/auth-with-otp
.
Новый конечный пункт POST /api/collections/{collection}/impersonate/{id}
.
⚠️ Если вы создаете запросы к маршрутам /api/*
вручную, убедитесь, что завершающий слеш удален (средство удаления завершающего слеша больше не зарегистрировано по умолчанию).
⚠️ Удалены конечные точки /api/admins/*
, так как администраторы были преобразованы в записи коллекции аутентификации _superusers
.
⚠️ Ранее при загрузке новых файлов в поле file
с несколькими значениями новые файлы автоматически добавлялись к существующим значениям поля.
Это поведение изменилось с версии v0.23+ и для согласованности с другими полями с несколькими значениями при загрузке новых файлов они заменяют старые. Если вы хотите предварительно добавить или добавить новые файлы к существующему значению поля file
, вы можете использовать префикс или суффикс +
:
"documents": [file1, file2] // => [file1_name, file2_name]
"+documents": [file1, file2] // => [file1_name, file2_name, old1_name, old2_name]
"documents+": [file1, file2] // => [old1_name, old2_name, file1_name, file2_name]
```- ⚠️ Удалены конечные точки `GET /records/{id}/external-auths` и `DELETE /records/{id}/external-auths/{provider}`, так как теперь они обрабатываются путем отправки запросов списка и удаления в коллекцию `_externalAuths`.
⚠️ Изменения в полях модели настроек приложения и ответах (+новые опции, такие как trustedProxy
, rateLimits
, batch
и т.д.). API настроек приложения в основном используются интерфейсом панели управления и редко конечными пользователями, но если вы хотите проверить все изменения настроек, обратитесь к структуре Go настроек.
⚠️ Введен новый плоский модельный объект Collection и структура полей. Модель Collection Web API в основном используется интерфейсом панели управления и редко конечными пользователями, но если вы хотите проверить все изменения, обратитесь к Collection Go struct.
⚠️ Верхнеуровневый ключ ответа на ошибку code
был переименован в status
для согласованности с Go API.
Ключ поля ошибки остается code
:
{
"status": 400, // <-- ранее: "code"
"message": "Не удалось создать запись.",
"data": {
"title": {
"code": "validation_required",
"message": "Отсутствует обязательное значение."
}
}
}
```- ⚠️ В ответе на запрос `GET /api/collections/{collection}/auth-methods` появились новые поля.
_Старые поля `authProviders`, `usernamePassword`, `emailPassword` все еще возвращаются в ответе, но считаются устаревшими и будут удалены в будущем._
```js
{
"mfa": {
"duration": 100,
"enabled": true
},
"otp": {
"duration": 0,
"enabled": false
},
"password": {
"enabled": true,
"identityFields": ["email", "username"]
},
"oauth2": {
"enabled": true,
"providers": [{"name": "gitlab", ...}, {"name": "google", ...}]
},
// старые поля...
}
```- ⚠️ Устаревшее метаполе `meta.avatarUrl` для успешной аутентификации OAuth2 заменено на `meta.avatarURL`.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )