updated ui/dist, go deps, docs and fixed some typos
This commit is contained in:
+108
-104
@@ -1,108 +1,10 @@
|
||||
## v0.20.0-rc4
|
||||
## v0.20.0
|
||||
|
||||
- Bumped the minimum required Go version to 1.21.0 in order to integrate with the builtin `slog` package.
|
||||
|
||||
- removed _requests_ table in favor of logs
|
||||
(note: existing logs will be deleted!)
|
||||
|
||||
- Renamed:
|
||||
```
|
||||
Dao.RequestQuery(...) -> Dao.LogQuery(...)
|
||||
Dao.FindRequestById(...) -> Dao.FindLogById(...)
|
||||
Dao.RequestsStats(...) -> Dao.LogsStats(...)
|
||||
Dao.RequestsStats(...) -> Dao.LogsStats(...)
|
||||
Dao.DeleteOldRequests(...) -> Dao.DeleteOldLogs(...)
|
||||
Dao.SaveRequest(...) -> Dao.SaveLog(...)
|
||||
```
|
||||
|
||||
- removed `app.IsDebug()` and the `--debug` flag
|
||||
|
||||
- (@todo docs) Implemented `slog.Logger` via `app.Logger()`.
|
||||
Logs db writes are debounced and batched. DB write happens on
|
||||
- 3sec after the last debounced log write
|
||||
- when the batch threshold, currently 200, is reached (this is primarily to prevent the memory to grow unrestricted)
|
||||
- right before app termination to attempt saving the current logs queue
|
||||
Several minor log improvements:
|
||||
- Log the requests execution times.
|
||||
- Added option to toggle IP request logging.
|
||||
- Added option to specify a minimum log level.
|
||||
- Added option to export individual or bulk selected logs as json.
|
||||
|
||||
- Soft-deprecated and renamed `app.Cache()` with `app.Store()`.
|
||||
|
||||
- Updated links formatting in the autogenerated html->text mail body.
|
||||
|
||||
- Added `expiry` field to the OAuth2 user response containing the _optional_ expiration time of the OAuth2 access token ([#3617](https://github.com/pocketbase/pocketbase/discussions/3617)).
|
||||
|
||||
- Added new `filesystem.Copy(src, dest)` method to copy existing files from one location to another.
|
||||
_This is usually useful when duplicating records with file fields programmatically._
|
||||
|
||||
- Added new `displayName` field for each `listAuthMethods()` OAuth2 provider item.
|
||||
_The value of the `displayName` property is currently configurable from the UI only for the OIDC providers._
|
||||
|
||||
- Added new `PKCE()` and `SetPKCE(enable)` OAuth2 methods to indicate whether the PKCE flow is supported or not.
|
||||
_The PKCE value is currently configurable from the UI only for the OIDC providers._
|
||||
_This was added to accommodate OIDC providers that may throw an error if unsupported PKCE params are submitted with the auth request (eg. LinkedIn; see [#3799](https://github.com/pocketbase/pocketbase/discussions/3799#discussioncomment-7640312))._
|
||||
|
||||
- Allow a single OAuth2 user to be used for authentication in multiple auth collection.
|
||||
- ⚠️ Because now you can have more than one external provider with `collectionId-provider-providerId` pair, `Dao.FindExternalAuthByProvider(provider, providerId)` method was removed in favour of the more generic `Dao.FindFirstExternalAuthByExpr(expr)`.
|
||||
|
||||
- Added support for comments in the API rules and filter expressions.
|
||||
|
||||
- Added support for specifying a collection alias in `@collection.someCollection:alias.*`.
|
||||
|
||||
- Added a default red colored Stderr output for the commands errors.
|
||||
You can now also silence individually custom commands errors using the `cobra.Command.SilenceErrors` field.
|
||||
|
||||
- Slightly speed up (~10%) the thumbs generation by changing from cubic (`CatmullRom`) to bilinear (`Linear`) resampling filter (_the quality difference is very little_).
|
||||
|
||||
- Limit the concurrent thumbs generation to avoid high CPU and memory usage in spiky scenarios ([#3794](https://github.com/pocketbase/pocketbase/pull/3794); thanks @t-muehlberger).
|
||||
_Currently the max concurrent thumbs generation processes are limited to "total of logical process CPUs + 1"._
|
||||
_This is arbitrary chosen and may change in the future depending on the users feedback and usage patterns._
|
||||
_If you are experiencing OOM errors during large image thumb generations, especially in container environment, you can try defining the `GOMEMLIMIT=500MiB` env variable before starting the executable._
|
||||
|
||||
- Minor JSVM updates and fixes:
|
||||
- updated `$security.parseUnverifiedJWT(token)` and `$security.parseJWT(token, key)` to return the payload result as plain object
|
||||
|
||||
- Removed incorrectly imported empty `local('')` font-face declarations.
|
||||
|
||||
- Added `onlyVerified` auth collection option to globally disallow authentication requests for unverified users.
|
||||
|
||||
- Added `filesystem.NewFileFromUrl(ctx, url)` helper method to construct a `*filesystem.BytesReader` file from the specified url.
|
||||
|
||||
- Added `$apis.requireGuestOnly()` middleware JSVM binding ([#3896](https://github.com/pocketbase/pocketbase/issues/3896)).
|
||||
|
||||
- Use `IS NOT` instead of `!=` as not-equal SQL query operator to handle the cases when comparing with nullable columns or expressions (eg. `json_extract` over `json` field).
|
||||
_Based on my local dataset I wasn't able to find a significant difference in the performance between the 2 operators, but if you stumble on a query that you think may be affected negatively by this, please report it and I'll test it further._
|
||||
|
||||
- Trigger the `app.OnTerminate()` hook on `app.Restart()` call.
|
||||
_A new bool `IsRestart` field was also added to the `core.TerminateEvent` event._
|
||||
|
||||
- Fixed graceful shutdown handling and speed up a little the app termination time.
|
||||
|
||||
- Added `MaxSize` `json` field option to prevent storing large json data in the db ([#3790](https://github.com/pocketbase/pocketbase/issues/3790)).
|
||||
_Existing `json` fields are updated with a system migration to have a ~5MB size limit (it can be adjusted from the Admin UI)._
|
||||
|
||||
|
||||
## v0.20.0-rc3
|
||||
|
||||
- Synced with the recent fixes in v0.19.4.
|
||||
|
||||
|
||||
## v0.20.0-rc2
|
||||
|
||||
- Synced with the recent fixes in v0.19.3.
|
||||
|
||||
|
||||
## v0.20.0-rc
|
||||
|
||||
**⚠️ This is a prerelease intended primarily for test purposes.**
|
||||
|
||||
- Added experimental `expand`, `filter`, `fields`, custom query and headers parameters support for the realtime subscriptions.
|
||||
_Requires JS SDK v0.20.0-rc or Dart SDK v0.17.0-rc._
|
||||
- Added `expand`, `filter`, `fields`, custom query and headers parameters support for the realtime subscriptions.
|
||||
_Requires JS SDK v0.20.0+ or Dart SDK v0.17.0+._
|
||||
|
||||
```js
|
||||
// JS SDK v0.20.0-rc
|
||||
// JS SDK v0.20.0
|
||||
pb.collection("example").subscribe("*", (e) => {
|
||||
...
|
||||
}, {
|
||||
@@ -113,7 +15,7 @@
|
||||
```
|
||||
|
||||
```dart
|
||||
// Dart SDK v0.17.0-rc
|
||||
// Dart SDK v0.17.0
|
||||
pb.collection("example").subscribe("*", (e) {
|
||||
...
|
||||
},
|
||||
@@ -123,7 +25,109 @@
|
||||
)
|
||||
```
|
||||
|
||||
- Other minor fixes and impovements (eg. added negative string number normalization support for the `json` field type)
|
||||
- Generalized the logs to allow any kind of application logs, not just requests.
|
||||
|
||||
The new `app.Logger()` implements the standard [`log/slog` interfaces](https://pkg.go.dev/log/slog) available with Go 1.21.
|
||||
```
|
||||
// Go: https://pocketbase.io/docs/go-logging/
|
||||
app.Logger().Info("Example message", "total", 123, "details", "lorem ipsum...")
|
||||
|
||||
// JS: https://pocketbase.io/docs/js-logging/
|
||||
$app.logger().info("Example message", "total", 123, "details", "lorem ipsum...")
|
||||
```
|
||||
|
||||
For better performance and to minimize blocking on hot paths, logs are currently written with
|
||||
debounce and on batches:
|
||||
|
||||
- 3 seconds after the last debounced log write
|
||||
- when the batch threshold is reached (currently 200)
|
||||
- right before app termination to attempt saving everything from the existing logs queue
|
||||
|
||||
Some notable log related changes:
|
||||
|
||||
- ⚠️ Bumped the minimum required Go version to 1.21.
|
||||
|
||||
- ⚠️ Removed `_requests` table in favor of the generalized `_logs`.
|
||||
_Note that existing logs will be deleted!_
|
||||
|
||||
- ⚠️ Renamed the following `Dao` log methods:
|
||||
```go
|
||||
Dao.RequestQuery(...) -> Dao.LogQuery(...)
|
||||
Dao.FindRequestById(...) -> Dao.FindLogById(...)
|
||||
Dao.RequestsStats(...) -> Dao.LogsStats(...)
|
||||
Dao.DeleteOldRequests(...) -> Dao.DeleteOldLogs(...)
|
||||
Dao.SaveRequest(...) -> Dao.SaveLog(...)
|
||||
```
|
||||
- ⚠️ Removed `app.IsDebug()` and the `--debug` flag.
|
||||
This was done to avoid the confusion with the new logger and its debug severity level.
|
||||
If you want to store debug logs you can set `-4` as min log level from the Admin UI.
|
||||
|
||||
- Refactored Admin UI Logs:
|
||||
- Added new logs table listing.
|
||||
- Added log settings option to toggle the IP logging for the activity logger.
|
||||
- Added log settings option to specify a minimum log level.
|
||||
- Added controls to export individual or bulk selected logs as json.
|
||||
- Other minor improvements and fixes.
|
||||
|
||||
- Added new `filesystem/System.Copy(src, dest)` method to copy existing files from one location to another.
|
||||
_This is usually useful when duplicating records with `file` field(s) programmatically._
|
||||
|
||||
- Added `filesystem.NewFileFromUrl(ctx, url)` helper method to construct a `*filesystem.BytesReader` file from the specified url.
|
||||
|
||||
- OAuth2 related additions:
|
||||
|
||||
- Added new `PKCE()` and `SetPKCE(enable)` OAuth2 methods to indicate whether the PKCE flow is supported or not.
|
||||
_The PKCE value is currently configurable from the UI only for the OIDC providers._
|
||||
_This was added to accommodate OIDC providers that may throw an error if unsupported PKCE params are submitted with the auth request (eg. LinkedIn; see [#3799](https://github.com/pocketbase/pocketbase/discussions/3799#discussioncomment-7640312))._
|
||||
|
||||
- Added new `displayName` field for each `listAuthMethods()` OAuth2 provider item.
|
||||
_The value of the `displayName` property is currently configurable from the UI only for the OIDC providers._
|
||||
|
||||
- Added `expiry` field to the OAuth2 user response containing the _optional_ expiration time of the OAuth2 access token ([#3617](https://github.com/pocketbase/pocketbase/discussions/3617)).
|
||||
|
||||
- Allow a single OAuth2 user to be used for authentication in multiple auth collection.
|
||||
_⚠️ Because now you can have more than one external provider with `collectionId-provider-providerId` pair, `Dao.FindExternalAuthByProvider(provider, providerId)` method was removed in favour of the more generic `Dao.FindFirstExternalAuthByExpr(expr)`._
|
||||
|
||||
- Added `onlyVerified` auth collection option to globally disallow authentication requests for unverified users.
|
||||
|
||||
- Added support for single line comments (ex. `// your comment`) in the API rules and filter expressions.
|
||||
|
||||
- Added support for specifying a collection alias in `@collection.someCollection:alias.*`.
|
||||
|
||||
- Soft-deprecated and renamed `app.Cache()` with `app.Store()`.
|
||||
|
||||
- Minor JSVM updates and fixes:
|
||||
|
||||
- Updated `$security.parseUnverifiedJWT(token)` and `$security.parseJWT(token, key)` to return the token payload result as plain object.
|
||||
|
||||
- Added `$apis.requireGuestOnly()` middleware JSVM binding ([#3896](https://github.com/pocketbase/pocketbase/issues/3896)).
|
||||
|
||||
- Use `IS NOT` instead of `!=` as not-equal SQL query operator to handle the cases when comparing with nullable columns or expressions (eg. `json_extract` over `json` field).
|
||||
_Based on my local dataset I wasn't able to find a significant difference in the performance between the 2 operators, but if you stumble on a query that you think may be affected negatively by this, please report it and I'll test it further._
|
||||
|
||||
- Added `MaxSize` `json` field option to prevent storing large json data in the db ([#3790](https://github.com/pocketbase/pocketbase/issues/3790)).
|
||||
_Existing `json` fields are updated with a system migration to have a ~2MB size limit (it can be adjusted from the Admin UI)._
|
||||
|
||||
- Fixed negative string number normalization support for the `json` field type.
|
||||
|
||||
- Trigger the `app.OnTerminate()` hook on `app.Restart()` call.
|
||||
_A new bool `IsRestart` field was also added to the `core.TerminateEvent` event._
|
||||
|
||||
- Fixed graceful shutdown handling and speed up a little the app termination time.
|
||||
|
||||
- Limit the concurrent thumbs generation to avoid high CPU and memory usage in spiky scenarios ([#3794](https://github.com/pocketbase/pocketbase/pull/3794); thanks @t-muehlberger).
|
||||
_Currently the max concurrent thumbs generation processes are limited to "total of logical process CPUs + 1"._
|
||||
_This is arbitrary chosen and may change in the future depending on the users feedback and usage patterns._
|
||||
_If you are experiencing OOM errors during large image thumb generations, especially in container environment, you can try defining the `GOMEMLIMIT=500MiB` env variable before starting the executable._
|
||||
|
||||
- Slightly speed up (~10%) the thumbs generation by changing from cubic (`CatmullRom`) to bilinear (`Linear`) resampling filter (_the quality difference is very little_).
|
||||
|
||||
- Added a default red colored Stderr output in case of a console command error.
|
||||
_You can now also silence individually custom commands errors using the `cobra.Command.SilenceErrors` field._
|
||||
|
||||
- Fixed links formatting in the autogenerated html->text mail body.
|
||||
|
||||
- Removed incorrectly imported empty `local('')` font-face declarations.
|
||||
|
||||
|
||||
## v0.19.4
|
||||
|
||||
Reference in New Issue
Block a user