Releases: SenseNet/sensenet
action-framework
What's Changed
- AppModel is returning: The HttpContext has a new key: "SenseNet.ApplicationModel.ActionBase" containing the resolved Application content. by @VargaJoe & @kavics in #2175, #2170
- SN Auth token validator prototype added by @hashtagnulla in #2172
- Administrator can use HealthHandler without apikey if the repository is running. by @kavics in #2148
- Use an empty-set-predicate in the query if a template cannot be resolved. by @kavics in #2150
- Custom serialization of SnTerm, IndexField. Some small fixes. This is the base of the slicing index document if it is too big (see sn-search-lucene29) by @kavics in #2155
- Any ContentType can be transitive for allowed types. by @kavics in #2156
Other Changes
- Move snCategory information from code documentation to the ODataOperationAttributes. This way, the category can not only be used for documentation purposes, but the ODataOperation also knows about it. by @kavics in #2162
- Write codedoc for some service registration methods. by @kavics in #2163, #2165, #2168
- Fix: docker install script handle is invalid workaround that eliminates a docker bug. by @VargaJoe in #2063
- DevTool: add transfer secrets sql scripts. by @VargaJoe in #2064
Full Changelog: health-checker...action-framework
health-checker
What's Changed
Bug fixes
- Fix api-key expiration date handling. by @kavics in #2070
- Add Binary field to webhook payload after multi-chunk upload. by @kavics in #2077
- The parser error via OData API causes HTTP 400 instead of 500. by @kavics in #2081
- Fix GetInvertedIndex nullref exception. by @kavics in #2097
- Fix boolean optimizer bug by @kavics in #2095
- Fix floating point implementation in the inmem index. by @kavics in #2120
- Fix GetTreeSize. The DbNull returns 0 instead of throwing an error. by @kavics in #2126
Other Changes
- Remove obsolete code that causes compilation errors. by @kavics in #2080
- Added GetResourceClass odata function that gives back localization data by @hashtagnulla in #2085
- Persist and collect changed data id the content is locked. Fire events for CheckOut action. by @kavics in #2087
- New OData function: Help/GetOperations for administrators and developers by @kavics in #2089
- Rewrite the "Parse" element of FieldSetting and add a Customization subobject so that "GetSchema" returns better results. by @kavics in #2091
- If parsing the number with current culture throws FormatException, fallback to the invariant culture and try again. by @kavics in #2106
- Add Categories element to Field definition in CTD. by @kavics in #2108
- Enable parsing leading sign in the NumberIndexHandler. by @kavics in #2109
- Change RichText fields to LongText fields. by @kavics in #2111
- Change some SnLog callings to ILogger usages. by @kavics in #2112
- Add NodeObservers as singletons. Remove NodeObserver type discovery and old-school enable-disable mechanism. by @kavics in #2114
- Modernize or delete some IRepositoryBuilder features. by @kavics in #2116
- Add CurrencySymbol, CurrencyName and CurrencyNativeName readonly properties to the CurrencyFieldSetting. by @kavics in #2128
- New method: GenericContent.RestoreVersionAsync. Fix RestoreVersion REST action. by @kavics in #2130
- Health checker middleware by @kavics in #2144
- Get apikey for health from configuration section "sensenet:apikeys" by @kavics in #2146
New Contributors
- @hashtagnulla made their first contribution in #2085
Full Changelog: odata-controller-introduction...health-checker
OData controller introduction
This release introduces the Odata controller feature and contains many bug fixes and small infrastructural changes.
What's Changed
Features
- Odata controller feature. by @kavics in #2050
- Password IO: export hash, import hash, or text. by @kavics in #2057
Bug fixes
- Fix system start: explicit commit after executing unprocessed activities on app start. by @kavics in #2031
- Eliminate multi-row messages during installation - part 1 by @tusmester in #2033
- Use unique user secrets. by @kavics in #2044
- Fix AllRoles field by @kavics in #2045
- Skip "null" lines in aggregation. by @kavics in #2047
- Missing lock instruction when writing a dictionary. by @kavics in #2054
- Avoid invalid reference error when importing a content. by @kavics in #2061
Other infrastructural changes
- Load and cache clients only for the current repo url. by @tusmester in #2023
- Ensure default clients on repo start. by @tusmester in #2021
- Skip calling DeleteIdentitiesAsync if there is no identity to delete. by @kavics in #2025
- Configurable IndexingActivity cleanup by @kavics in #2028
- Write compact info and error messages: messaging, odata middleware. by @tusmester in #2032
- Log successful package install. by @tusmester in #2037
- Provide a smarter log entry when shared material cannot be queried. by @kavics in #2040
- Use security cache reloader API after clean installation by @kavics in #2038
- Add default taskmanager configuration by @kavics in #2056
- Normalize extension namespaces by @kavics in #2065
- Docs/services and extensions by @tusmester in #2059
Full Changelog: ai-introduction...odata-controller-introduction
Experimental AI features
What's Changed
Features
- Add ContentType.Categories property by @kavics in #1977
- Set hidden category in ctds. by @tusmester in #1983
- Include change fields in webhook payload. by @tusmester in #2015
- Settings reading and writing V2 by @kavics in #1949
- Add experimental AI summary API. by @tusmester in #1996
- Add experimental AI Vision package and image generator method by @tusmester in #2005
- Add experimental AI content query generator feature by @tusmester in #2013
Documentation and logging
- Mark option classes by @tusmester in #1978
- Simplify logging in boot sequence by @kavics in #2003
Bug fixes
- Add webp and svg image types to portal settings. by @tusmester in #1971
- Handle field validity strictly when creating a new content. by @kavics in #1973
- Fix missing fields: Email, Password by @kavics in #1979
- Hide SuccessfulCalls field on webhook subscriptions. by @tusmester in #1982
- Invisible reference is null and does not throw access denied exception. by @kavics in #1993
- Fix moving to trash when owner is visitor. by @kavics in #1992
- The value of the VersioningModeField can be int, string, array or list. by @kavics in #1994
- Don't use openapi global params and path parameters cannot be empty. by @kavics in #1997
- Set hardcoded fileextension and mimetype when uploading a contentType. by @kavics in #1998
- Refactor: rewrite to async + cleanup obsoletes by @kavics in #2011
Full Changelog: big-repository...ai-introduction
Generating a huge test repository
In this release we publish many bug fixes and introduce the content generator feature. To learn more, please visit the following article:
What's Changed
Features
Bug fixes
- Fix: Ensure the SenseNetResourceManager loaded state. by @kavics in #1947
- Skip content type preview check during installation. by @tusmester in #1951
- Add repourl and user login name to change pw email. by @tusmester in #1964
- Write replication errors to log. by @kavics in #1967
- Do not throw an exception in case of a missing replacer property by @tusmester in #1966
- Use the content name consistently provided by the ContentNamingProvider during import. by @kavics in #1942
- Take preview switch into account when regenerating preview images. by @kavics in #1938
Other Changes
- Use settings and parent content to guess the appropriate content type when importing by @kavics in #1937
- Ignore preview state when importing existing content by @kavics in #1941
- Optional ContentDisposition header. by @kavics in #1958
Full Changelog: multifactor-clientsettings...big-repository
Multifactor authentication and client settings API
In this release we introduce our new client-side Settings API and also a new security feature: multi-factor authentication!
Features
- Multifactor authentication backend by @tusmester in #1929
- Read-write API for Settings by @kavics in #1911
- Merge client secret API to a single entry point by @tusmester in #1922
Bug fixes
- Fix IMS permissions for public admins and admin UI viewers by @kavics in #1889
- Use null/empty values in references instead of throwing an exception by @kavics in #1898
- Prevent creating a root CTD and disable inheriting from ContentType by @kavics in #1909
- Change Members and Manager fields' selection roots to IMS. by @tusmester in #1910
Other changes
Full Changelog: import-and-deploy...multifactor-clientsettings
Import and deploy
In this release we fixed many bugs, mostly related to importing and authentication client handling. We also published scripts for installing sensenet on Docker 🌊.
Features
- Deploy sensenet on local Docker with Powershell scripts by @VargaJoe in #1880
- Add master switch to statistics feature. by @tusmester in #1855
- GetCurrentUser operation. by @tusmester in #1874
Bug fixes
- Rewrite projection in ODataTableWriter to avoid field expansion errors by @kavics in #1834
- Fix code overrun in OData writer. by @kavics in #1836
- Fix public admin permissions by @tusmester in #1840
- Add public admin permissions to support import scenarios. by @tusmester in #1879
- Add in memory clientstore component to generate default clients. by @tusmester in #1860
- Fix getting IsPreviewEnabled in see-only mode. by @kavics in #1871
- Complete the trace message: "Invalid property access attempt" by @kavics in #1872
- Choice field null reference error by @kavics in #1886
- Skip importing readonly fields if not enough permissions. by @tusmester in #1882
- Add missing ContentTemplates folder to the base package. by @tusmester in #1846
Other Changes
- Add API key manager security checks and tests. by @tusmester in #1842
- Improved trace for messaging by @kavics in #1858
- Async security by @kavics in #1843
- Refactor security exceptions by @kavics in #1845
Full Changelog: enterprise-net6...import-and-deploy
Package updates and enterprise features
In this release we added new technical enterprise features and fixed many bugs.
Features
- We made the login process easier for cases when there is only a single domain: users do not have to specify the domain when logging in.
- The SnAuthorize attribute on OData operations requires the full group path from now on so that groups/roles are referred to correctly.
- Content types can be marked as system types so that clients can decide which types should be displayed to the user.
- Preview generation can be switched on or off on a folder level to avoid starting unnecessary preview generation tasks.
Bug fixes
- The OData table formatter uses the select and expand parameters correctly.
- Only content types are allowed in the content types subtree (system folder is removed as an option).
- File and Image types are both added as allowed types on the Content default folder so that new users can start uploading immediately.
- Trace category configuration and settings are loaded and merged correctly during startup.
Testing and infrastructure
- We continued converting our backend API to async methods with adding and using new Save, ContentQuery and Delete methods.
- We continued moving our components to the .Net service container: TextExtractors can be registered using a modern registration approach.
- Our projects are converted to .Net 6. This required us to replace the old binary serialization with a modern solution.
- We started improving repository performance in a load balanced environment.
Installation
To get started please visit docs.sensenet.com.
Introducing Regex and OpenApi
In this release we added some new exciting enterprise features, fixed a huge number of bugs and added features that will support the standalone working mode in sensenet.
Features
- We introduced Regex queries. This is an extension of the current Lucene query language and available everywhere when you execute a sensenet query.
- We introduced an experimental OpenApi implementation for content CRUD operations.
- From now on it is possible to download index documents through the REST API. This lets developers examine the index more closely when searching for issues.
Bug fixes
- We added a more informative error message to field update cases.
- Settings content files are not cached on the client anymore to avoid reverting back to an older version on admin UI.
- Indexing localized values and setting indexing info during import is fixed.
- The incremental naming error is fixed.
- Wildcard expression lowercase issue in a LINQ for sensenet environment is fixed.
- It is possible to fetch the Checked out to field of a settings content correctly.
- Content type definition Description is localized and indexed correctly.
- Prevent users from setting their birth dates in the future.
- Uploading an empty file on top of an existing file is possible through the REST API. Admin UI (client-side) fix is coming in a later release.
Testing and infrastructure
- We continued refactoring our storage configuration to use the new service API.
- Several providers have been refactored to use the new DI api.
- ISnService and tracer instances, Binary provider, OData operation inspector and the indexing activity feature also use the new DI api.
- We continued our efforts towards a standalone sensenet install package that developers can use in a container environment.
Installation
To get started please visit docs.sensenet.com.
Automatic repository install
In this release we fixed a huge number of bugs and added new features that will support the standalone working mode in sensenet.
Features
- sensenet is able to install the repository database automarically when an application (for example a web app) is started for the first time.
- The email sending and change password features were ported to the base sensenet codebase from SNaaS.
- It is possible to extend webhook post data with custom properties and dynamic parameters.
Bug fixes
- Indexing reference fields is fixed: now all ids are indexed correctly for a reference field, so searching for them is possible.
- Public administrators got more permissions by default so they can manage CTDs more easily.
Testing and infrastructure
- We continued the work on converting our providers to instances (for example TreeLock, security handler, indexing, connection strings).
- The
IDataProviderExtension
interface has been removed to simplify extension registration. - We moved most of the MS SQL providers to a separate package so that you can avoid loading unnecessary default services in your project.
Installation
To get started please visit docs.sensenet.com.