Squidex 7.16.0 adds APIs and a UI to define indexes for content collections, extends scripting with content queries and non-JSON request bodies, and ships OpenTelemetry exporters for logs and metrics. Several editors in the UI were simplified and mentions in comments now have autocompletion.
The quarter brought one release, 7.16.0, on 2024-11-29. It focuses on query performance, scripting, observability and a set of smaller UI simplifications.
You can now create indexes for contents, either through the API or through the UI. Until now the indexes that back content queries were fixed, which meant that a query over a field with many values in a large schema could not be tuned. With explicit indexes you decide which fields are indexed for a schema and pay the write cost only where you need the read speed.
This matters most for schemas with a large number of items that you filter or sort by a custom field. If your editors sort a product catalog by an orderNumber field, or your frontend filters by a category reference on every request, an index on that field is the direct lever.
Queries can also define the collation to use. Collation controls how strings are compared and sorted, so this is the setting you reach for when sorting has to follow the rules of a specific language rather than plain byte order.
Two extensions were added to the scripting engine.
The first lets scripts query contents. Before, a script that needed to look at other items had to call back into the API over HTTP. Now the query happens inside the script, which removes the round trip and the need to manage a token for it. Typical uses are validation rules that depend on sibling items, or computed fields that aggregate values from a referenced schema.
The second extension lets you pass non-JSON bodies to requests. Scripts that talk to an external system are no longer limited to JSON payloads, so you can send form encoded data, XML or plain text to endpoints that expect it.
// Example shape of a script that queries contents and posts a non-JSON body.
var items = queryContents('products', { filter: 'data/category/iv eq \'books\'' });
postString('https://example.com/hook', 'count=' + items.length, {
'Content-Type': 'application/x-www-form-urlencoded'
});
Check the scripting reference in the documentation for the exact function names and signatures available in your installation.
Squidex can now export logs and metrics over OTLP. If you already run a collector, Squidex becomes another source next to your other services, and you keep the logs and the metrics in the same backend as the rest of your infrastructure instead of reading them from container output.
This is a configuration change rather than a code change on your side: point the exporter at your collector endpoint and the data flows into whatever you use to store and query it.
Deleting a schema previously left the record behind in a deleted state. The API now supports permanent deletion, which removes the schema for good. This is useful when you build environments programmatically, for example when a test run creates schemas with generated names and has to clean up afterwards, or when a name has to be reused.
Treat it as what it is: there is no undo behind a permanent delete, so keep it out of paths that an editor can trigger by accident.
Three editors were simplified: the asset content editor, the references content editor and the login screen. Mentions in comments now have autocompletion, so you pick a user from a list instead of typing the name and hoping it matches.
On the fixes side, the OpenAPI spec for file uploads was corrected, which matters if you generate clients from the spec and upload assets through them. The UI now also detects the meta key when opening content in a new tab, so the shortcut works the way you expect on macOS. Prefix detection when selecting content fields in a custom query was fixed as well.
The full list of changes for 7.16.0 is in the changelog, and the documentation on squidex.io covers the scripting functions and the configuration options for the OTLP exporters in detail. If you self host, review the index configuration for your largest schemas before you upgrade, since that is where the new options have the most effect.